% Método de Taylor de ordem 2 para EDO: y' = 1/x^2 - y/x - y^2
% y'' = -2/x^3 - y'/x + y/x^2 - 2*y*y'
% y(1) = -1, x em [1,2]
% Solução exata: y(x) = -1/x

f = @(x, y) 1/x^2 - y/x - y^2;
f_linha = @(x, y) -2/x^3 - f(x,y)/x + y/x^2 - 2*y*f(x,y);

x0 = 1; y0 = -1;

% Para h = 1/5
h = 1/5;
n = (2 - x0)/h;

x = zeros(n+1, 1);
y = zeros(n+1, 1);
x(1) = x0;
y(1) = y0;

for i = 1:n
    y(i+1) = y(i) + h*f(x(i), y(i)) + (h^2/2)*f_linha(x(i), y(i));
    x(i+1) = x(i) + h;
end
fprintf('\n=== Eilson jr ===\n')
fprintf('\n=== MÉTODO DE TAYLOR (p = 2) - h = 1/5 ===\n')
fprintf('   x        y_aprox     y_exato       Erro\n')
for i = 1:length(x)
    y_exato = -1/x(i);
    erro = abs(y(i) - y_exato);
    fprintf('%.2f     %.8f   %.8f   %.8f\n', x(i), y(i), y_exato, erro)
end

% Para h = 1/10
h = 1/10;
n = (2 - x0)/h;

x = zeros(n+1, 1);
y = zeros(n+1, 1);
x(1) = x0;
y(1) = y0;

for i = 1:n
    y(i+1) = y(i) + h*f(x(i), y(i)) + (h^2/2)*f_linha(x(i), y(i));
    x(i+1) = x(i) + h;
end

fprintf('\n=== MÉTODO DE TAYLOR (p = 2) - h = 1/10 ===\n')
fprintf('   x        y_aprox     y_exato       Erro\n')
for i = 1:length(x)
    y_exato = -1/x(i);
    erro = abs(y(i) - y_exato);
    fprintf('%.2f     %.8f   %.8f   %.8f\n', x(i), y(i), y_exato, erro)
end

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: