为什么用matlab解这个matlab求解微分方程程组解不了?

在matlab中求解微分方程时不能设定初始值的问题
在matlab中求解微分方程时不能设定初始值的问题
出现以下情况: dsolve('Dh=1000*(2*h)^(1/2)','h(0)=1')??? Error using ==& dsolveError, (in dsolve/IC) The 'implicit' option is not available when giving Initial Conditions.&& dsolve('Dh=1000*(2*h)^(1/2)')Warning: Explicit solutio implicit solution returned.& In dsolve at 312ans =h^(1/2)-500*2^(1/2)*t-C1 = 0在不加初始解时居然可以得出解析解,加了初始值就不行?
我这里是用MATLAB6.5,我直接复制你的第一行的dsolve('Dh=1000*(2*h)^(1/2)','h(0)=1') 进去,可以得到结果ans =[ 500000*t^2+/2)*t+1][ 500000*t^2-/2)*t+1]你再看一下有没有什么输错了啊。不带初值,我解出来的结果是dsolve('Dh=1000*(2*h)^(1/2)')ans =500000*t^2+/2)*t*C1+C1^2
等待您来回答
编程领域专家matlab解微分方程组 - 计算模拟 - 小木虫 - 学术 科研 第一站
&& 查看话题
matlab解微分方程组
哪位高手指点一下matlab解微分方程组!
图片是微分方程组。
下面是我根据网上查到的解法写的程序,能运行,但是计算出来的图像完全不对。
tspan=;%求解时间为2秒也可以 tspan=表示自动时间步长
=ode45(@ff,tspan,x0);%用龙格库塔法求解
plot(t,x(:,1))
plot(t,x(:,2))
plot(t,x(:,3))
plot(t,x(:,4))
plot(t,x(:,5))
plot(t,x(:,6))
function dx=ff(t,x)
dx=zeros(6,1);
k1u=1.5*10^(-7)
k1b=1.0*10^(-4)
k2=1.3*10^(7)
k3=7*10^(-1)
k4=1.0*10^(10)
k5=2.6*10^(9)
k6=3*10^(3)
dx(1)=2*k1u*x(3)+k1b*x(3)^2-k2*x(1)*x(5)+k3*x(2)*x(4)-2*k4*x(1)^2-k5*x(1)*x(2);
dx(2)=k1b*x(3)^2+k2*x(1)*x(5)-k3*x(2)*x(4)-k5*x(1)*x(2)-2*k6*x(2);
dx(3)=-k1u*x(3)-2*k1b*x(3)^2+k3*x(2)*x(4);
dx(4)=-k1u*x(3)-k1b*x(3)^2-k3*x(2)*x(4);
dx(5)=-k2*x(1)*x(5)+k6*x(2)^2;
dx(6)=(k1u*x(3)+k1b*x(3)^2)*(1-Xc-MMT)*1.1111;
可能性很多,首先你确定没有打错公式,其次你可以选择别的求解方法,不过这个问题看起来非线性性不是很强,步长小一些再试试。。。 多谢,我试一下。 为什么在程序最后加上‘end’?加上以后程序运行不下去啊?另外,步长减小以后结果变化很大 多谢,但是我感觉加不加end没什么影响吧。去掉了end计算出来的结果也不太对,你还看出其他什么问题没有? 你的方程有些问题,氧气的方程有关于空间的扩散项,没包涵.第四个初值是pH吧,怎么取到20了,氧气浓度也太低了吧,你是不是把条件写错了 确实是氧气浓度的初值有问题,我忘记乘上环境压力,但是修改后的图趋势没什么变化。扩散的影响在这里可以忽略。的初值确实是20.问一下您对照下面微分方程的话,程序本身有没有错误?因为计算出来的图的趋势与文献明显不同。另外我想问一下初值以及步长的设定对图的变化趋势影响大不大,或者还有没有其他影响图形趋势的因素?非常感谢。 : Originally posted by _alarrn90 at
确实是氧气浓度的初值有问题,我忘记乘上环境压力,但是修改后的图趋势没什么变化。扩散的影响在这里可以忽略。的初值确实是20.问一下您对照下面微分方程的话,程序本身有没有错误?因为计算出来的图的趋势与 ... 程序本身没看出来啥问题,初值和步长对图形趋势很有影响的,这个步长取太大,有些极值,拐点就跳过了 这是模拟出的图和文献中图的对比
那您觉得怎么调整可能会好一些? 你看下时间吧,别人模拟了90h,你的2min趋势上也在0点那个平台阶段,怎么也得过了40h才看得出趋势
注意下你的参数单位,主要是k的值是以什么作为时间单位的 这个确实应该是时间的问题,运行的时候出现警告:Warning: Failure at t=1.2.&&Unable to meet integration tolerances without reducing the step size below the smallest value allowed (5.7) at time t.
> In ode45 at 355,我在论坛搜了一下好像没有统一的解决办法。
动力学常数的单位都是s,这个问题您有什么建议?
具体微分方程组及相关参数在/urllink.php?id=oelq8zutbei57rpi 这里,麻烦了。 这个问题好像在 其他哪个论坛我回答过了 tspan不要自动步长,用指定时间点试试,区间总长度设置成和文献一样的,运行一下看看效果,如果其他地方没有问题,图形趋势应该差不多
var cpro_id = 'u1216994';
欢迎监督和反馈:本帖内容由
提供,小木虫为个人免费站点,仅提供交流平台,不对该内容负责。欢迎协助我们监督管理,共同维护互联网健康,如果您对该内容有异议,请立即发邮件到
联系通知管理员,也可以通过QQ周知,我们的QQ号为:8835100
我们保证在1个工作日内给予处理和答复,谢谢您的监督。
小木虫,学术科研第一站,为中国学术科研研究提供免费动力
欢迎监督,发现不妥请立即
E-mail: & QQ:8835100人人小组 - 求问用matlab求微分方程组的数值解该怎么选solver?
求问用matlab求微分方程组的数值解该怎么选solver?
两个微分方程构成的方程组:dx/dt=f(x,y,t), dy/dt=g(x,y,t), 初值x0和y0已知,用dsolve求不出解析解,改用数值解法;在方程中的某两个常数较小时用ode45可以解出,但是增大这两个常数后,ode45的求解速度越来越慢;换用ode23、ode113什么的也是一样的情况;由于不要求解得很精确只要看x,y的变化趋势就行所以想用欧拉方法,但是发现matlab里面貌似没有这个方法......求问怎样选solver能够让它算得快一点啊?我现在用的代码如下:函数文件:JZ01new5.mfunction y=JZ01new5(t,x)t1=3495.2;t2=3592.2;B=2.;kr=1.;kro1=202;kro2=748;k1=kro1+k2=kro2+r1=kro1*t1;r2=kro2*t2;y=[(t*k1-r1)*x(1)*(B-x(1)-((t*k2-r2)/(t*k1-r1))*x(2))/B;&& (t*k2-r2)*x(2)*(B-x(2)-((t*k1-r1)/(t*k2-r2))*x(1))/B];在命令窗口中运行以下代码:t_start=3592.2;t_end=3680; x0=[2.;1]; [t,x]=ode45('JZ01new5',[t_start,t_end],x0); plot(t,x);legend('S1','S2');xlabel('t');算得特别慢;将kro1和kro2的值调到20以下,运行速度又快了......
我也在解这类的方程
解不出来啊
在书上找到个类似的 书上的根本就是错的程序
帮我解了这个方程吧function xprim =xprim3(t,x)xprim
=[ 5.5*x(1)*(arccos(1-0.001/x(1))-...
sin(arccos(1-0.001/x(1)))*1-0.001/x(1))/((3.14*0.0005)*(+0.1*(200-0.5*3*t^2)/3))^0.5*(0.5+0.1*(200-0.5*3*t^2)/3)) -...
1.5*x(1)/(0.5+0.1*(200-0.5*3*t^2)/3) + 0.1*x(1)*t/(0.5+0.1*(200-0.5*3*t^2)/3);...
(+0.1*(200-0.5*3*t^2)/3))^0.5 + ...
11*(1-0.0005/x(1))/(3.14*x(1)*(+0.1*(200-0.5*3*t^2)/3))^0.5)] ;
科技热点话题
全站热门话题
同类热门小组推荐
北京千橡网景科技发展有限公司:
文网文[号··京公网安备号·甲测资字·文化部监督电子邮箱:wlwh@·
文明办网文明上网举报电话: 举报邮箱:admin1@&&&&&&&&&&&&
密码必须由6-20个字符组成
请输入验证码查看: 5744|回复: 18
MATLAB解常微分方程组
常微分方程组是线性的一阶的。没有解析解只能用数值方法解。但是有一个问题。方程组有五个方程。其中三个给了初值条件。y1(0),y2(0),y3(0).第四个方程没给初值条件。给了末值。y4(10)。第五个是y5(10).这个是一个关系式。就是给了一个y5(10)和y4(10)的关系式。这样的线性常微分方程组该如何解呢?不知道我说明白了吗?
回复 1# zhangdameng 的帖子
应该可以解的,你把具体例子贴出来吧。
好的我整理一下 给你贴出来
微分方程组是:
du/dz=dv/dz
du/dz=5x-4y
dx/dz=4x-5y
dy/dz=7x-8y
边界条件是:
当z=0时 x=0.2;u=1
& &z=1时 v=0;y(1)=0.3*x(1)
就是想知道u(1);x(1);v(0);y(0);y(0) .还有就是假设原方程组没有解析解。只能用数值解法。
有谁会解?先谢谢了。
用1stOpt很简单:
Variable z=[0,1], x=0.2, u=1,v=[,0], y=[,0.3*x];
Plot u,v,x[y2],y[y2];
ODEFunction u'=5*x-4*y;
& && && && &v'=5*x-4*y;
& && && && &x'=4*x-5*y;
& && && && &y'=7*x-8*y;
复制代码
v(z=0): 0.6221
y(z=0): 0.227
z& &&&x(z)& && && && && && &u(z)& && && && && &v(z)& && && && && && &y(z)& && && && && && & x'(z)& && && && && & u'(z)& && && && && & v'(z)& && && && && & y'(z)& && && && && &
0& &&&0.2& && && && && && & 1& && && && && && &0.6221& & 0.227& && &-0.137& &-0.91& & -0.91& & -1.82& &
1& &&&-0. 1.17E-16 -0.20018& &-0.1 -0.7
1/2 á??????:
z& &&&x(z)& && && && && && &u(z)& && && && && &v(z)& && && && && && &y(z)& && && && && && & x'(z)& && && && && & u'(z)& && && && && & v'(z)& && && && && & y'(z)& && && && && &
0& &&&0.2& && && && && && & 1& && && && && && &0.6221& & 0.227& && &-0.137& &-0.91& & -0.91& & -1.82& &
0.05 0.311& &&&0.484 0.1061& & 0.47& && & -0.107& &-0.325& &-0.325& &-0.584& &
0.1& &0.515& &&&0.25& &0.8724& & 0.665& && &-0.261& &-0.082& &-0.082& &-0.709& &
0.15 0.724& &&&0.575 0.1973& & 0.384& && &-0.025& &-0.918& &-0.918& &-0.006& &
0.2& &0.578& &&&0.183 0.8053& & 0.726& && &-0.317& &-0.013& &-0.013& &-0.76& &
0.25 0.6699& & 0.847 0.4693& & 0.403& && &-0.335& &-0.262& &-0.262& &-0.535& &
0.3& &0.6728& & 0.114 0.7362& & 0.829& && &-0.454& &-0.953& &-0.953& &-0.923& &
0.35 0.2828& & 0.029 0.6507& & 0.9473& &&&-0.605& &-0.2 -0.599& &
0.4& &0.7433& & 0.138 0.7604& & 0.5978& &&&-0.016& &-0.9 -0.58& &
0.45 0.1943& & 0.53& &0.1524& & 0.3299& &&&-0.872& &-0.348& &-0.348& &-0.279& &
0.5& &0.7965& & 0.87& &0.4925& & 0.5795& &&&-0.711& &-0.5 -0.06& &
0.55 0.6881& & 0.62& &0.2423& & 0.6849& &&&-0.672& &-0.299& &-0.299& &-0.662& &
0.6& &0.7581& & 0.295 0.9171& & 0.6698& &&&-0.8 -0.& &
0.65 0.31365& &0.859 0.4812& & 0.5986& &&&-0.1 -0.& &
0.7& &0.2981& & 0.805 0.4275& & 0.2266& &&&-0.& &-0.416& &-0.726& &
0.75 0.69475& &0.13& &0.75186& &0.5303& &&&-0.4 -0.& &
0.8& &-0. 0.68771& &0.05529& & -0.4 -0.5
0.85 -0. 0.62143& &0.04943& & -0.1 -0.4
0.9& &-0.628& & 0.497 0.11954& &0.55584& & -0.4 -0.7
0.95 -0. 0.69666& &-0..7 -0.8
1& &&&-0. 1.17E-16 -0.20018& &-0.1 -0.7
谢谢谢谢。。我是个新手。几乎还没有入门。以后得向您多多请教了。
我能找到的1stopt版本是1.5的。可是这个版本的功能十分有限。根本解不了方程。楼上的同学能留下联系方式吗?
3.0后才能解微分方程。
能留下联系方式吗?咱们交个朋友。
如果你的版本是自己购买的?那就算了。如果你的版本是破解版的话,能不能给我传一个啊?谢谢。
站长推荐 /1
Powered by

我要回帖

更多关于 matlab求解微分方程 的文章

 

随机推荐