sábado, 3 de junio de 2017

Libro Metodos Numericos con Buenos PseudoCodigos El Método de Birge – Vieta, cap 2

Libro Metodos Numericos con Buenos PseudoCodigos
https://cloud.mail.ru/public/Aev8/yRyM2PpxW

Capitulo 1: https://cloud.mail.ru/public/AgSo/FfipTUcF3
Capitulo 2: https://cloud.mail.ru/public/DbVe/vrMBbU4BR


El Método de Birge – Vieta.
Este método es una combinación del método de Newton – Raphson y la división sintética.
a fórmula recursiva sería

Capitulo 3 pagina 29: https://cloud.mail.ru/public/56Sd/v2MimKhcs

Este algoritmo lo implemente en octave-online.net

birgevieta.m  descargar: https://cloud.mail.ru/public/9Yq5/dzaG5FQ7R

%birgevieta.m
%Descripcion: Programa para encontrar las raices reales de polinomios
%
%Autor: Alexander Arias
%Fecha: 13 de mayo de 2017
%
%Entradas:
%         grado - grado del polinomio
%         e     - epsilon para la tolerancia
%         a(i)  - coeficientes del polinomio
%Salidas:
%         x     - Raiz

%Ejemplo de Ejecución:
% birgevieta
% Programa polinomios raices reales
% Ingrese grado del polinomio= 3
% Ingrese epsilon de parada= 0.001
% Ingrese coeficiente a(1)= 1
% Ingrese coeficiente a(2)= 3
% Ingrese coeficiente a(3)= 0
% Ingrese coeficiente a(4)= -1
% 1 0.53209
% 2 -0.65317
% 3 -2.8792
% oki doki

%Referencias:
%https://www.slideshare.net/JuanTimoteoCori/metodos-numericos-capitulo-3
%http://www.mty.itesm.mx/dtie/deptos/cb/cb00854-1/apuntes/hma/mnfnlyamc.pdf
%http://www.mty.itesm.mx/dtie/deptos/cb/cb00854-1/
%https://mat.iitm.ac.in/home/sryedida/public_html/caimna/transcendental/polynomial%20methods/bv%20method.html


clear all;
disp('Programa polinomios raices reales');
grado=input('Ingrese grado del polinomio= ');
m=grado+1;
e=input('Ingrese epsilon de parada= ');

for i=1:m
    a(i)=input(['Ingrese coeficiente ', 'a(' , num2str(i), ')= ' ]);
end

for raices=1:grado
    x=1;
    delta=100;
    while(delta > e)
        b(1)=a(1);
        for i=2:m
            b(i)=a(i)+x*b(i-1);
        end
        c(1)=b(1);
        for i=2:m-1
            c(i)=b(i)+x*c(i-1);
        end
        xraiz = x - b(m)/c(m-1);
        delta=abs(xraiz-x);
        x=xraiz;
    end
   
    disp([num2str(raices), ' ', num2str(x)]);
   
    for i=2:m-1
        a(i)=b(i);
    end
    m=m-1;
end

disp('oki doki');



No hay comentarios:

Publicar un comentario