rpct.net
当前位置:首页 >> oDE45解高阶微分方程 >>

oDE45解高阶微分方程

使用ode45解微分方程组,可以用下列格式来求解.[t,x]=ode45(odefun,tspan,x0) 式中:odefun给复定微分方程组的自定义函数;tspan自变量t的范围,制即【t0,tf】;x0x的初值向量,即x1(0),x1'(0),x2(0),x2'(0),x3(0),x3'(0) 由于没有给出自zd变量t的范围和x的初值,所以不能得到其x1,x2,x3的值.

下面是关于ODE45求解高阶常微分方程的讲解,和一个例子.如何求解y''=-t*y + e^t*y'' +3sin2t,y(0)=2,y'(0)=8?(后面有程序) 求解高阶常微分方程 关键是将高阶转为一阶,odefun的书写.F(y,y',y''y(n-1),t)=0用变量替换,y1=y,y2=y'注意odefun

示例如下:odefun=@(t,y)(y+3*t)/t^2;%定义函数tspan=[02.3];%求解区间!!!!!!!!!!!!y0=-2;%初值[t,y]=ode45(odefun,tspan,y0);其中求解区间为0~2.3,那么最后结果的y的最后一个y(length(y))就是y(2.3)

这个方程要解出来还要初始条件吧不妨设(x(0),y(0))=(A,B);还有用ode45只能得到数值解,不能给出解析式表达那么先建立一个函数文件test_fun.mfunction dx=tsst_fun(x,t)dx(1)= c-b*x(1)-w*x(1)*x(2);dx(2)=w*x(1)*x(2)-(b+m)*x(2);那么调用ode45x0=(0,0);t0=0:0.01:10;;%根据你所想要的求得值设定t0,间隔是任意的,与求解所用的步长无关,[x,t]=ode45(@test_fun,t0,x0);得到了

ode45是最常用的求解非刚性微分方程(组)的指令,它采用变步长四、五阶Runge-Kutta法,求解精度比ode23、ode15要高.但ode45的计算量比较大,而ode23计算量小,且误差大 调用格式:[t,y]=ode45(odefun,tspan,y0) odefun 用以表示f(t,y

这个方程要解出来还要初始条件吧 不妨设(x(0),y(0))=(a,b); 还有用ode45只能得到数值解,不能给出解析式表达 那么先建立一个函数文件 test_fun.m function dx=tsst_fun(x,t) dx(1)= c-b*x(1)-w*x(1)*x(2); dx(2)=w*x(1)*x(2)-(b+m)*x(2); 那么调用ode45 x0=(0,0); t0=0:0.01:10;;%根据你所想要的求得值设定t0,间隔是任意的,与求解所用的步长无关,[x,t]=ode45(@test_fun,t0,x0); 得到了 这样可以么?

ode45函数求一阶常微分方程的初值问题[t,y] = ode45(@(t,y)y-2*t/y,[0,4],1);plot(t,y);求解 y' y + 2*t / y且初值y(0) = 1的常微分方程初值问题,返回自变量和函数的若干个值.若不写返回值,则会自动作出函数随自变量的变化图像.ode45(@(t,y)y-2*t/y,[0,4],1);

先把二阶方程化成一阶方程组具体的可以看help 的例子

<p>你把lgkt中的x改成x(1)试试看,我试过应该没问题的</p> <p>function xx=lgkt(t,x)</p> <p>xx=3*x(1)+cos(t)+sin(2*t);</p> <p>[t,x]=ode45(@lgkt,[0 10],[2]);</p> <p>plot(t,x,'-o');</p> <p></p>

想用ode45求解一个二阶常微分方程,但边界条件是y(0)=某值,y(10)=某值,这应该怎么去求解?1、首先我们应该理清ode函数应用条件,由于二阶常微分方程的解有两个变量(y和y'),一般来说,给出的初始条件为 y(0)=某值和y'(0)=某值,这

网站首页 | 网站地图
All rights reserved Powered by www.rpct.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com