MÉTODO DA SECANTE

3
1 MÉTODO DA SECANTE Alessandro Gois Souza e Carlos Emanuel. Fundação Universidade Federal de Rondônia, Núcleo de Ciência e Tecnologia, Departamento de Engenharia e Física - DENFI Curso de Bacharelado em Engenharia Elétrica - 4 o Período - Matrícula: 200711809 e 200711776 - Disciplina de Cálculo Numérico Resumo—Este relatório propõe-se a apresentar o método da secante para o uso de cálculo de raízes de equações algébri- cas e transcedentais, bem como um algoritmo que permite a implementação do mesmo no software Matlab 7.0. Far-se-a posteriormente uma comparação da eficiência deste método em relação aos métodos de Newton-Rapshon e da Bissecção, que foram apresentados em relatórios anteriores. Index Terms—Método da Secante, aproximação da derivada, método da Bissecção, método de Newton-Rapshon, convergen- cia... I. I NTRODUÇÃO O Método da secante tem relação direta com o método de Newton-Rapshon, que foi descrito no relatorio anterior. A divergência entre esses métodos é que no da secante faz-se uma aproximação da derivada contida no método de Newton, sendo esta substituida por uma taxa de variação não instantânea conveniente. Geometricamente, podemos deduzir esse método utilizando-se do artifício da semelhança de triângulo. Para tanto consideremos a seguinte figura: Figura 1. Analizando a figura acima, vemos que os triângulos 1 e 2 são semelhantes, deste modo, a razão entre seus lados são iguais. f (x(k)) - f (x(k - 1)) x(k) - x(k - 1) = f (x(k)) x(k) - x(k + 1) (1) Desenvolvendo essa equação, isolando-se o valor de x(k + 1) chegamos ao seguinte resultado, que é a equação básica do método proposto por este trabalho. x(k + 1) = x(k - 1).f (x(k)) - x(k).f (x(k - 1)) f (x(k)) - f (x(k - 1)) (2) O mesmo resultado pode ser obtido a partir do método de Newton-Rapshon, mediante a substituição do valor da derivada pela taxa de variação média entre os dois pontos. II. OBJETIVOS A. Objetivo Geral Desenvolver um algoritmo que implemente o método da secante no Matlab. B. Objetivos Específicos Utilização do método da Secante para encontrar os zeros da função abaixo e comparação com os resultados obtidos pelo método de Newton e da Bissecção. f (x)= x 3 - 3x +3 (3) III. MATERIAIS E MÉTODO Materiais Foi necessário fazer uso de um notebook, com a seguinte configuração: Processador Pentium Dual-core Memória: 2 GB RAM HD: 160 GB SATA E ainda: Software Matlab 7.0 Software TexnicCenter Métodos No matlab, criou-se o seguinte programa, com a finalidade de se calcular as raízes do polinômio desejado usando o Método da secante: a = -2; b = -0.8; tol = 10^-3; Max = 10; fun = (’x^3-3 * x+3’) X(1)=a; X(2)=b; f=inline(fun); Y(1)=f(X(1)); Y(2)=f(X(2)); for i=2:Max X(i+1)=(X(i-1) * Y(i)-X(i) * Y(i-1))/(Y(i)-Y(i-1)); Y(i+1)=f(X(i+1)); if Y(i+1)==0 disp(’Foi encontrada uma raiz exacta’);break; end if (abs(X(i+1)-X(i)) < tol) disp(’O metodo da secante ja convergiu’);break; end iter=i; end if iter >= Max disp(’A raiz nao foi encontrada com a tolerancia desejada’); end %Construcao da tabela com o resultado n=length(X); k=0:n-1; output=[k’ X’ Y’]; disp(’ passo xi yi’) disp(output) %Construcao do grafico fplot(fun,[a-0.5,b+0.5],’r’) hold on plot(X(1:n),Y(1:n),’ * ’) plot([a-0.5,b+0.5],[0 0],’k’) for i=2:n plot([X(i-1),X(i)],[f(X(i-1)) , f(X(i))]) end text(X(1:n),zeros(1,n),num2str(k’)) hold off

