主题:用matlb解决一阶微分方程组的问题
flei123
[专家分:0] 发布于 2008-01-12 23:54:00
[x,y]=dsolve('Dx=x*(1-0.15*y)','Dy=y*(-0.75+0.03*x)',...
'x(0)=30', 'y(0)=2.5', 't')
ezplot(x,y)
请问为什么总是报错哦
请问错在哪里
应该怎么改
谢谢
最后更新于:2008-01-12 23:54:00
回复列表 (共3个回复)
沙发
flei123 [专家分:0] 发布于 2008-01-12 23:57:00
??? Error using ==> maple
Error, rhs expects its 1st argument, e, to be of type {`..`, `::`, relation}, but received {x(t) = RootOf(Int(1/_c/(exp(-LambertW(exp(-51/40+3/100*_c+3/4*ln(30)+ln(-3/8)-3/4*ln(_c)))-51/40+3/100*_c+3/4*ln(30)+ln(-3/8)-3/4*ln(_c))+1),_c = `` .. _Z)-t-Int(-8/_c/(3*exp(-LambertW(-3/8*exp(-51/40+3/100*_c+3/4*ln(30)-3/4*ln(_c)))-51/40+3/100*_c+3/4*ln(30)-3/4*ln(_c))-8),_c = `` .. 30)), y(t) = -20/3*(RootOf(Int(1/_c/(exp(-LambertW(exp(-51/40+3/100*_c+3/4*ln(30)+ln(-3/8)-3/4*ln(_c)))-51/40+3/100*_c+3/4*ln(30)+ln(-3/8)-3/4*ln(_c))+1),_c = `` .. _Z)-t-Int(-8/_c/(3*exp(-LambertW(-3/8*exp(-51/40+3/100*_c+3/4*ln(30)-3/4*ln(_c)))-51/40+3/100*_c+3/4*ln(30)-3/4*ln(_c))-8),_c = `` .. 30))*(exp(-LambertW(exp(-51/40+3/100*RootOf(Int(1/_c/(exp(-LambertW(exp(-51/40+3/100*_c+3/4*ln(30)+ln(-3/8)-3/4*ln(_c)))-51/40+3/100*_c+3/4*ln(30)+ln(-3/8)-3/4*ln(_c))+1),_c = `` .. _Z)-t-Int(-8/_c/(3*exp(-LambertW(-3/8*exp(-51/40+3/100*_c+3/4*ln(30)-3/4*ln(_c)))-51/40+3/100*_c+3/4*ln(30)-3/4*ln(_c))-8),_c = `` .. 30))+3/4*ln(30)+ln(-3/8)-3/4*ln(RootOf(Int(1/_c/(exp(-LambertW(exp(-51/40+3/100*_c+3/4*ln(30)+ln(-3/8)-3/4*ln(_c)))-51/40+3/100*_c+3/4*ln(30)+ln(-3/8)-3/4*ln(_c))+1),_c = `` .. _Z)-t-Int(-8/_c/(3*exp(-LambertW(-3/8*exp(-51/40+3/100*_c+3/4*ln(30)-3/4*ln(_c)))-51/40+3/100*_c+3/4*ln(30)-3/4*ln(_c))-8),_c = `` .. 30)))))-51/40+3/100*RootOf(Int(1/_c/(exp(-LambertW(exp(-51/40+3/100*_c+3/4*ln(30)+ln(-3/8)-3/4*ln(_c)))-51/40+3/100*_c+3/4*ln(30)+ln(-3/8)-3/4*ln(_c))+1),_c = `` .. _Z)-t-Int(-8/_c/(3*exp(-LambertW(-3/8*exp(-51/40+3/100*_c+3/4*ln(30)-3/4*ln(_c)))-51/40+3/100*_c+3/4*ln(30)-3/4*ln(_c))-8),_c = `` .. 30))+3/4*ln(30)+ln(-3/8)-3/4*ln(RootOf(Int(1/_c/(exp(-LambertW(exp(-51/40+3/100*_c+3/4*ln(30)+ln(-3/8)-3/4*ln(_c)))-51/40+3/100*_c+3/4*ln(30)+ln(-3/8)-3/4*ln(_c))+1),_c = `` .. _Z)-t-Int(-8/_c/(3*exp(-LambertW(-3/8*exp(-51/40+3/100*_c+3/4*ln(30)-3/4*ln(_c)))-51/40+3/100*_c+3/4*ln(30)-3/4*ln(_c))-8),_c = `` .. 30))))+1)-RootOf(Int(1/_c/(exp(-LambertW(exp(-51/40+3/100*_c+3/4*ln(30)+ln(-3/8)-3/4*ln(_c)))-51/40+3/100*_c+3/4*ln(30)+ln(-3/8)-3/4*ln(_c))+1),_c = `` .. _Z)-t-Int(-8/_c/(3*exp(-LambertW(-3/8*exp(-51/40+3/100*_c+3/4*ln(30)-3/4*ln(_c)))-51/40+3/100*_c+3/4*ln(30)-3/4*ln(_c))-8),_c = `` .. 30)))/RootOf(Int(1/_c/(exp(-LambertW(exp(-51/40+3/100*_c+3/4*ln(30)+ln(-3/8)-3/4*ln(_c)))-51/40+3/100*_c+3/4*ln(30)+ln(-3/8)-3/4*ln(_c))+1),_c = `` .. _Z)-t-Int(-8/_c/(3*exp(-LambertW(-3/8*exp(-51/40+3/100*_c+3/4*ln(30)-3/4*ln(_c)))-51/40+3/100*_c+3/4*ln(30)-3/4*ln(_c))-8),_c = `` .. 30))}
Error in ==> C:\MATLAB6p5\toolbox\symbolic\dsolve.m
On line 304 ==> RRHS = maple('rhs',R); RLHS = maple('lhs',R);
Error in ==> C:\Documents and Settings\Administrator\桌面\Untitled4.m
On line 1 ==> [x,y]=dsolve('Dx=x*(1-0.15*y)','Dy=y*(-0.75+0.03*x)',...
板凳
zhouxuewu11 [专家分:430] 发布于 2008-01-14 15:41:00
如果你用Matlab解提示错误如下:
[x,y]=dsolve('Dx=x*(1-0.15*y)','Dy=y*(-0.75+0.03*x)','x(0)=30','y(0)=2.5','t')
??? Error using ==> dsolve
Error, (in dsolve/IC) The 'implicit' option is not available when giving Initial Conditions.
去掉初值错误:
[x,y]=dsolve('Dx=x*(1-0.15*y)','Dy=y*(-0.75+0.03*x)','t')
Warning: Explicit solution could not be found; implicit solution returned.
> In dsolve at 312
??? Error using ==> dsolve
Too many output arguments.
dsolve命令是符号求解微分方程,只有存在原函数的微分方程才能得出正确的解。否则,只能用数值解。¥¥¥原方程看似简单,应该有原函数.....哈哈哈
3 楼
zhouxuewu11 [专家分:430] 发布于 2008-01-14 15:46:00
如果举例的话如下:能解
[x,y]=dsolve('Dx=3*y','Dy=0.03*x','x(0)=30','y(0)=2.5','t')
x =
55/2*exp(3/10*t)+5/2*exp(-3/10*t)
y =
11/4*exp(3/10*t)-1/4*exp(-3/10*t)
我来回复