作业帮 > 综合 > 作业

我想根据y函数的初始条件求系数u0,v0 下面是我用matlab写的代码,但一直报错.郁闷死.

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/11 17:40:27
我想根据y函数的初始条件求系数u0,v0 下面是我用matlab写的代码,但一直报错.郁闷死.
syms a b t u0 v0
a=1;
b=2;
y=a*u0*t+b*v0*(t+1)^2;
dy=diff(y,t);
y0=subs(y,t,0);
dy0=subs(dy,t,0);
[u0,v0]=solve('y0=2','y0=4','u0,v0');
最后一行写错了[u0,v0]=solve('y0=2','dy0=4','u0,v0');
你的函数是y = u0*t + 2*v0*(t+1)^2
初始条件是y(0) = 2, y'(0) = 4
对不?
我改了下,最后一行,改成 [u0,v0]=solve('y0=2','dy0=4');
结果就是,
u0 =
4
v0 =
2
>> y0
y0 =
2*v0
>> dy0
dy0 =
u0 + 4*v0
我的matlab版本 R2009a
再问: 你说得对,最后一行写错了。我和你版本一样,但为什么后面不加'u0,v0'就可以运算了呢;还有个问题这个答案不对啊,手算结果是v0=1,u0=0,matlab给出的答案不对
再答: 我明白错在哪里了,solve的输入是字符串或者sys所组成的方程, 你直接运行[u0,v0]=solve('y0=2','dy0=4');其实是将y0,dy0看成是独立的变量,而不是把y0,dy0看作u0,v0的表达式所组成的方程,所以需要更改下(不要加单引号!) syms a b t u0 v0 a=1; b=2; y=a*u0*t+b*v0*(t+1)^2; dy=diff(y,t); y0=subs(y,t,0); dy0=subs(dy,t,0); y0 = y0-2; dy0 = dy0 - 4; [u0,v0]=solve(y0,dy0) % 这次解的方程是y0(u,v)= 0, dy0(u,v)= 0 运行结果: u0 = 0 v0 = 1