2 次 ODE から取得した 2 つの 1 次 ODE があります。
y(0)=1
y'(0)=-1/3
u1'=u2
u2=u/9-(pi*u1*e^(x/3)*(2u2*sin(pi*x)+pi*u1cos(pi*x))
u1(0)=y(0)=1
u2(0)=y'(0)=-1/3
私の質問は、前方オイラーを設定する方法ですか? 私は持っています:
n=[0:0.01:2];
h=2./n;
2 次 ODE から取得した 2 つの 1 次 ODE があります。
y(0)=1
y'(0)=-1/3
u1'=u2
u2=u/9-(pi*u1*e^(x/3)*(2u2*sin(pi*x)+pi*u1cos(pi*x))
u1(0)=y(0)=1
u2(0)=y'(0)=-1/3
私の質問は、前方オイラーを設定する方法ですか? 私は持っています:
n=[0:0.01:2];
h=2./n;
私たちの方程式は次のとおりです。
u1' = u2
u2' = u1/9 - \pi u1 exp(x/3)(2u2 sin(\pi x) + \pi u1 cos(\pi x))
y' = f(x,y) を解くためのオイラー法は次のとおりです。
y_{n+1} = y_{n} + h * f(x_n, y_n)
MATLAB コードとして、これを次のように記述できます。
h = 0.01; % Choose a step size
x = [0:h:2]; % Set up x
u = zeros(length(x),2);
u(1,:) = [1; -1/3]; % Initial Conditions for y
for ii = 2:length(x)
u(ii,:) = u(ii-1,:) + h * CalculateDeriv(x(ii-1),u(ii-1,:)); % Update u at each step
end
function deriv = CalculateDerivative(x,u)
deriv = zeros(2,1);
deriv(1) = u(2);
deriv(2) = u(1)/9 - pi*u(1)*exp(x/9)*(2*u(2)*sin(pi*x) + pi*u(1)*cos(pi*x))
end