MATLAB用ode45求解微分方程组,需要编写m文件,怎样直接在命令窗口直接编写代码求解微分方程组,而不编写m文件,或者怎样把m文件展开直接写在代码里面,前提是需要得到数值解,请给一个格式实例,谢谢
能解决问题请回答,非诚勿扰,谢谢
还是不对,哪里出错了,我在MATLAB7.0和MATLAB2010b都试了,不行
上次忘说了,对于7.0之后的版本,最好使用匿名函数(由于我当时的电脑中正在用6.5,就随手使用了inline)。
匿名函数与inline函数的最大差别是,匿名函数可以使用当前工作区中已定义的变量,而inline由于是以字符串形式定义的,它不能直接使用工作区中的变量。也正因匿名函数相比之下更方便、更强大,较新的版本中计划删除inline函数,而建议用户使用匿名函数代替。
匿名函数的使用也很简单。例如,上面的内联函数如果用匿名函数定义如下:
vdp1000=@ (t,y)[y(2); 1000*(1 - y(1)^2)*y(2) - y(1)];
注意不要把方括号给丢了。
您好 非常感谢您的回答 这个问题就解决了 我想问问MATLAB代码画图直接运行结果显示正常,做成m文件运行为啥显示的图有些地方的线就变成虚线了 我觉得应该是精度的问题,编写m函数文件的采用ode45求解时可以用里面可以用options 但是这种不知道怎么改 求解 谢谢您
追答没看明白你的意思。
最好说具体一点,例如直接运行是怎样做的,编M文件又是怎样做的,结果分别是什么样。
就我所知道的而言,直接运行与写成M文件不应该有什么不同(相同的代码),而options在命令窗口中也是可以直接使用的,并不需要写成文件。
直接运行MATLAB代码做图plot生成的线是实的,转换成m文件(function ***(参数) 。。。。end)然后在命令窗口输入***(给参数赋给数值)生成的图,线条显示不清楚
如图(第一个是m文件运行的结果,第二个是直接运行的结果)
你的具体做法还是没说清楚。
请把代码通过私信发给我,或者传到网盘并告诉我链接。
不然,我不知道你是怎么做的,想帮你也无从下手。
搞不懂你给我的这是什么回答,。。。。。。。不用换软件,就用MATLAB求解,不会咱就不用谈这些无关痛痒的东西,谢谢您
matlab微分方程的解?
1、自定义微分方程组函数,odefun(x,y)2、定义x【0,10】间若干等份的数值,如n=50 3、定义y的初值,即 y0=[2,7];4、使用ode45函数求y(x),z(x)数值解,即 [x,y]=ode45(@odefun,x,y0);5、使用plot函数,绘制x—y(x),x—z(x)曲线图 这里,y(1)代表y(x)的数值解,y(2)...
用MATLAB求解一个条件微分方程组
第一步,根据微分方程组,自定义其函数,odefun(t,x)第二步,确定t的范围,如TSPAN=[0 1];第三步,确定初始条件,确定Y0的初值,即Y0=[100,20];第四步,使用ode45函数,得到其数值解,即 [t,x] = ode45(@odefun,TSPAN,Y0);第五步,使用plot函数,绘出t—x(t)和t—y(t)的曲线图,...
Matlab求解微分方程组问题!急!!
3、确定x的初值,如x0=[0,0];4、调用欧拉方法函数,求解微分方程组的数值解。即 [t,x]=euler(@(t,x)func(t,x),t0,x0,tf,h)5、使用plot绘图函数,绘制t-x(t)和 t-s(t)关系曲线图 6、编程后,可以得到如下结果
用matlab解微分方程组
得到的结果是解析解没有找到。用数值解。在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存 function y=zhidao_rk4_5(t,x)x,y变量分别用x(1),x(2)表示 y=[x(1)-x(2)-x(1)*(x(1)^2+x(2)^2);x(1)+x(2)-x(2)*(x(1)^2+x(2)^2)];在Matlab下面输入...
如何用matlab求解微分方程组的数值解
在Matlab下输入:edit zhidao_feiying.m,然后将下面两行百分号之间的内容,复制进去,保存 function y=zhidao_feiying(t,x)a=1;b=2;c=3;d=4;比方说 f=a*x+y-z;g=b*sin(x*y)-c*cos(z);h=d*y-a*x;注意x用x(1)代,y用x(2)代,z用x(3)代 f=a*x(1)+x(2)-x(3);g...
用matlab求解微分方程并画图,条件如下
用matlab求解微分方程组并画图,其实现过程:1、首先应根据已知微分方程组,编写其函数 dy(1)=-0.10982*y(1)*(1-y(2))^(1\/3)\/(1-(1-y(2))^(1\/3));dy(2)=1441.5074*y(1)*(1-y(2))^(1\/3)\/(1-(1-y(2))^(1\/3));2、用ode45函数求解其微分方程组的数值解 [t,y]...
用matlab求解微分方程初值问题数值解和解析解,求解范围为区间.并画出...
一、数值解 微分方程初值问题数值解可以用ode函数求解。首先,自定义微分方程的函数,即 dy = 3\/x*y+x^3*(exp(x)+cos(x))-2*x;其二,确定初始条件,即 y0=[(exp(pi)+2\/pi)*pi^3];其三,使用ode45函数,求出其数值解【x,y】二、解析解 微分方程初值问题解析解可以用dsolve函数求解。...
如何用matlab解微分方程并作图
第一个是线性方程,可以直接求解析解 用dsolve 求数值解:M-file 以下要单存一个文件在工作路径下%%%%%%%%%%%%%function dotx=myfun(t,y)qin=50;q=50;Cain=1.3;V=1000;K=0.05;dotx=(qin*Cain-q*y)\/V-K*y;M-file 以上要单存一个文件在工作路径下%%%%%%%%%%%%%在command 窗口...
怎么用matlab解这个微分方程
求解常微分方程(组),一般可以用dsolve函数求其解析值,但有的微分方程只能通过ode函数求出其数值解。题主给出的微分方程,如用dsolve函数求解,则会出现错误,所以该方程可以用ode45函数得到其数值解。求解过程如下:a0=0;tspan=[0,5];fun=@(t,a)2\/(-3+2*(1-a)^(-1\/3)+4*(1-a)^(-...
用matlab怎么求解微分方程?
;Clock模块,输入10;lntegrator模块(y'),输入-2;lntegrator1模块(y),输入1;Gain模块,输入-4;Gain1模块,输入-4;Scope模块,无需设置 第八步,设置完成后,点击【运行】第九步,点击【Scope模块】,得到该微分方程的数值解的图形 这样我们用Simulink求解二阶微分方程的过程就结束了。