Você está na página 1de 1

% METODO RUNGE-KUTTA encontra uma solucao numerica para uma EDO com uma dada condicao

inicial.
%
% DADOS
% dyx - funcao string que define y'
% x - valor de x no PVI
% y - valor de y no PVI
% n - numero de passos/valor de x desejado
% h - numero de incrementos
%
% Catherine, Diego, Gustavo, Marx - 2018

% PARA GERAR UM ARQUIVO TXT


arq=fopen('RK4.txt','w');

clc
fprintf('-----------------------------------\n');
fprintf(' MÉTODO DE RUNGE-KUTTA DE 4º ORDEM \n');
fprintf('-----------------------------------\n');

% EDO utilizada: 0.2*y-0.000002*y^2


dyx=input('Entre com EDO em termos de dy/dx: ','s');
fun='@(x,y)';
yy=str2func(strcat(fun,dyx));
x=input('Entre com X inicial: ');
y=input('Entre com Y inicial: ');
n=input('Entre com valor de X desejado: ');
h=input('Entre com número de incrementos (h): ');

fprintf(arq,'----------------------------\n ');
fprintf(arq,' x y \n ');
fprintf(arq,'----------------------------\n ');

for i=x:h:n

fprintf(arq,' %2.1f \t %2.4f\n ',i,y);


plot(i,y,'+b');
hold on
grid on
k1=yy(i,y);
k2=yy((i+(1/2)*h),(y+(1/2)*h*k1));
k3=yy((i+(1/2)*h),(y+(1/2)*h*k2));
k4=yy((i+h),(y+h*k3));
y=y+(1/6)*(k1+2*k2+2*k3+k4)*h;

end

Você também pode gostar