matlab中求解常微分方程的问题
是这样的,常微分方程没有初始值,只是要求出来一个函数表达式。但是式中的a,b是常数,需要我手动输入,我这个程序里inputab那个命令之后求解常微分方程的表达式里并没有a...
是这样的,常微分方程没有初始值,只是要求出来一个函数表达式。但是式中的a,b是常数,需要我手动输入,我这个程序里input a b 那个命令之后求解常微分方程的表达式里并没有a、b的值代入?请问怎么解决呢?另外最后还需要画一个图,z-x。不知道该怎么输入,简单尝试了plot说不对。请问这条命令要怎么写呢?还有如何给出画曲线时x的范围。问题比较多,麻烦大家了。(❁´◡`❁)*✲゚*
展开
1个回答
展开全部
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范围的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |