Exercicios programação numérica
Por: sheilamscivil • 12/8/2015 • Trabalho acadêmico • 6.456 Palavras (26 Páginas) • 342 Visualizações
[pic 1]
Unisul – Universidade do Sul de Santa Catarina – Unidade de Tubarão
Curso: Engenharia Civil Disciplina: Programação Numérica
Trabalho para a segunda avaliação
Dupla: Sérgio Luiz da Silva Cabral Jr.
Sheila Mendes da Silva
1)
Bissecção
%program bisseccao_trabalho_2
#Última gravação: 08/05/2013;quarta-feira;23:32
#Software: GNU Octave 3.1.50;mEd 3.4.3
#Autor:
#Objetivo:
clear all;
#Subrotinas
#Programa principal
%begin
clc;
printf("\n\nMetodo da bissecçao para a funçao f(x)=2*sen(x)-x.\n\n");
printf("Qual a precisao de parada");
pe=input("?");
clc;
printf("Valor inicial do intervalo");
a=input("?");
clc;
printf("Valor final do intervalo");
b=input("?");
a1=a;
b1=b;
do
fa=2*sin(a)-(a);
fb=2*sin(b)-(b);
xi=(a+b)/2;
fxi=2*sin(xi)-(xi);
pre=((fxi)^2)^0.5;
if ((fxi*fa)<0)
b=xi;
else
a=xi;
endif;
until (pre
clc;
printf("\n\n A raiz de f(x)=2*sen(x)-x e xi=%g no intervalo (%g,%g).",xi,a1,b1);
%end
Falsa posição
%program falsa_posicao_trabalho_2
#Última gravação: 08/05/2013;quarta-feira;23:37
#Software: GNU Octave 3.1.50;mEd 3.4.3
#Autor:
#Objetivo:
clear all;
#Subrotinas
#Programa principal
%begin
clc;
printf("\n\nMetodo da falsa-posicao para a funçao f(x)=2*sen(x)-(x).\n\n");
printf("Qual a precisao de parada");
pe=input("?");
clc;
printf("Valor inicial do intervalo");
a=input("?");
printf("Valor final do intervalo");
b=input("?");
a1=a;
b1=b;
do
fa=2*sin(a)-(a);
fb=2*sin(b)-(b);
xi=(a*fb-b*fa)/(fb-fa);
fxi=2*sin(xi)-(xi);
pre=((fxi)^2)^0.5;
if ((fxi*fa)<0)
b=xi;
else
a=xi
endif;
until (pre
clc;
printf("\n\n A raiz de f(x)=2*sen(x)-(x) e xi=%g no intervalo (%g,%g).",xi,a1,b1);
%end
[pic 2]
Newton-Raphton
%program newton_raphson_trabalho_2
#Última gravação: 09/05/2013;quinta-feira;00:01
#Software: GNU Octave 3.1.50;mEd 3.4.3
#Autor:
#Objetivo:
clear all;
#Subrotinas
%program newton_funca_transcendente
#12/04/2010;segunda-feira;15:49
#Autor: Adalberto Gassenferth Jr.
#Objetivo: calcula a raiz da f(x)=sen(x)-ln(x)
# pelo metodo de Newton-Raphson
clear;
#Programa principal
%begin
clc;
printf("\n\nMetodo de Newton-Raphson para a funçao f(x)=2*sen(x)-(x).\n\n");
printf("Qual a precisao de parada");
pe=input("?");
clc;
printf("Valor inicial do intervalo");
a=input("?");
clc;
printf("Valor final do intervalo");
b=input("?");
a1=a;
b1=b;
xk=a;
d=pe;
do
fxk=2*sin(xk)-(xk); #f(Xk)
fxk0=2*sin(xk+d)-(xk+d); #f(Xk+d)
flxk=(fxk0-fxk)/d; #f'(Xk)
xk=xk-fxk/flxk # Xk+1=Xk-f(Xk)/f'(Xk)
fxk1=2*sin(xk)-(xk) # calcula f(Xk+1)
pre=((fxk1)^2)^0.5; # calcula a precisao
until (pre
#clc;
printf("\n\n A raiz de f(x)=2*sen(x)-(x) e xi=%g no intervalo (%g,%g).",xk,a1,b1);
%end
[pic 3]
Secante
%program secante_trabalho_2
#Última gravação: 09/05/2013;quinta-feira;08:47
#Software: GNU Octave 3.1.50;mEd 3.4.3
#Autor:
#Objetivo:
clear all;
#Subrotinas
#Programa principal
%begin
clc;
printf("\n\nMetodo da secante para a funçao f(x)=2*sen(x)-(x).\n\n");
printf("Qual a precisao de parada");
pe=input("?");
clc;
printf("Valor inicial do intervalo");
a=input("?");
clc;
printf("Valor final do intervalo");
b=input("?");
a1=a;
b1=b;
xk0=a; #Xk0=Xk-1
xk1=b; #Xk1=Xk
xk2=(xk0+xk1)/2; #Xk2=Xk+1
d=pe; # para o calculo da derivada e neces-
# sario o uso do d=delta.
do
xk0=xk1;
xk1=xk2;
fxk0=2*sin(xk0)-(xk0); #fxk0=f(Xk-1)
fxk1=2*sin(xk1)-(xk1); #fxk1=f(Xk)
xk2=(xk0*fxk1-xk1*fxk0)/(fxk1-fxk0); # xk2=Xk+1
fxk2=2*sin(xk2)-(xk2); # calcula f(Xk+1)
pre=((fxk2)^2)^0.5; # calcula a precisao
until (pre
#clc;
printf("\n\n A raiz de f(x)=2*sen(x)-(x) e xi=%g no intervalo (%g,%g).",xk2,a1,b1);
%end
[pic 4]
Justificativa:
O método que não obtém sucesso para o cálculo desta raiz é o da bissecção, pois neste método o programa trabalha com o intervalo [a, b] para fazer o cálculo da média. Por este motivo, em uma função em que a raiz se encontra fora deste intervalo, não será possível calcular a mesma tanto que este método usa sempre o mesmo algoritmo para qualquer função. No entanto o método de Falsa Posição, por utilizar a média ponderada com pesos f(a) e f(b), o programa não se restringe somente ao intervalo [a, b] como no método da Bissecção, por este motivo conseguimos realizar o cálculo das raízes não somente no intervalo [a, b], mas também as que estão fora por possui ponderação em “f”. Já no método de Newton-Raphson e da Secante utiliza-se o comportamento da curva que é a diferença finita ou derivada para se aproximar da raiz.
...