Runge-Kutta method for 2x2 IVP?
古いコメントを表示
I have a code written to input a vector into my RK4 file, but I keep getting all kinds of errors, including "Undefined function 'mtimes' for input arguments of type 'cell'." my code is as follows
function [Y, t] = RK42d(f, t0, T, y0, N)
%the input of f and y0 must both be vectors
%composed of two fuctions and their respective
%intial conditions
%the vector Y will return a vector as well
h = (T - t0)/(N - 1); %Calculate and store the step size
Y = zeros(2,N); %Initialize the X and Y vector
t = linspace(t0,T,N); % A vector to store the time values
Y(:,1) = y0; % Start Y vector at the intial values.
for i = 1:(N-1)
k1 = f(t(i),Y(i));
k2 = f{t(i)+0.5*h, Y(i)+0.5*h*k1};
k3 = f{t(i)+0.5*h, Y(i)+0.5*h*k2};
k4 = f{t(i)+h, Y(i)+h*k3};
Y{i+1} = Y{i} + (h/6)*(k1+ 2.*k2 + 2*k3 + k4);
%Update approximation
end
%%%END FILE %%%
I've tried running it using another .m file, using
f = {@(t,y)(y(1) - 4.*y(2)); @(t,y)(-y(1) + y(2))};
y0 = [1;0];
t0 = 0;
T = 1;
N = 11;
RK42d(@(t,y)f, t0, T, y0, N)
but for some reason it won't work. Any tips?
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Ordinary Differential Equations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!