Transcript of MÉTODO DA SECANTE

Page 1: MÉTODO DA SECANTE

1

MÉTODO DA SECANTEAlessandro Gois Souza e Carlos Emanuel.

Fundação Universidade Federal de Rondônia, Núcleo de Ciência e Tecnologia, Departamento de Engenharia e Física - DENFICurso de Bacharelado em Engenharia Elétrica - 4o Período - Matrícula: 200711809 e 200711776 - Disciplina de Cálculo Numérico

Resumo—Este relatório propõe-se a apresentar o método dasecante para o uso de cálculo de raízes de equações algébri-cas e transcedentais, bem como um algoritmo que permitea implementação do mesmo no software Matlab 7.0. Far-se-aposteriormente uma comparação da eficiência deste método emrelação aos métodos de Newton-Rapshon e da Bissecção, queforam apresentados em relatórios anteriores.

Index Terms—Método da Secante, aproximação da derivada,método da Bissecção, método de Newton-Rapshon, convergen-cia...

I. INTRODUÇÃO

OMétodo da secante tem relação direta com o método deNewton-Rapshon, que foi descrito no relatorio anterior.

A divergência entre esses métodos é que no da secante faz-seuma aproximação da derivada contida no método de Newton,sendo esta substituida por uma taxa de variação não instantâneaconveniente. Geometricamente, podemos deduzir esse métodoutilizando-se do artifício da semelhança de triângulo. Para tantoconsideremos a seguinte figura:

Figura 1.

Analizando a figura acima, vemos que os triângulos 1 e 2 sãosemelhantes, deste modo, a razão entre seus lados são iguais.

f(x(k))− f(x(k − 1))

x(k)− x(k − 1)=

f(x(k))

x(k)− x(k + 1)(1)

Desenvolvendo essa equação, isolando-se o valor de x(k + 1)chegamos ao seguinte resultado, que é a equação básica dométodo proposto por este trabalho.

x(k + 1) =x(k − 1).f(x(k))− x(k).f(x(k − 1))

f(x(k))− f(x(k − 1))(2)

O mesmo resultado pode ser obtido a partir do método deNewton-Rapshon, mediante a substituição do valor da derivadapela taxa de variação média entre os dois pontos.

II. OBJETIVOS

A. Objetivo GeralDesenvolver um algoritmo que implemente o método da

secante no Matlab.

B. Objetivos EspecíficosUtilização do método da Secante para encontrar os zeros da

função abaixo e comparação com os resultados obtidos pelométodo de Newton e da Bissecção.

f(x) = x3 − 3x + 3 (3)

III. MATERIAIS E MÉTODO

Materiais

Foi necessário fazer uso de um notebook, com a seguinteconfiguração:

• Processador Pentium Dual-core• Memória: 2 GB RAM• HD: 160 GB SATA

E ainda:

• Software Matlab 7.0• Software TexnicCenter

MétodosNo matlab, criou-se o seguinte programa, com a finalidade dese calcular as raízes do polinômio desejado usando o Método dasecante:a = -2;b = -0.8;tol = 10^-3;Max = 10;fun = (’x^3-3*x+3’)X(1)=a; X(2)=b;f=inline(fun);Y(1)=f(X(1)); Y(2)=f(X(2));for i=2:Max

X(i+1)=(X(i-1)*Y(i)-X(i)*Y(i-1))/(Y(i)-Y(i-1));Y(i+1)=f(X(i+1));if Y(i+1)==0

disp(’Foi encontrada uma raiz exacta’);break;endif (abs(X(i+1)-X(i)) < tol)

disp(’O metodo da secante ja convergiu’);break;enditer=i;

endif iter >= Max

