Sei sulla pagina 1di 9

Introduo

O Mtodo de Newton consiste em um mtodo baseado em tangente, isto , utiliza-se a derivada da funo inicial, para que assim encontre-se a raiz da funo inicial atravs de repetidas tentativas de aproximao da funo e sua tangente. Geometricamente, esse mtodo equivale a aproximar um arco da curva por uma reta tangente traada a partir de um ponto da curva, o que faz que seja conhecido tambm como mtodo das tangentes.

Desafio 1
Objetivo:
Deve-se projetar um algoritmo, alm de codific-lo em Scilab, que encontre a raiz da equao pelo mtodo Newtoniano, sendo que o valor inicial de x ("chute inicial") dever ser lido durante a execuo do programa.

Algoritmo:
Algoritmo Declare chute, E, numrico Declare funcao(x), funcaoderivada(x) numrico funcao y = funcao(x) yx^3 + x^2 - 10 Fim funo; funcao y = funcaoderivada(x) y3x^2 + 2x Fim funo; Leia chute x = chute E = 0,1^5 repita se funcao(x) E entao interrompa fim se x = x - funcao(x)funcaoderivada(x) fim repita Escreva x Fim Algoritmo

Scilab:

//Algoritmo //{Definio da funcao} function y = funcao(x) y= x^3 + x^2 - 10; endfunction

//{Definio da funcao derivada} function y = funcaoderivada(x) y= 3*x^2 + 2*x; endfunction

//{Leitura do valor inicial} chute = input("Digite o valor de chute:") x = chute E = 0.1^5

//{calculo de tangente xn} while%t if funcao(x) <= E then break end x = x - funcao(x)/funcaoderivada(x) end

//{Impresso dos resultados} write(%io(2), "Valor da raiz da funo") write(%io(2), x)

//Fim Algoritmo

Resultado/teste:
->exec('D:\funcao.sci', -1) Digite o valor de chute:5 Valor da raiz da funo 1.8674600246D+00

Comentrio - dificuldades e solues:


A primeira vista o trabalho parecia trabalhoso e difcil. Porm ao realizlo, rapidamente notou-se que seria difcil, mas, menos do que previamente esperado. Uma segunda observao tambm se faz necessria, j que no livro "Algoritmos Numricos" de Frederico Ferreira Campos, filho possua vrios mtodos para encontrar razes da equao, inclusive de Newton. claro que o algoritmo utilizado teve apenas uma base no livro, e este foi reduzido a fim de reduzir o tamanho do programa, pois se julgou desnecessrio uma utilizao de "Condio de Erro" e "Iteraes Mxima".

Desafio 2
Objetivo:
Gerar um grfico de f(x) e, tambm, encontrar as raizes da equao por funes do Scilab.

Ao final da atividade, deve-se comparar o resultado encontrado pelo mtodo de Newton com o resultado fornecido pelas funes do programa.

Grfico em Scilab:
x=linspace(-10,10) y=x^3+x^2-10 plot(x,y)

Encontrando as razes em Scilab:


Funcao=0 x=poly(0,"x") Funcao=x^3+x^2-10 Raizes=roots(Funcao,'e') print(%io(2),Raizes,Funcao)

Resultado:
Funcao =

2 3 - 10 + x + x // est linha equivalente a - 10 + x2 + x3

Raizes =

- 1.43373 + 1.8163935i - 1.43373 - 1.8163935i 1.86746

Comparao:
Os resultados obtidos pelo mtodo de Newton e pelas funes do scilab so bem parecidos. Porem nota-se que por causa da utilizao do erro, o resultado foi diferente, mas vale lembrar que essa diferena to pequena que pode ser ignorada. Em relao ao procedimento, percebe-se que as funes do programa so programadas para auxiliar os usurios, pois deste modo acarreta um menor trabalho, apesar de pelo mtodo newtoniano tambm ser simples.

Comentrio - dificuldades e solues:


Na segunda etapa do trabalho, os comandos linspace, plot, poly e root eram desconhecidos por ambos integrantes da dupla. Alm disso, o auxilio do site do Scilab para tais comandos no eram claros, e assim teve-se uma complicao de como utiliz-los. Adotaram-se, ento, para solucionar os problemas encontrados durante a elaborao do programa (a dificuldade em aplicar os novos comandos), ns fizemos uma pesquisa no prprio site do Scilab. L, se encontrou uma seo de ajuda, com uma lista de todos os comandos, sua apresentao, aplicao e exemplificao. Assim, pode-se aprender como us-los e conseguiu-se elaborar o programa de forma correta.

Concluso:
A elaborao deste trabalho foi uma grande oportunidade de aprendizado. Por meio dele refinaram-se nossas habilidades na ferramenta de programao Scilab, aprenderam-se novos comandos e desenvolveram-se habilidades de programao, no geral.

Alm disso, solucionar o problema proposto proporciona um maior entendimento da matria de Clculo, que faz parte de nossa grade curricular. Ao utilizar a programao de computadores para resolver um problema de Clculo, otimizou-se tal processo, que seria muito trabalhoso se realizado sem o auxlio desta mquina.

Pode-se , por fim, perceber a grande importncia da programao de computadores e como ela pode facilitar a soluo de problemas de maneira eficiente e livre de falha humana (caso o programa esteja elaborado de maneira correta).

Referncias:
* http://help.scilab.org/docs/5.4.0/en_US/index.html; * Livro " Algoritmos Numricos" de Frederico Ferreira Campos, filho; * Slides da Aula de Programao do Professor Helton F. Matos;

Potrebbero piacerti anche