matlab中求解常微分方程的问题

是这样的,常微分方程没有初始值,只是要求出来一个函数表达式。但是式中的a,b是常数,需要我手动输入,我这个程序里inputab那个命令之后求解常微分方程的表达式里并没有a... 是这样的,常微分方程没有初始值,只是要求出来一个函数表达式。但是式中的a,b是常数,需要我手动输入,我这个程序里input a b 那个命令之后求解常微分方程的表达式里并没有a、b的值代入?请问怎么解决呢?另外最后还需要画一个图,z-x。不知道该怎么输入,简单尝试了plot说不对。请问这条命令要怎么写呢?还有如何给出画曲线时x的范围。问题比较多,麻烦大家了。(❁´◡`❁)*✲゚* 展开
 我来答
tianxiawulang
2015-06-01 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2550万
展开全部

1、【求解常微分方程的表达式里并没有a、b的值代入】

常微分方程里面的a、b只是个符号量,与你输入的数据没有关联起来。

可以把输入的a、b转换为字符串,在dsolve的时候拼接成待求解的微分方程,但那样比较麻烦。

更可去的做法是直接求解,然后用subs函数代入数据。

 

2、微分方程没有初值的话,得到的表达式中会有一个常数C1。不知道这个值无法画图。

 

3、z的表达式中符号e没有赋值,也无法画图。

 

参考代码:

>> y=dsolve('Dy=a*x^2-b*x','x') 
y = 
1/3*a*x^3-1/2*b*x^2+C1

 
>> syms c d e
>> z=c*(y-d)*y/e^2;
>> [a,b,c,d,e]=deal(1,2,3,4,5);
>> z=subs(z)

z =

1/25*(x^3-3*x^2+3*C1-12)*(1/3*x^3-x^2+C1)

变量a~e的赋值我用deal函数批量指定,题主可以用input输入,对其它部分无影响。

 

4、如果有初值(或者给C1指定一个值),而且e的值已知,可以用ezplot画图,例如

C1=6;
ezplot(z,[0 5])

后面的 [0 5] 就是指定x范围的。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式