SlideShare uma empresa Scribd logo
1 de 5
1
Exercício:
Escreva um código em Matlab para aplicar os métodos de Newton e da Bissecção no polinômio
de Bessel:
E compare as soluções.
Utilizamos os seguintes códigos para gerar os gráficos das soluções 1 e 2:
%%% Metodo de Newton-Raphson para derminacao de uma raiz de um polinomio %%%
function newton(f,x0,e,n)
tic;
clc;
clear all;
close all;
%%%Entradas%%%
syms x
X = zeros; %% Vetores utilizados para %%
Y = zeros; %% plotar a solucao %%
j = 1;
m = 600; %% m maximo %%
f = 0;
mf = 1;
if nargin < 1;
for j = 1 : m
mf = mf*j; %% m!
g = ((-3)^(j) * x ^ (2*j)) / (2^(2*j) * mf * (3*j - 1)) ; %% Construcao do Polinomio
f = g + f; %% de Bessel J -1/3(x)
end
f = f + 1; %% finalizando a construcao do poloinomio
x0 = 1.5; %% tentativa inicial
e = 10^-16; %% erro
n = 100000; %% numero maximo de iteracoes
end
df = diff(f); %% inicio do metodo de Newton %%
i = 1;
while i < n
p = x0 - subs(f,x0)/subs(df,x0);
fprintf('x%d = %f, f(x%d)= %fn', i,double(x0),i,double(subs(f,x0)))
X(i) = x0;
Y(i) = subs(f,x0);
if abs(p-x0) < e
break
2
else
x0 = double(p);
i = i + 1;
end
end
toc;
if i == n && abs(p-x0) > e
fprintf('Necessita de mais iteracoes, por favor ajuste')
end %% Fim do metodo de Newton %%
plot(X,Y) %% Plotando solucao %%
3
%%% Metodo da Bisseccao para derminacao de uma raiz de um polinomio
function bissecao(f,intinf,intsup,erro,max)
tic;
clc;
clear all;
close all;
%%%Entradas%%%
j = 1;
X = zeros; %% Vetores utilizados para %%
Y = zeros; %% plotar a solucao %%
m = 600; %% m maximo %%
mf = 1;
f = 0;
syms x
if nargin < 1;
for j = 1 : m
mf = mf*j; %% m!
g = ((-3)^(j) * x ^ (2*j)) / (2^(2*j) * mf * (3*j - 1)) ; %% Construcao do Polinomio
f = g + f; %% de Bessel J -1/3(x)
end
f = f + 1; %% finalizando a construcao do poloinomio
intinf = 1; %% cota inferior do intervalo
intsup = 7; %% cota superior do intervalo
erro = 0.0001; %% erro
max = 100000; %% numero maxiomo de iteracoes
end
aux = 1; %% comeco do metodo da bisseccao %%
while (aux < max)
x = (intinf+intsup)/2;
X(aux) = x;
Y(aux) = abs(subs(f,x));
if ( subs(f,x) == 0 || intsup - intinf < erro )
fprintf('A raiz é: %dn', x);
break
end
if sign(subs(f,x)) == sign (subs(f,intinf))
intinf = x;
else
intsup = x;
end
fprintf('[cota inferior]%d = %f, [cota superior]%d= %f, f(x%d)=
%fn',aux,double(intinf),aux,double(intsup), aux, double(subs(f,x))')
aux = aux + 1;
end %% Fim do metodo da Bisseccao %%
toc;
plot(X,Y) %% Plotando a solucao %
4
Utilizando os dois códigos foi possível obter os seguintes gráficos de solução:
A primeira observação que podemos fazer quanto às soluções é o comportamento dos gráficos,
o método de Newton se comporta de forma linear em toda a solução já o método da Bissecção
se comporta de forma linear até ponto (2.5,0.3) o que nos mostra que o método da bissecção se
comporta de forma instável próximo a raiz o que acaba gerando uma perda de tempo na
conversão do método.
5
Segue abaixo uma tabela com algumas informações sobre os métodos:
Newton Bissecção
Tempo(s) 12.29 7.09
Nº de Iterações 5 16
Erro 10^-16 0.00001
Observando o tabela podemos concluir que o método da bissecção embora tenha necessitado de
mais iterações foi mais eficaz para achar a raiz do polinômio em questão, porém para que
método convirja seu erro é muito mais elevado do que o do método de Newton.
Além das informações que constam na tabela também foi possível observar ao testar os códigos
que realmente o método de Newton se mostrou muito mais limitado do que o da Bissecção para
achar as raízes do polinômio de Bessel, pois para que o método convirja é necessário escolher
um x0 inicial que esteja de -7.4 até 7.4 o que acaba restringindo muito o método , já o método
da Bissecção se mostrou muito mais eficiente pois convergiu para qualquer intervalo com
distancia entre os pontos maior do que 2, assim podemos concluir que embora o erro utilizado
no método da Bissecção seja menor que o utilizado no método de Newton, ele é bem satisfatório
logo, o método da bissecção é mais indicado para a determinação das raízes do polinômio de
Bessel.

Mais conteúdo relacionado

