这么简单的常微分方程问题高数应该有教怎么解吧,去看看高数吧,
常微分方程部分有关λ的部分,又是其次方程,两步就出来了。
第一次补充回答也是最后一次补充回答:
开始以为abcde是常数,没想到不是。
dsolve后面的函数应该是一次的微分方程,你应该将函数标准化处理。令y'=y1,带到原方程中去形成两个一次的微分方程,注意初始条件也要变一下y'(0)=e变成y1(0)=e,然后再用dsolve函数求解,系数为非常数,可能这个函数解不了,可能需要手动编程,建议你去找本常微分的书看看,高数上可能没有讲过这种方程的求解。刚翻了下书,发现这问题还是比较烦的,你自己去研究吧
O(∩_∩)O~
另外用一个函数多看看帮助,matlab帮助写的很好的
我也是这两天开始学MATLAB
建议你去图书馆找本书-翻到符号运算-常微分方程求解,然后照例题着输入
下面是我做的。。。
你做的时候把a,b,c,d,e输进去
y=dsolve('a*D2y+b*Dy+c*y=0','y(0)=d','Dy(0)=e')
y
=
(2*a*e
+
b*d
+
d*(b^2
-
4*a*c)^(1/2))/(2*exp((t*(b
-
(b^2
-
4*a*c)^(1/2)))/(2*a))*(b^2
-
4*a*c)^(1/2))
-
(2*a*e
+
b*d
-
d*(b^2
-
4*a*c)^(1/2))/(2*exp((t*(b
+
(b^2
-
4*a*c)^(1/2)))/(2*a))*(b^2
-
4*a*c)^(1/2))
暂时我也不知道如何ABCDE得方法
只能手动代入
>>
y=dsolve('1*D2y-3*Dy-4*y=0','y(0)=0','Dy(0)=-5')
y
=
1/exp(t)
-
exp(4*t)
下面是作图的
ezplot(y,[0,4]),为了使图形可见把范围所谓0到4
你在实际运用时候把中括号改为[200,400]
y=dsolve('D2y+(1+cos(t))*y=0','y(0)=0.01','Dy(0)=0')
%因为默认的是t,所以我把X改成t了
Warning:
Explicit
solution
could
not
be
found.
无解,当然也有可能是因为MATLAB也不是全能的,或者我还没学到家,因为我也是这个星期才学的。。。
感觉MATLAB很简单的,如果只是解解微分方程的话找本书三两下就能搞定,或者找身边同学问下,用不了多少时间
>>
clear
>>
syms
a
b
c
d
e;
>>
y=dsolve('a*D2y+b*Dy+c*y=0','y(0)=d','Dy(0)=e')
y
=
(2*a*e
+
b*d
+
d*(b^2
-
4*a*c)^(1/2))/(2*exp((t*(b
-
(b^2
-
4*a*c)^(1/2)))/(2*a))*(b^2
-
4*a*c)^(1/2))
-
(2*a*e
+
b*d
-
d*(b^2
-
4*a*c)^(1/2))/(2*exp((t*(b
+
(b^2
-
4*a*c)^(1/2)))/(2*a))*(b^2
-
4*a*c)^(1/2))
>>
a=1;b=1;c=1;d=1;e=1;%若常数已知
>>
t=1;%desolve中没指定自变量x,这里默认为t,带入任意一个x值
>>
y=eval(y)
y
=
1.1932
+
0.0000i
这是解方程的方法,画图也差不多,我在命令窗写的改麻烦,下面是我在editor写的。
syms
a
b
c
d
e;
y=dsolve('a*D2y+b*Dy+c*y=0','y(0)=d','Dy(0)=e','x');
x=200:0.1:400;%取值范围,步长
a=1;b=1;c=1;d=1;e=1;%带入参数
y=eval(y);
plot(x,y)
你补充问题的方程解得也是一个空的,并报错,或许就是无解的,我也很疑问。