MATLAB答疑:三种方法求解微分方程(定义、符号、数值)

1.题目

解微分方程 dydt=sin(y)+t,其中t=0y=0,并绘图。

说明,一般对dydt的求解方法为:y(t+dt)=y(t)+dydt(t)*dt

2.方法

除了题目给出方法:使用定义求解;还可以使用dsolve符号运算,以及使用ode45的数值解法;下面使用三种方法求解,并对比结果。

3.程序

%1 按照题目思路编程求解

dydt=@(t,y)sin(y)+t;

dt=0.001;

t=0:dt:10;

y=0;

for i=1:length(t)

    y(i+1)=y(i)+dydt(t(i),y(i))*dt;

end

y(end)=[];

plot(t,y),grid on

 

% 2 使用dsolve求解析解(无解)

% syms y(x)

% ode=diff(y,x)-sin(y)==x;

% cond=y(0)==0;

% dsolve(ode,cond)

 

警告: Unable to find symbolic

solution.

> 位置:dsolve ( 209 )

位置: freexyn67 ( 8 )

 ans =

 [ empty sym ]

 

%3 使用ode45数值解法

tspan=[0 10];

y0=0;

opts=odeset('reltol',1e-2,'abstol',1e-4);

[x,y]=ode45(@ode,tspan,y0,opts);

plot(x,y),grid on

 

function dy=ode(x,y)

dy=sin(y)+x;

end

4.结果

使用dsolve求解无解,另外两种方法获得结果一致,图像如下所示:

使用微分定义求解的图像

使用ode45求解的图像

附本文内容自学相关视频:

End

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空