Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
x 10
1.5
1
0.5
0
-0.5
-1
-1.5
3
FASE II: calcular uma aproximao do zero pelos 3 mtodos estudados, obtendo todos os dados
solicitados na tabela do exerccio.
Primeiro: Mtodo da Bisseco
Podemos usar programas prontos. O melhor deles, que informa mais dados (de sada) o bissec3.
Para saber o que vamos obter e como se digita para o programa rodar, fazemos:
>> help bissec3
Na tela descobrimos que:
Digita-se [c,C,n,err]= bissec3(f,a,b,N,tol), onde:
c, zero da f,
C, vetor coluna das aproximaes do zero da f, obtidas
nas iteraes,
n, nmero de iteraes realizadas,
err, estimativa de erro sobre x.
Observamos que o erro em y, que dado por |f(c)| no fornecido pelo programa. Mas isto
podemos calcular separadamente, substituindo o valor encontrado para c na funo f(x) = x^5 1955.
>> a=4;b=5;N=30;tol=1e-6;format long
>> [c,C,n,err]= bissec3('x.^5-1955',a,b,N,tol)
c=
4.55228328704834
C=
4.50000000000000
4.75000000000000
4.62500000000000
4.56250000000000
4.53125000000000
4.54687500000000
4.55468750000000
4.55078125000000
4.55273437500000
4.55175781250000
4.55224609375000
4.55249023437500
4.55236816406250
4.55230712890625
4.55227661132813
4.55229187011719
4.55228424072266
4.55228042602539
4.55228233337402
4.55228328704834
n=
20
N DE ITERAES REALIZADAS
err =
9.536743164062500e-007 ERRO EM X
Agora o clculo do erro cometido em y:
>> x=c;err=abs(x.^5-1955)
err =
0.00162325483052
ERRO EM f(X)
Observamos que o erro em y grande, ou seja, a imagem de c pela f no deu um valor bem prximo
de 0. Qto mais prximo de 0 der o valor mais prximo da raiz estar o valor de x=c encontrado.
Agora s colocar estes dados na tabela.
Segundo: Mtodo de newton-Raphson
A exemplo do mtodo anterior ser usado aqui o programa nr3. Tb aconselhvel comear por:
>> help nr3
Assim possvel identificar os elementos de entrada e os de sada, bem como a forma de se digitar
para que o programa rode.
O programa solicita a derivada da funo. Para isto faamos:
>> syms x
>> f=x^5-1955
f=
x^5-1955
>> df=diff(f)
df =
5*x^4
>> f=vectorize(f),df=vectorize(df)
f=
x.^5-1955
df =
5.*x.^4
FUNO DERIVADA DA F, J VETORIZADA.
>> c=4.6;
%um valor inicializador dentro do intervalo [4; 5]
>> tol=1e-6;N=30; %mesmos valores que foram utilizados no mtodo da bisseco
>> [c,C,n,err]=nr3(f,df,c,N,tol)
c=
4.55228404300949
C=
4.60000000000000
4.55326374619873
4.55228446451447
4.55228404300949
3
OBSERVAMOS QUE O NMERO DE ITERAES FOI 3, MAS O NMERO DE APROXIMAES
FORNECIDAS 4, POIS O PROGRAMA COLOCA O VALOR INICIALIZADOR JUNTO COM AS DEMAIS
APROXIMAES.
err =
1.684838935034350e-010 ERRO EM f(X)
Agora o clculo do erro cometido em x, que |x4 x3|, j que o programa no fornece este valor:
>> err=abs(C(4)-C(3))
%Como o vetor C acima contm as informaes, basta buscar o 4 e o 3 elemento do vetor C para
fazer as contas. Aqui tem tb a vantagem de que internamente o MATLAB trabalha com preciso
dupla e reserva as demais casas decimais para este clculo, produzindo resultados mais confiveis.
err =
4.215049766997936e-007 ERRO EM X
Agora s colocar estes dados na tabela.
Terceiro: Mtodo da Secante
Analisando os programas que aplicam este mtodo, optamos pelo de nome secant, pois os demais
precisam ter a funo definida inline ou em m-file. Primeiro vamos ver o que o programa fornece e
como se digita na tela para que ele rode fazendo:
>> help secant
f(x)
2) N de iteraes realizadas: 4
% Os dois primeiros valores so os fornecidos pelo usurio e no valores obtidos nas iteraes.
3) Erro em X:
>> erx=abs(4.55228404301898-4.55228425878344)
%copiei e colei os valores, pois no d
para chamar como feito no mtodo de Newton-Raphson j que no fica definido um vetor de sada.
erx =
2.157644605205178e-007
4) Erro em Y (ou f(x4)):
>> x=4.55228404301898;ery=abs(x^5-1955)
ery =
2.053661773970816e-008
Agora s colocar estes dados na tabela.
Analisando e comparando os resultados, podemos concluir que, neste exemplo, o mtodo de
Newton-Raphson foi o que forneceu a melhor aproximao, pois o valor que tem imagem mais
prxima de 0. Alm disso foi o que realizou menos iteraes, mostrando que a convergncia deste
mtodo para a soluo mais rpida que nos outros dois.
(Lembremos que no valor exato do zero da funo a imagem 0. Esta a razo da afirmao
anterior.)
Para obter os mesmos resultados, sem utilizar programas prontos, ou seja, digitando tudo na tela do
MATLAB, basta seguir os passos descritos, por colegas, no item histrico da sala de bate papo na
pgina da disciplina do portal UCSvirtual.