MATLAB解常微分方程的数值解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB解常微分方程的数值解相关的知识,希望对你有一定的参考价值。
参考技术A使用matlab的dsolve()函数,可以解得其微分方程的解析解。
y =- lambertw(0, -exp(-x^2)) - 1
式中: lambertw()是朗伯W函数,w*exp(w) = x.
【x y】
1.0000 -0.0000
1.1000 -0.5163
1.2000 -0.6707
1.3000 -0.7671
1.4000 -0.8336
1.5000 -0.8813
1.6000 -0.9159
1.7000 -0.9410
1.8000 -0.9592
1.9000 -0.9722
2.0000 -0.9813
2.1000 -0.9877
2.2000 -0.9920
2.3000 -0.9949
2.4000 -0.9968
2.5000 -0.9981
2.6000 -0.9988
2.7000 -0.9993
2.8000 -0.9996
2.9000 -0.9998
3.0000 -0.9999
3.1000 -0.9999
3.2000 -1.0000
3.3000 -1.0000
3.4000 -1.0000
3.5000 -1.0000
3.6000 -1.0000
3.7000 -1.0000
3.8000 -1.0000
3.9000 -1.0000
4.0000 -1.0000
。。。。。
图形及代码如下:
matlab用龙格库塔法求解变系数常微分方程
遇到一个二阶常微分方程y"=1020000*sin(12560*t)*[-0.8159*(y^4)+1.6724*(y^3)-0.1303*(y^2)+0.0042*(y)],y和y'的初值都是0,t的范围[0,0.0005],y=f(t),求使用ode45方法的程序,或者其他的龙格库塔法的程序,谢谢
参考技术A该二阶微分方程用龙格库塔法可以这样来求解。
第一步,根据该二阶微分方程,自定义微分方程函数,func(t,y)
第二步,根据初始条件,确定y和y'的初值,即y0=[0,0]
第三步,使用ode45函数求解【t,y】的数值解,即
[t,y] = ode45(@func,[0 0.0005],y0);
第四步,根据t、y、y'值,绘制t—y(t),t—y'(t)曲线图
下图为求解结果
以上是关于MATLAB解常微分方程的数值解的主要内容,如果未能解决你的问题,请参考以下文章