disp(’A raiz nao foi encontrada com a tolerancia desejada’);end%Construcao da tabela com o resultadon=length(X); k=0:n-1; output=[k’ X’ Y’];disp(’ passo xi yi’)disp(output)%Construcao do graficofplot(fun,[a-0.5,b+0.5],’r’)hold onplot(X(1:n),Y(1:n),’*’)plot([a-0.5,b+0.5],[0 0],’k’)for i=2:n

plot([X(i-1),X(i)],[f(X(i-1)) , f(X(i))])endtext(X(1:n),zeros(1,n),num2str(k’))hold off

Page 2: MÉTODO DA SECANTE

2

Para se calcular as raizes utilizando o método de Newton-Rapson, usou-se o seguite algoritmo no matlab:

%Método de Newton-Raphsonclearclcx0 = input (’x zero inicial: ’);format shortt=inline(’x^3 - 3*x + 3’)q=diff(’x^3 - 3*x + 3’)x=x0;c=0;C=0;ite=10;%Início da Convergênciafor i=1:itec=c+1;x;A(c)=t(x);B(c)=subs(q,x);Z(c)= x - A(c)/B(c);x=Z(c);enddisp(’Raíz da Função’)disp([x])%Construção da Tabela com resultadosdisp (’Iteração x f(x)’)disp([(1:c)’ Z(1:c)’ A(1:c)’])

Para se calcular as raiz desse polinômio utilizando o métododa Bissecção, o seguite algoritmo foi usado no matlab:

clearclc%%%Dados iniciais%%%a=-2;b=-3;A(1)=a;B(1)=b;f=inline(’x^3-3*x+3’)%%%condição de execução%%%if f(a)*f(b)>0Erro (’A função não muda de sinal’)breakend%%%execução%%%precisao=10^(-3);Interacoes= input (’numero de interações: ’);%%%looping%%%for i=1:Interacoes%comando%X(i)=((A(i)+B(i))/2);Y(i)=f(X(i));%condição dos intervalos%if(X(i)-A(i))<precisaodisp (’Houve convergência’)%Se houve convergência o sistema para%endif Y(i)==0disp(’Foi encontrada uma raiz exata’)breakelseif f(A(i))*Y(i)<0 %bissecção%A(i+1)=A(i);B(i+1)=X(i);elseA(i+1)=X(i);B(i+1)=B(i);end%informação%Inter=i;if Inter>=Interacoesdisp(’Não foi encontrado um valor com a precisão desejada’)endend

Nesse algoritmo foi utilizado o intervalo inicial de -3 a -2, poisnele se encontra a raiz desejada.

IV. RESULTADOSUtilizando o primeiro algoritmo, que é o do método da secante,

obtêm-se os seguitentes resultados:

fun =

x^3-3*x+3

O metodo da secante ja convergiupasso xi yi

0 -2.0000 1.00001.0000 -0.8000 4.88802.0000 -2.3086 -2.37873.0000 -1.8148 2.46744.0000 -2.0662 0.37735.0000 -2.1116 -0.08076.0000 -2.1036 0.00197.0000 -2.1038 0.0000

O algoritmo também nos revela o gráfico da equação polino-mial com as retas secantes que mostram a convergência da raiz.

Figura 2. Grafico da equação polinomial

Utilizando o segundo algoritmo, que é o do método de Newton-Rapshon, ao executá-lo pede-se o passo inicial que é -2, obtêm-seassim os seguitentes resultados:

x zero inicial: -2

t =

Inline function:t(x) = x^3 - 3*x + 3

q =

3*x^2-3

Raíz da Função-2.1038

Iteração x f(x)1.0000 -2.1111 1.00002.0000 -2.1038 -0.07543.0000 -2.1038 -0.00034.0000 -2.1038 -0.00005.0000 -2.1038 06.0000 -2.1038 07.0000 -2.1038 08.0000 -2.1038 09.0000 -2.1038 010.0000 -2.1038 0

