4 de junho de 2010

Metodo de Newton Raphson


Hoje vou postar aqui o primeiro trabalho de calculo numerico que fiz sobre o metodo de newton raphson, como estava aprendendo a usar o matlab a estrutura ficou extenção e sem muita opção de escolha pro usuario quanto as funções porem acredito que posso ajudar a galera que esta começando o estudo de calculo numerico pra entender como se faz o algoritmo... so lembrando nao copie e cole apenas pra ganhar nota... assim vc estara enganando a vc mesmo...

 % metodo_newton_raphson 2.0

    disp('Para FUNÇÃO   x^2 + x - 6     digite: 1');
    disp('Para FUNÇÃO   x^5 - 2x        digite: 2');
    disp('Para FUNÇÃO   x^2 + 15        digite: 3');
    disp('Para SAIR digite: 0');
    disp(' ');
  
    % interação com o usuario:
    oper = input('Digite o numero correspondente a funcao: ');
    a0 = input('   Entre com o limite inferior da funcao: ');
    b0 = input('   Entre com o limite superior da funcao: ');
    a  = input('   Entre com o numero de iteracoes a serem feitas: ' );
    b = 0;
    c = 0;
  
    % media dos limites:
    x = (a0 + b0)/2 ;
 
 
    if  oper==1 %funçao x^2+x-6
             n=0;
             while n
             form1 = x^3 - 2*x^2 - 3*x + 10;
             form2 = 3*x^2 - 4*x -3 ;
             raiz = x - (form1/form2);
             x = raiz;
             n = n+1;
                if n==a
                % disp ('raiz aproximada da função'); raiz;
                str = ['O valor aproximado da raiz é ' num2str(raiz)];
                disp(' ');
                disp (str);
                disp(' ');
                disp(' ');
                disp(' ');
                end
             end
 
    else if oper == 2 %x^5 - 2x
             n=0;
             while n
             form12 = x^5 - 2*x;
             form22 = 5* x^4 - 2;
             raiz2 = x - (form12/form22);
             x = raiz2;
             n = n+1;
                if n==a
                str = ['O valor aproximado da raiz é ' num2str(raiz2)];
                disp(' ');
                disp (str);
                disp(' ');
                disp(' ');
                disp(' ');
                end
             end
     else if oper == 3 %x^2 + 15
           
             n=0;
             while n
             form13 = x^2 + 15;
             form23 = 2* x;
             raiz3 = x - (form13/form23);
             x = raiz3;
             n = n+1;
                if n==a
                str = ['O valor aproximado da raiz é ' num2str(raiz3)];
                disp(' ');
                disp (str);
                disp(' ');
                disp(' ');
                disp(' ');
                end
             end
          end
        end
    end

beijo pra vcs
otimo feriado galera
adoro muitoo

Nenhum comentário:

Postar um comentário