问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在MatLab里面用隐式欧拉法(backward euler)解决常微分方程。初学matlab 好多都不会,知道的帮下忙

发布网友 发布时间:2022-05-14 05:44

我来回答

2个回答

热心网友 时间:2023-10-05 04:01

1.新建一个m文件,编写隐式Euler法的程序:
function [x,y]=Implicit_Euler(odefun,xspan,y0,h,varargin)
% 隐式Euler公式求解常微分方程
% 输入参数:
% ---odefun:微分方程的函数描述
% ---xspan:求解区间[x0,xn]
% ---y0:初始条件
% ---h:迭代步长
% ---p1,p2,…:odefun函数的附加参数
% 输出参数:
% ---x:返回的节点,即x=xspan(1):h:xspan(2)
% ---y:微分方程的数值解
x=xspan(1):h:xspan(2);
y(1)=y0;
for k=1:length(x)-1
z0=y(k)+h*feval(odefun,x(k),y(k),varargin{:});
z1=inf;
while abs(z1-z0)>1e-4
z1=y(k)+h*feval(odefun,x(k+1),z0,varargin{:});
z0=z1;
end
y(k+1)=z1;
end
x=x;y=y;

2.在命令窗口直接调用上面的程序,求解常微分问题:
(1)
f=@(t,x)-2*x;
[t,x]=Implicit_Euler(f,[0 5],1,0.1);
t1=0:0.1:5;
x1=exp(-2*t);
plot(t1,x1)
hold on
plot(t,x,'k.-','markersize',16)
legend('解析解','隐式Euler求解结果')
xlabel('t');ylabel('x');

(2)此题你给出的初值好像有问题吧,x0=0的话,求解的结果都是为0,所以我改用x0=1求解试了一下:
>> f=@(t,x)x*sin(t)-2*x^2;
>> [t,x]=Implicit_Euler(f,[0 1],1,0.01);
>> [t1,x1]=Implicit_Euler(f,[0 1],1,0.001);
>> e=x1(end)-x(end)
e =
-0.0029

>> plot(t,x,'r:')
>> hold on
>> plot(t1,x1,'g--')
>> xlabel('t');ylabel('x')
>> legend('积分步长为0.01','积分步长为0.001')
>>

热心网友 时间:2023-10-05 04:02

matlab里的euler法数值积分是过时的积分算法,不知道还能用吗。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
企业培训学到了什么 培训感悟简短 有关培训的感悟 通过培训学到什么 培训你学到了什么 领导问培训学到什么怎么回复 Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 MATLAB 怎么用欧拉法解初值问题 Matlab用欧拉方法求常微分方程问题 求助 matlab编程问题利用欧拉方法求常微分方程近似数值解 请问围巾的英文scarf 与muffle的区别,分别指的是哪种? 围巾英语怎么说?围巾怎么搭配? 英语cap和scarf的a读音是否相同 css里面的星号“*”表示所有的对象? 飞机上防晒喷雾可以带多少毫升的 普洱茶的问题 大益渤海之春茶是古树茶吗? 国内好发的英文期刊有哪些 中国的全英文杂志 大家认为塔罗牌是否准确? U盘安装linux时卡在这个界面了 安装Linux时出现= 我个人比较喜欢百叶窗,可以用它代替布窗帘吗? 网上怎么买不到可以穿根绳子的床帘? 安装linux过程中出现有关MBR的错误如何处理 重启linux虚拟机出现dracut-initqueue timeout,怎么解决 用Iso文件安装Linux,出现dracut,这应该怎么解决,求大神 利用matlab中的欧拉法解初值问题. MATLAB中已知系统微分方程及初始值用欧拉法和龙格库塔法解一阶微分方程 matlab编写如下程序:编写利用显式Euler法求解一阶常微分方程的程序。 matlab欧拉法解微分方程用什么语句 用Euler法求下列微分方程初值问题的数值解,要求有matlab程序(能看懂的最好有备注),谢谢 matlab 欧拉方法和中点法问题 求救 用matlab编程解微分方程 怎么欧拉法比龙格库塔法精度还高? 用matlab求欧拉常数代码,谢谢各位 在css样式里 *号是什么意思 本人主播游戏,但是为什么一开直播就卡什么原因 为什么可以进得了主播的主页但是确定不了他的直播间 熊猫tv我已经开了直播了但是直播间显示直播正在赶来什么意思 外国钱币辨识 袁大头,银元,鉴定真假!!! 外国777钱/收有一攸三个7钱币/英文不认识/正面有三个7字/有人监定一下 CSS选择器里面的星号“*”怎么解释啊 猪肉脯为什么那么红? 清平乐:曹丹姝为什么不再做鹿肉脯给赵祯? 猪肉脯里面放的鸡肉吗? 毛蟹能吃猪肉脯吗?