Utilizando o terceiro algoritmo, que é o do método da Bis-secção, ao executa-lo pede-se o número de interações o qualoptaremos por 10. Obtêm-se assim os seguitentes resultados:f =

Inline function:f(x) = x^3-3*x+3

Page 3: MÉTODO DA SECANTE

3

numero de interações: 10

Interações a b xi yi1.0000 -2.0000 -3.0000 -2.5000 -5.12502.0000 -2.0000 -2.5000 -2.2500 -1.64063.0000 -2.0000 -2.2500 -2.1250 -0.22074.0000 -2.0000 -2.1250 -2.0625 0.41385.0000 -2.0625 -2.1250 -2.0938 0.10276.0000 -2.0938 -2.1250 -2.1094 -0.05757.0000 -2.0938 -2.1094 -2.1016 0.02308.0000 -2.1016 -2.1094 -2.1055 -0.01719.0000 -2.1016 -2.1055 -2.1035 0.0030

10.0000 -2.1035 -2.1055 -2.1045 -0.0071

Para uma melhor análise usaremos agora 30 interações noprograma. E assim é dado o seguinte resultado:f =

Inline function:f(x) = x^3-3*x+3

numero de interações: 30

Interações a b xi yi1.0000 -2.0000 -3.0000 -2.5000 -5.12502.0000 -2.0000 -2.5000 -2.2500 -1.64063.0000 -2.0000 -2.2500 -2.1250 -0.22074.0000 -2.0000 -2.1250 -2.0625 0.41385.0000 -2.0625 -2.1250 -2.0938 0.10276.0000 -2.0938 -2.1250 -2.1094 -0.05757.0000 -2.0938 -2.1094 -2.1016 0.02308.0000 -2.1016 -2.1094 -2.1055 -0.01719.0000 -2.1016 -2.1055 -2.1035 0.0030

10.0000 -2.1035 -2.1055 -2.1045 -0.007111.0000 -2.1035 -2.1045 -2.1040 -0.002112.0000 -2.1035 -2.1040 -2.1038 0.000413.0000 -2.1038 -2.1040 -2.1039 -0.000814.0000 -2.1038 -2.1039 -2.1038 -0.000215.0000 -2.1038 -2.1038 -2.1038 0.000116.0000 -2.1038 -2.1038 -2.1038 -0.000017.0000 -2.1038 -2.1038 -2.1038 0.000118.0000 -2.1038 -2.1038 -2.1038 0.000019.0000 -2.1038 -2.1038 -2.1038 -0.000020.0000 -2.1038 -2.1038 -2.1038 0.000021.0000 -2.1038 -2.1038 -2.1038 0.000022.0000 -2.1038 -2.1038 -2.1038 0.000023.0000 -2.1038 -2.1038 -2.1038 -0.000024.0000 -2.1038 -2.1038 -2.1038 -0.000025.0000 -2.1038 -2.1038 -2.1038 -0.000026.0000 -2.1038 -2.1038 -2.1038 -0.000027.0000 -2.1038 -2.1038 -2.1038 -0.000028.0000 -2.1038 -2.1038 -2.1038 0.000029.0000 -2.1038 -2.1038 -2.1038 0.000030.0000 -2.1038 -2.1038 -2.1038 -0.0000

V. DISCUSSÃO E CONCLUSÕES

Da análise das tabelas apresentadas acima, conclui-se facil-mente que o método da secante converge mais rapidamente queo método da bissecção. No entanto, vê-se que ele converge maisvagarosamente que o método de Newton-Rapshon, porém umagrande vantagem desse método é que ele não necessita do valorda derivada da função em cada interação.

REFERÊNCIAS

[1] Cálculo Numérico - Aspectos Teóricos e Computacionais. MárciaA.Gomes Ruggiero e Vera Lúcia da Rocha Lopes - 2a. edição, Person-Makron Books, 1997.

[2] Cálculo Numérico - Com aplicações. Leônidas C. Barroso e MagaliMaria - 2a. edição, Harbra, 1987.