fkjj.net
当前位置:首页 >> mAtlAB程序oDE45 >>

mAtlAB程序oDE45

1、在Matlab下输入:edit,然后将下面 function dx=myfun(t,x) dx(1)=20/7*x(1)-x(2)*x(3); dx(2)=-10*x(2)+x(1)*x(3); dx(3)=-4*x(3)+x(1)*x(2); dx=dx 2、在Matlab下面输入: x0=[3,-4,2]; t0=0.001:0.001:20; [t,x]=ode45('myfun',[0.001,20]...

从结果来看,你把一个数组赋给了y0 检查看看是不是ci的问题

这张图来自于MATLAB 技术论坛,这是一个非常有价值的网站,里面高手云集,希望你可以进去看看,里面有非常详细的关于ODE的介绍 http://www.matlabsky.com/thread-528-1-1.html

参考代码: % 参数定义m1 = 1; m2 = 2; m3 = 3;k1 = 4; k2 = 5; k3 = 6; k4 = 7;P0 = 8; w = 9; % 微分方程A = [k1+k2 -k1 0; -k2 k2+k3 -k3; 0 -k3 k3+k4];dx = @(t,x)[x(4:6); (-A*x(1:3)+[P0*sin(w*t);0;0])./[m1;m2;m3]]; % 初始条件(x4~x6...

我给你运行了一下没错啊 这是一部分数据 不过你在第一个函数保存时函数名应该是 hj把 266.7452 266.7543 266.7634 266.7725 266.7816 266.7907 266.7997 266.8088 266.8179 266.8270 266.8361 266.8452 266.8543 266.8634 266.8725 266.8815 266...

引用一下matlab论坛里大神的回答: 总得来说:二者算法相似,只不过ode45比ode23精度要高一点,其它没什么差别。 具体ode是Matlab专门用于解微分方程的功能函数;solver有变步长(variable-step)和定步长(fixed-step)两种类型,不同类型有着...

相关常数都没给,这里随便设置一些数值: m=1;c=2;k=3;y0=4;yp0=5;tf=10;dy=@(t,y)[y(2);-(c*y(2)+k*y(1))/m];[t,y]=ode45(dy,[0 tf],[y0 yp0]);plot(t,y(:,1))

MATLAB提供了7个常微分方程求解器(solver),分别是ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb,其中前3个适用于求解非刚性(Nonstiff)问题,后4个适用于刚性问题。所谓刚性问题,简单点说,就是系统包含多个相互作用但变化速度相差十...

function dx = rigid(t,x)dx = ones(6,1); dx(1) = 0.0515*x(2)-0.388*x(1)-0.136*x(1);dx(2) = 0.388*x(1)-0.0515*x(2);dx(3) = 0.136*x(1)+0.0254*x(6)-0.067*x(3)-0.0788*x(3);dx(4) = 0.0788*x(3)-0.0068*x(4)+0.001*x(5);dx(5) = 0.0068*x(...

分段函数的一个简单方法就是分了几段就写几个函数: 定义一个主调函数、两个子函数 最后一个主调程序调用 function dx=fun(t,x) dx=zeros(2,1); f=; dc(t)=diff('f','t');%f就是你的c(t) dx(1)=x(2)*dc(t); dx(2)=x(1)+6*t^2;%0

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