Как решить дифференциальное уравнение с MATLAB - PullRequest
1 голос
/ 25 июля 2010

У меня проблема.то есть:

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

Я хочу решить эту проблему с помощью MATLAB, но не могу.

Можете ли вы помочь мне?

1 Ответ

7 голосов
/ 25 июля 2010

Во-первых, вы должны уменьшить заказ.Пусть 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...