如何用MATLAB解微分方程

问题描述 投票:1回答:2

我有问题。那是:

y"^2 + 2*y'+ 3*y = sin(x), y'(0)=0, y(0)=1

我想用MATLAB解决此问题,但不能。

你能帮我吗?

matlab differential-equations
2个回答
7
投票

首先,您必须减少订单。令z = y'=> z'= y“

您的ODE然后变为

z' = sqrt(-2*z - 3*y + sin(x)), with z(0) = 0
y' = z, with y(0) = 1

您现在可以在MATLAB中编写一个函数来表示此ODE :(其中M = [z y]')

function dMdx = odefunc(x,M)
    z = M(1);
    y = M(2);
    dMdx(1) = sqrt(-2*z - 3*y + sin(x));
    dMdx(2) = z;
end

然后您可以按以下方式调用此函数:

M0 = [ 0 1 ];   % Initial values of ODE
tfinal = 12;     % Final integration time
[x,M] = ode45(@odefunc,[0 tfinal],M0)   % Integration using the RK-45 algorithm

0
投票

bonjour tout le monde𝑑𝑝(2,0,0,𝑡)= 𝛽2𝑝21𝑝(1,1,0,𝑡)+ 𝛽3𝑝31𝑝(1,0,1,𝑡)−2𝛽1𝑝(2,0,0,𝑡);𝑑𝑝(1,1,0,𝑡)= 2𝛽2𝑝21𝑝(0,2,0,𝑡)+ 𝛽3𝑝31𝑝(0,1,1,𝑡)+ 𝛽3𝑝32𝑝(1,0,1,𝑡)+ 2𝛽1𝑝12𝑝(2,0, 0,𝑡)-(𝛽1 + 𝛽2)𝑝(1,1,0,𝑡);𝑑𝑝(1,0,1,𝑡)= 𝛽2𝑝21𝑝(0,1,1,𝑡)+ 2𝛽3𝑝31𝑝(0,0,2,𝑡)+ 2𝛽1𝑝13𝑝(2,0,0,𝑡)+ 𝛽2𝑝23𝑝(1,1, 0,𝑡)-(𝛽1 + 𝛽3)𝑝(1,0,1,𝑡);𝑑𝑝(0,1,1,𝑡)= 2𝛽3𝑝32𝑝(0,0,2,𝑡)+ 𝛽1𝑝12𝑝(1,0,1,𝑡)+ 𝛽1𝑝13𝑝(1,1,0,𝑡)+ 2𝛽2𝑝23𝑝(0,2, 0,𝑡)−(𝛽2 + 𝛽3)𝑝(0,1,1,𝑡);𝑑𝑝(0,2,0,𝑡)= 𝛽3𝑝32𝑝(0,1,1,𝑡)+ 𝛽1𝑝12𝑝(1,1,0,𝑡)−2𝛽2𝑝(0,2,0,𝑡);𝑑𝑝(0,0,2,𝑡)= 𝛽1𝑝31𝑝(1,0,1,𝑡)+ 𝛽2𝑝23𝑝(0,1,1,𝑡)−2𝛽3𝑝(0,0,2,𝑡);

在拉普拉斯的改造方法上的系统差异]。est ce que qulqu'un peut m'aider s'il vous辫子?

© www.soinside.com 2019 - 2024. All rights reserved.