Semelhante a Exercício mme

Análise de arredondamento em ponto flutuante
Análise de arredondamento em ponto flutuanteAnálise de arredondamento em ponto flutuante
Análise de arredondamento em ponto flutuanteFelipe Belarmino
 
Cálculo Numérico: Integração Numérica com Bubble Sort
Cálculo Numérico: Integração Numérica com Bubble SortCálculo Numérico: Integração Numérica com Bubble Sort
Cálculo Numérico: Integração Numérica com Bubble SortJohnnatan Messias
 
Modelagem matematica aplicada a engenharia quimica
Modelagem matematica aplicada a engenharia quimicaModelagem matematica aplicada a engenharia quimica
Modelagem matematica aplicada a engenharia quimicaVinicius Chacon
 
1 integr num_simples
1 integr num_simples1 integr num_simples
1 integr num_simplesHeron Soares
 
1 integr num_simples
1 integr num_simples1 integr num_simples
1 integr num_simplesHeron Soares
 
Modelagem e inversão em coordenadas esféricas na gravimetria
Modelagem e inversão em coordenadas esféricas na gravimetriaModelagem e inversão em coordenadas esféricas na gravimetria
Modelagem e inversão em coordenadas esféricas na gravimetriaLeonardo Uieda
 
Distribuição de poisson aplicada no Excell - Prof.Dr. Nilo Antonio de Souza S...
Distribuição de poisson aplicada no Excell - Prof.Dr. Nilo Antonio de Souza S...Distribuição de poisson aplicada no Excell - Prof.Dr. Nilo Antonio de Souza S...
Distribuição de poisson aplicada no Excell - Prof.Dr. Nilo Antonio de Souza S...Nilo Sampaio
 
Aula 3 - Erros.ppt
Aula 3 - Erros.pptAula 3 - Erros.ppt
Aula 3 - Erros.pptJoely14
 
5 expressoes logicas - operadores - base binaria - operadores de bits
5   expressoes logicas - operadores - base binaria - operadores de bits5   expressoes logicas - operadores - base binaria - operadores de bits
5 expressoes logicas - operadores - base binaria - operadores de bitsRicardo Bolanho
 
Artigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfArtigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfItaloRainier1
 
Desenvolvimento análise de sistemas lineares
Desenvolvimento análise de sistemas linearesDesenvolvimento análise de sistemas lineares
Desenvolvimento análise de sistemas linearesMaique Mateus
 

Semelhante a Exercício mme (20)

Diogo t.robaina edp
Diogo t.robaina edpDiogo t.robaina edp
Diogo t.robaina edp
 
Método da Bissecção
Método da BissecçãoMétodo da Bissecção
Método da Bissecção
 
Calculo numerico
Calculo numerico Calculo numerico
Calculo numerico
 
Análise de arredondamento em ponto flutuante
Análise de arredondamento em ponto flutuanteAnálise de arredondamento em ponto flutuante
Análise de arredondamento em ponto flutuante
 
Cálculo Numérico: Integração Numérica com Bubble Sort
Cálculo Numérico: Integração Numérica com Bubble SortCálculo Numérico: Integração Numérica com Bubble Sort
Cálculo Numérico: Integração Numérica com Bubble Sort
 
Modelagem matematica aplicada a engenharia quimica
Modelagem matematica aplicada a engenharia quimicaModelagem matematica aplicada a engenharia quimica
Modelagem matematica aplicada a engenharia quimica
 
1 integr num_simples
1 integr num_simples1 integr num_simples
1 integr num_simples
 
1 integr num_simples
1 integr num_simples1 integr num_simples
1 integr num_simples
 
Calculo numérico
Calculo numéricoCalculo numérico
Calculo numérico
 
Modelagem e inversão em coordenadas esféricas na gravimetria
Modelagem e inversão em coordenadas esféricas na gravimetriaModelagem e inversão em coordenadas esféricas na gravimetria
Modelagem e inversão em coordenadas esféricas na gravimetria
 
Aritmética de máquina
Aritmética de máquinaAritmética de máquina
Aritmética de máquina
 
Distribuição de poisson aplicada no Excell - Prof.Dr. Nilo Antonio de Souza S...
Distribuição de poisson aplicada no Excell - Prof.Dr. Nilo Antonio de Souza S...Distribuição de poisson aplicada no Excell - Prof.Dr. Nilo Antonio de Souza S...
Distribuição de poisson aplicada no Excell - Prof.Dr. Nilo Antonio de Souza S...
 
Aula 3 - Erros.ppt
Aula 3 - Erros.pptAula 3 - Erros.ppt
Aula 3 - Erros.ppt
 
Integracaonumerica
IntegracaonumericaIntegracaonumerica
Integracaonumerica
 
5 expressoes logicas - operadores - base binaria - operadores de bits
5   expressoes logicas - operadores - base binaria - operadores de bits5   expressoes logicas - operadores - base binaria - operadores de bits
5 expressoes logicas - operadores - base binaria - operadores de bits
 
Aula6final
Aula6finalAula6final
Aula6final
 
Prog Din08
Prog Din08Prog Din08
Prog Din08
 
