Академический Документы
Профессиональный Документы
Культура Документы
El mtodo de Horner se usa para el clculo de races de polinomios con el mtodo de Newton
Raphson. Mediante la divisin sinttica se calcula P(x)=Q(x) y se evala en un valor dado P(x)
y Q(x). Es un algoritmo poderoso para evaluar de forma muy eficiente a los polinomios de una
forma monomial.
Sea
P(x) = anxn + an-1xn-1 + ... +a1x + a0
Si bn = an y
bk = ak + bk+1x0 para k = n 1, n 2, ..., 1, 0
Por tanto b0 = P(x0). Ms an, si
Q(x) = bnxn1 + bn-1xn-2 + ... +b2x + b1
Entonces
P(x) = (x x0) Q(x) + b0
Para la derivada
Dado que:
P(x) = (x x0) Q(x) + b0
donde
Q(x) = bnxn1 + bn-1xn-2 + ... +b2x + b1
Derivando
P(x) = Q(x)+(x x0)Q(x)
En x = x0,
P(x0) = Q(x0)
Ejemplo:
Xi
Xr1
Xr2
Paso 1:
Para () = 4 2 3 12 2 + 16 10
1 -2 -12 16 -10
4 4 8 -16 0
1 2 -4 0 -10
a4 a3 a2 a1 a0
Para () = 4 3 6 2 24 + 16
4 -6 -24 16
4 16 40 64
4 10 16 80
a3 a2 a1 a0
Paso 2:
Mtodo de Newton-Raphson
()
() =
()
V.V=4.11484
n= 5 c.s
Es=5x10-4
() = 4 3 6 2 24 + 16
Formulas en Excel.
Cdigo c++:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int i,n;
float A0,A1,A2,A3,A4,A5,AM,B5,B4,B3,B2,B1,C5,C4,C3,C2;
float x0,x1,x2,y1,R,S,aux0,auxn,Er;
printf("**********************************************\n");
printf("**********************************************\n\n");
printf("Pn(x)=a5x^5+a4x^4+a3x^3+a2x^2+a1x^1+a0 \n\n");
printf(" a5=");scanf("%f",&A5);
printf(" a4=");scanf("%f",&A4);
printf(" a3=");scanf("%f",&A3);
printf(" a2=");scanf("%f",&A2);
printf(" a1=");scanf("%f",&A1);
printf(" a0=");scanf("%f",&A0);
AM=fabs(A0);
if(A1 != 0){
AM=fabs(A1);
if(A2 != 0){
AM=fabs(A2);
}
}
if(A3 != 0){
AM=fabs(A3);
if(A4 != 0){
AM=fabs(A4);
if(A5 != 0){
AM=fabs(A5);
aux0=A0;
if(A0==0){
auxn=A1;
if(A1==0){
auxn=A2;
auxn=A5;
if(A5==0){
auxn=A4;
if(A4==0){
auxn=A3;
x1=(float)fabs(aux0)/(fabs(aux0)+AM);
x2=(float)(fabs(auxn)+AM)/fabs(auxn);
scanf("%f",&x0);
scanf("%d",&n);
for(i=1;i<=n;i++){
B5=x0*A5;
B4=(B5+A4)*x0;
B3=(B4+A3)*x0;
B2=(B3+A2)*x0;
B1=(B2+A1)*x0;
R=(B1+A0);
C5=x0*A5;
C4=(B5+A4+C5)*x0;
C3=(B4+A3+C4)*x0;
C2=(B3+A2+C3)*x0;
S=(B2+A1+C2);
y1=x0-R/S;
Er=fabs(y1-x0);
x0=y1;
printf("\n\n");
system("pause");
https://www.easycalculation.com/es/algebra/quartic-equation.php
https://www.youtube.com/watch?v=DzUH6-VyjUY
Programa:
http://lineaalinea.blogspot.mx/2008/01/mtodo-de-horner-en-lenguaje-c.html