matlab程序中ode45,关于matlab中ode45的问题
关于matlab中ode45的问题
关注:261 答案:2 mip版
解决时间 2021-02-02 07:51
提问者森很绿却致人迷途
2021-02-02 04:45
function wlch5
global e1
n=9;
eold=-1;
olddpsi=0.5;
tol=1e-6;
for k=1:n
de=2*tol;
e1=eold+abs(eold)/70;
while abs(de)>tol
xturn=-sqrt(2*(e1+1));
kk=(-1)^(k+1)*0.0001;
[x1,u1]=ode45(@wlch5fun,[-1,xturn],[0,kk]);
[x2,u2]=ode45(@wlch5fun,[1,xturn],[0,-0,0001]);
dpsi=u1(length(x1),2)-u2(length(x2),2);
de=-dpsi*de/(dpsi-olddpsi);
olddpsi=dpsi;
eold=e1;
e1=e1+de;
end
e(k)=eold;
subplot(3,3,k);
plot(x1,u1(:,1),x2,u2(:,1))
end
e;
diff(e)
function yy=wlch5fun(x,psi)
global e1
yy=[psi(2);50^2*(-e1-1+x^2/2)*psi(1)];
说初始向量有3个。。。。可是我没有找到哪里的初始向量。。。。
最佳答案
二级知识专家臸釪樶初
2021-02-02 05:08
对于二阶微分方程的数值解,y有两列
第一列是y(1),表示的是一阶微分方程的解,就是y
第二列是y(2),表示的是二阶微分方程的解,就是y的一阶导数,y'=dy/dt
而dy也有两行,
第一行是一阶微分方程,dy(1)/dt=y(2);
第二行是二阶微分方程, dy(2)/dt=2*y(2)-y(1)
全部回答
1楼劳资喜欢你
2021-02-02 05:34
没有必要 只要是选取的初值对应的t等于tspan(1)
我们看下面一个例子,对于dx/dt=2t来说吧 我们知道精确解是x=t^2
下面我们给出数值解法,编写代码
%
%选取状态变量
%x1=x
%
%则各个状态变量的一阶导数为
%x1'=x'=2*t
%
%by dynamic
%see also http://www.matlabsky.com
%2009.2.19
%
odefun=@(t,x)2*t;
%给出初值,注意我们这里不给出t=0时的初值,我们给出t=2时的初值
%初值是指各个状态变量的在t=t0=2时的值
%t=2时,状态变量x1的初值x1=t^2=4,故初值为
x0=4;
%注意下面的t0必须等于2,因为我们的选择的初值条件是t=2,ode45默认将t0作为初值条件对应的t值
t0=2;
t1=10;
[t,y]=ode45(odefun,[t0,t1],x0);
%根据计算数据绘图
plot(t,y,'-.k','linewidth',3)
%根据解析解精确绘图
t=0:0.1:10;
x=t.^2;
hold on
plot(t,x,'r')
我们可以看到两个图像重合 说明现在的ode45求解出完全正确的数值解 换句话说初值的条件不一定需要t=0
换句话说 只要那个初值中的t可以任意选,但是必须满足,选取的t和ode45(odefun,[t0,t1],x0)中的t0相等
至于【微分方程的matlab数值解法详解】参见http://www.matlabsky.com/thread-526-1-2.html
里面对微分方程的matlab求解分析的比较透彻
我要举报
如以上问答内容为低俗/色情/暴力/不良/侵权的信息,可以点下面链接进行举报,我们会做出相应处理,感谢你的支持!
→点此我要举报以上信息!←
推荐资讯
大家都在看
matlab程序中ode45,关于matlab中ode45的问题相关推荐
- matlab矩阵指定行最大值,求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.*...
导航:网站首页 > 求Matlab程序:在2行矩阵中,如何求第1行最大值和第2行相应的最大,请问,如何在MATLAB中编写程序实现求两矩阵A*B,A.* 求Matlab程序:在2行矩阵中,如何求 ...
- 如何将MATLAB程序插入到.net(C#)中(流程以及常见错误总结)
目录: 1.将MATLAB的m文件形成.dll形式 2.将.dll组件插入到.net程序中 3.MATLAB程序与.net程序数据形式转换 4.常见问题 以我写的ELM文件为例,matlab是2010 ...
- jacobi matlab程序,jacobi迭代法实验MATLAB程序数值分析
jacobi迭代法实验MATLAB程序数值分析 例1. 求线性方程组 得近似解.精确解为x*=[3,2,1]'. 解:对方程进行移项就得 记为Ax=b,或写为x=B0 x+f,其中 取初始值,代入原方 ...
- MATLAB程序详细解析,遗传算法——matlab代码解析
遗传算法--matlab代码解析 本文为学习B站老哥数学建模课程之后的一点笔记,图片源自web,代码源自老哥程序包,侵权删. 详细的遗传算法原理不再赘述,百度即可找到. 算法定义 遗传算法(GA)是模 ...
- 线性规划单纯形法的matlab程序,线性规划单纯形法的MATLAB实现_数学专业.doc
摘要:运筹学有着长远的发展历史,并且不断地发展变化出许多分支理论,线性规划是运筹学中专研较早,发展比较快速,对现实社会作用涵盖面广,理论系统趋于成熟的一个重要分支,虽然其只是运筹学的一小部分,但是作用 ...
- 脉动风时程matlab程序,脉动风时程matlab程序
脉动风时程matlab程序 根据风的记录,脉动风可作为高斯平稳过程来考虑.观察n个具有零均值的平稳高斯过程,其谱密度函数矩阵为: s11( )s12( ) s( )s( ) 22 S( ) 21 .. ...
- vb.net 调用matlab程序 绘图,vbnet调用matlab
\\然后参考该 类库的文档,在类里引用 matlab 的命名空间 装 matlab ,添加引用[VB.Net] Matlab = CreateObject("matlab.applicati ...
- 去噪matlab程序奇异值分解,奇异值分解去噪matlab
清华大学研究生高等数值分析计算实验奇异值分解SVD以及图像压缩matlab源程序代码_理学_高等教育_教育专区.第 1 部分方法介绍 奇异值分解(SVD)定理: 设 A ? R m...... 介绍奇 ...
- fdtd算法的matlab程序,FDTD算法的Matlab程序
<FDTD算法的Matlab程序>由会员分享,可在线阅读,更多相关<FDTD算法的Matlab程序(6页珍藏版)>请在人人文库网上搜索. 1.* 5= T$h;O % 3-D ...
- 用matlab程序表示三角形序列,MATLAB程序举例带注释
1.绘制云图 Ex=18 En=2 He=0.2 hold on for i=1:1000 Enn=randn(1)*He+En; x(i)=randn(1)*Enn+Ex; y(i)=exp(-(x ...
最新文章
- 一次性搞定权限树遍历(通用解决方案)
- MSP430学习笔记6-动态数码管的显示
- LeetCode177 第N高的薪水
- vue中v-model原理
- 如何在Spring boot中修改默认端口
- [css] 你用过outline属性吗?它有什么运用场景
- web.config文件之自定义错误节
- iOS 静态库和动态库的基本介绍和使用
- 集成直流稳压电源设计报告_线性直流稳压电源结构,线性直流电源技术指标
- AIoT、DevOPS、数据平台、开源,你不可不知的微软 Azure 黑科技大公开
- C语言复习---输出魔方阵
- UNIX环境高级编程之第7章:进程环境
- C#中用WinAPI调用外部程序
- 二极管和三极管介绍-二极管和三极管的区别及工作原理详解-KIA MOS管
- py实现高斯列选主元消元法
- JPEG简易文档V2.11
- qq解冻显示服务器开小差了是什么意思,腾讯内容开放平台
- Qt学习之.pro和.qrc创建及介绍
- 探索、松散结构,和大家谈谈关于社区的思考|shadow与mixlab的故事
- matlab 创建同型矩阵_仅在第1部分之间的海洋中探索同型图