簡體   English   中英

如何用MATLAB求解微分方程

[英]How to solve a differential equation with MATLAB

我有個問題。 那是 :

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

我想用 MATLAB 解決這個問題,但我不能。

你能幫助我嗎 ?

首先,您必須減少訂單。 讓 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 = [ zy ]')

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM