对于第一个问题可以直接采用函数求解的方法
y1=dsolve('D2y+4*Dy+29*y=0','Dy(0)=15',' y(0)=0','x')
y1=(3*sin(5*x))/exp(2*x)
y2=dsolve('D2y-2*Dy+5*y=sin(2*x)')
y2=sin(2*x)/5 + C5*cos(2*t)*exp(t) + C6*sin(2*t)*exp(t)
对于第三个问题,那么不能求出通解,所以只能借助于数值求解的方法来求解,数值求解采用ode45函数来求解的方法,具体过程如下:
先编写待求解的微分方程函数,打开编辑器:
%编写要求解的微分方程组函数表达式!
function dy = rigid(t,y)
dy = zeros(3,1); % 定义数组函数!
dy(1) = y(2) * y(3);%第一个微分方程;
dy(2) = -y(1) * y(3);%第二个微分方程;
dy(3) = -0.51 * y(1) * y(2);%第三个微分方程;
并以默认的文件名保存函数文件!
编写命令行,对微分方程求解:
options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e-5]);%定义求解选项包含精度项!
[T,Y] = ode45(rigid,[0 12],[0 1 1],options);%采用ode45求解方程组,并把求解结果保存到数组T,Y中!
plot(T,Y(:,1),'r-',T,Y(:,2),'b-.',T,Y(:,3),'k.')%作图!
grid minor%网格化!
运行上面的代码就得到函数的解:
附上图片!
如果有什么问题可以问我!!