Zero de função
Zero de funçãoZero de função
Zero de função
 
Artigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfArtigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdf
 
Desenvolvimento análise de sistemas lineares
Desenvolvimento análise de sistemas linearesDesenvolvimento análise de sistemas lineares
Desenvolvimento análise de sistemas lineares
 

Exercício mme

  • 1. 1 Exercício: Escreva um código em Matlab para aplicar os métodos de Newton e da Bissecção no polinômio de Bessel: E compare as soluções. Utilizamos os seguintes códigos para gerar os gráficos das soluções 1 e 2: %%% Metodo de Newton-Raphson para derminacao de uma raiz de um polinomio %%% function newton(f,x0,e,n) tic; clc; clear all; close all; %%%Entradas%%% syms x X = zeros; %% Vetores utilizados para %% Y = zeros; %% plotar a solucao %% j = 1; m = 600; %% m maximo %% f = 0; mf = 1; if nargin < 1; for j = 1 : m mf = mf*j; %% m! g = ((-3)^(j) * x ^ (2*j)) / (2^(2*j) * mf * (3*j - 1)) ; %% Construcao do Polinomio f = g + f; %% de Bessel J -1/3(x) end f = f + 1; %% finalizando a construcao do poloinomio x0 = 1.5; %% tentativa inicial e = 10^-16; %% erro n = 100000; %% numero maximo de iteracoes end df = diff(f); %% inicio do metodo de Newton %% i = 1; while i < n p = x0 - subs(f,x0)/subs(df,x0); fprintf('x%d = %f, f(x%d)= %fn', i,double(x0),i,double(subs(f,x0))) X(i) = x0; Y(i) = subs(f,x0); if abs(p-x0) < e break
  • 2. 2 else x0 = double(p); i = i + 1; end end toc; if i == n && abs(p-x0) > e fprintf('Necessita de mais iteracoes, por favor ajuste') end %% Fim do metodo de Newton %% plot(X,Y) %% Plotando solucao %%
  • 3. 3 %%% Metodo da Bisseccao para derminacao de uma raiz de um polinomio function bissecao(f,intinf,intsup,erro,max) tic; clc; clear all; close all; %%%Entradas%%% j = 1; X = zeros; %% Vetores utilizados para %% Y = zeros; %% plotar a solucao %% m = 600; %% m maximo %% mf = 1; f = 0; syms x if nargin < 1; for j = 1 : m mf = mf*j; %% m! g = ((-3)^(j) * x ^ (2*j)) / (2^(2*j) * mf * (3*j - 1)) ; %% Construcao do Polinomio f = g + f; %% de Bessel J -1/3(x) end f = f + 1; %% finalizando a construcao do poloinomio intinf = 1; %% cota inferior do intervalo intsup = 7; %% cota superior do intervalo erro = 0.0001; %% erro max = 100000; %% numero maxiomo de iteracoes end aux = 1; %% comeco do metodo da bisseccao %% while (aux < max) x = (intinf+intsup)/2; X(aux) = x; Y(aux) = abs(subs(f,x)); if ( subs(f,x) == 0 || intsup - intinf < erro ) fprintf('A raiz é: %dn', x); break end if sign(subs(f,x)) == sign (subs(f,intinf)) intinf = x; else intsup = x; end fprintf('[cota inferior]%d = %f, [cota superior]%d= %f, f(x%d)= %fn',aux,double(intinf),aux,double(intsup), aux, double(subs(f,x))') aux = aux + 1; end %% Fim do metodo da Bisseccao %% toc; plot(X,Y) %% Plotando a solucao %
  • 4. 4 Utilizando os dois códigos foi possível obter os seguintes gráficos de solução: A primeira observação que podemos fazer quanto às soluções é o comportamento dos gráficos, o método de Newton se comporta de forma linear em toda a solução já o método da Bissecção se comporta de forma linear até ponto (2.5,0.3) o que nos mostra que o método da bissecção se comporta de forma instável próximo a raiz o que acaba gerando uma perda de tempo na conversão do método.
  • 5. 5 Segue abaixo uma tabela com algumas informações sobre os métodos: Newton Bissecção Tempo(s) 12.29 7.09 Nº de Iterações 5 16 Erro 10^-16 0.00001 Observando o tabela podemos concluir que o método da bissecção embora tenha necessitado de mais iterações foi mais eficaz para achar a raiz do polinômio em questão, porém para que método convirja seu erro é muito mais elevado do que o do método de Newton. Além das informações que constam na tabela também foi possível observar ao testar os códigos que realmente o método de Newton se mostrou muito mais limitado do que o da Bissecção para achar as raízes do polinômio de Bessel, pois para que o método convirja é necessário escolher um x0 inicial que esteja de -7.4 até 7.4 o que acaba restringindo muito o método , já o método da Bissecção se mostrou muito mais eficiente pois convergiu para qualquer intervalo com distancia entre os pontos maior do que 2, assim podemos concluir que embora o erro utilizado no método da Bissecção seja menor que o utilizado no método de Newton, ele é bem satisfatório logo, o método da bissecção é mais indicado para a determinação das raízes do polinômio de Bessel.