Relatório de Métodos Numéricos - Sistemas de Equações Não-Lineares
Por: Carlos Mesquita • 14/9/2017 • Trabalho acadêmico • 1.567 Palavras (7 Páginas) • 295 Visualizações
[pic 1]
Universidade Federal do Ceará
Centro de Tecnologia
Departamento de Engenharia Elétrica
Relatório - Laboratório 06
Sistemas de Equações Não-Lineares: Método de Newton-Raphson
Aluno: Carlos Alberto César Mesquita Mat.:356245
Professor: Wilkley
Fortaleza – Ceará - 2017
Introdução
Na resolução de problemas práticos, sistemas não-lineares aparecem com freqüência, tanto pela variabilidade natural dos dados encontrados em observações práticas, como por abranger uma gama maior de funções, como funções transcendentes, em detrimento dos sistemas lineares.
A solução de Sistemas Lineares é dada pela interseção das funções de ordem 1, ou seja, retas. Analogamente, Sistemas Não-Lineares possuem soluções correspondentes às interseções das funções não-lineares. Dessa forma, o caso onde há infinitas soluções, relativo à coincidência das funções, se torna mais difícil de acontecer em um sistema não-linear, visto que as funções podem gerar diversos gráficos, das mais variadas formas. Assim, na maioria dos casos a função converge, possuindo então pontos de interseção das funções; ou diverge, não possuindo pontos de interseção entre as funções.
Sistemas Não-Lineares são mais difíceis de resolver analiticamente, podendo até ser inviáveis de resolver dessa forma. Assim, métodos iterativos de aproximação se mostram muito úteis para a obtenção das raízes, sendo uma ferramenta importante na resolução de problemas. Tais métodos se tornam ainda mais práticos com o auxilio de um programa computacional, evitando cálculos tediosos e a possibilidade de erros ao calcular.
Na atividade de laboratório utilizou-se o MATLAB na resolução dos problemas em questão.
Atividade 06 – Laboratório
1.
a) Script function SNL:
clear; clc;
%Método de Newton-Raphson para Sistemas Não Lineares;
disp('Método de Newton-Raphson:')
xa = [0.5; 0.5; 0.5];
n = 0;
maxit = 500;
tol = 0.0000001;
tic
x = Newtraph_nonlin(xa, tol, n, maxit)
toc
%Método de Newton-Raphson Modificado para Sistemas Não Lineares;
disp('Método de Newton-Raphson Modificado:')
xa = [0.5; 0.5; 0.5];
n = 0;
maxit = 500;
tol = 0.0000001;
Jac = Jacobiano(xa);
tic
y = Newtraphmod(xa, tol, n, maxit);
disp('y =');
disp(y);
toc
Script function Jacobiano:
function J = Jacobiano(x)
n = length(x);
J(1,1) = 2*x(1);
J(1,2) = 2*x(2);
J(1,3) = 2*x(3);
J(2,1) = 4*x(1);
J(2,2) = -2*x(2);
J(2,3) = 4;
J(3,1) = 6*x(1);
J(3,2) = -4;
J(3,3) = 2*x(3);
Script function Func:
function F = Func(x);
F(1,1) = x(1)^2 + x(2)^2 + x(3)^2 -1;
F(2,1) = 2*x(1)^2 - x(2)^2 + 4*x(3);
F(3,1) = 3*x(1)^2 - 4*x(2) + x(3)^2;
Script function Newtraph_nonlin:
function x = Newtraph(xa, tol, n, maxit)
for i=1:maxit
Jac = Jacobiano(xa);
F = Func(xa);
s = inv(Jac)*(-F);
x = xa + s;
if norm(s,inf) <= tol
n = i;
break
else
xa = x;
n=i;
if i==maxit
disp('O método diverge para os argumentos de entrada.');
end
end
end
disp('Número de Iterações:');
disp(n);
end
Script function Newtraphmod:
function y = Newtraphmod(xa,Jac, tol, n,maxit)
xa = [0.5; 0.5; 0.5];
n = 0;
maxit = 500;
tol = 0.0000001;
Jac = Jacobiano(xa);
for i=1:maxit
F = Func(xa);
s = inv(Jac)*(-F);
y = xa + s;
if norm(s,inf) < tol
n = i;
break
else
xa=y;
n=i;
end
if i == maxit
disp('O método diverge para os argumentos de entrada.');
end
end
disp('Número de iterações:');
disp(n);
end
Janela de Comando:
Método de Newton-Raphson:
Número de Iterações:
6
x =
0.8147
0.5155
-0.2655
Elapsed time is 0.000716 seconds.
Método de Newton-Raphson Modificado:
Número de iterações:
45
y =
0.8147
0.5155
-0.2655
Elapsed time is 0.002069 seconds.
Dessa forma, observa-se que o tempo em Newton-Raphson Modificado é maior, mas é proporcionalmente menor que o método de Newton-Raphson, levando em conta o número de iterações.
b) Script SNL:
...