INTRODUCCION INTRODUCCION A LOS MÉTODOS NUMERICOS
Existen muchos problemas matemáticos que no pueden ser resueltos utilizando las matemáticas abstractas, por lo que es necesario aplicar métodos que nos den soluciones aproximadas a la solución real del problema, debido a ello cometeremos un error.
Y ese error será de dos maneras: el error calculado y error computacional, entonces en los cálculos que haremos aquí.. Definición de error: El error lo podemos definir como valor exacto menos valor calculado.
Error por truncamiento: vamos a decir suma los siguientes números:
NOTAS: Siempre antes de calcular, poner la calculadora en F1X-4 Error por redondeo:
Error absoluto:
Error humano: Raíces de ecuaciones algebraicas: Ecuación: una ecuación es la combinación de constantes y variables enlazadas por operadores aritméticos la cual debe ser igualada a cero.
Ejemplo: Variable
Constantes
Operador Aritmético
Solución o raíz de la ecuación
N 1 2 3 4 5 6 7 8 9 10 11 12 13
X -3 -2.5 -2 -1.5 -0.5 -1 0 0.5 1 1.5 2 2.5 3
F (X) 19 10.75 4 -1.25 -5 -7.25 -8 -7.25 -5 -1.25 4 10.75 19
METODO DE LA BISECCION
Consiste en seleccionar 2 valores representados por xa y xb de tal forma que para un valor de la función sea negativa o viceversa y calcular el promedio de xa y xb el cual dará un valor a f(x) mas aproximado a la raíz.
Ejemplo: Encontrar una raíz o solución de la siguiente ecuación 3x 2 - 8 = 0 aplicando el método de la bisección. N 1 2 3 4 5 6 7
Xa 2.0000 2.0000 1.7500 1.7500 1.6875 1.6563 1.6407
f(Xa) 4.0000 4.0000 1.1875 1.1875 0.5430 0.2300 0.0757
Xb 1.0000 1.5000 1.5000 1.6250 1.6250 1.6250 1.6250
f(Xb) -5.0000 -1.2500 -1.2500 -0.0781 -0.0781 -0.0781 -0.0781
Xmedia 1.5000 1.7500 1.6250 1.6875 1.6563 1.6407 1.6329
f(Xmedia) -1.2500 1.1875 -0.0781 0.5430 0.2300 0.0757 -0.0009
Calcular un raíz de la ecuación x =3x 3 -2 / 8 aplicando el método de la bisección N 1 2 3 4 5 6 7 8 9 10 11 12 13
Xa 2.0000 2.0000 1.7500 1.7500 1.7500 1.7500 1.7500 1.7500 1.7461 1.7461 1.7461 1.7461 1.7461
f(Xa) 6.0000 6.0000 0.0781 0.0781 0.0781 0.0781 0.0781 0.0781 0.0021 0.0021 0.0021 0.0021 0.0021
Xb 1.0000 1.5000 1.5000 1.6250 1.6875 1.7188 1.7344 1.7422 1.7422 1.7442 1.7452 1.7457 1.7459
f(Xb) -7.0000 -3.8750 -3.8750 -2.1270 -1.0837 -0.5170 -0.2232 -0.0735 -0.0735 -0.0348 -0.0154 -0.0057 -0.0018
-2x
Encontrar la raíz o solución del la ecuación 2x - 3 e método de la bisección. N 1 2 3 4 5 6 7 8 9
Xa 1.0000 1.0000 0.5000 0.5000 0.375 0.3125 0.3125 0.3125 0.3125
F(xa) 2.5940 2.5940 0.8964 0.8964 0.3329 0.0192 0.0192 0.0192 0.0192
Xb -1.0000 0.0000 0.0000 0.2500 0.2500 0.2500 0.2813 0.2969 0.3047
Xmedia 1.5000 1.7500 1.6250 1.6875 1.7188 1.7344 1.7422 1.7461 1.7442 1.7452 1.7457 1.7459 1.7460
f(Xmedia) -3.8750 0.0781 -2.1270 -1.0837 -0.5170 -0.2232 -0.0735 0.0021 -0.0348 -0.0154 -0.0057 -0.0018 0.0001
+1= 0 aplicando el
F(xb) -33.1672 -2.0000 -2.0000 -0.3196 -0.3196 -3.3196 -0.1466 -0.0629 -0.0216
xmedia 0.0000 0.5000 0.2500 0.375 0.3125 0.2813 0.2969 0.3047 0.3087
F(medía) -2.0000 0.8964 -0.3196 0.3329 0.0192 -0.1466 -0.0629 -0.0216 -0.0006
Calcular una raíz de la siguiente ecuación aplicando el método de la bisección.
2x – 3sen5x- 1 N 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Xa 1.0000 1.0000 1.0000 0.7500 0.6250 0.6250 0.6250 0.6250 0.6172 0.6133 0.6133 0.6133 0.6133 0.6133
f(Xa) 3.8760 3.8760 3.8760 2.2147 0.2002 0.2002 0.2002 0.2002 0.0677 0.0015 0.0015 0.0015 0.0015 0.0015
Xb -1.0000 0.0000 0.5000 0.5000 0.5000 0.5625 0.5938 0.6094 0.6094 0.6094 0.6114 0.6124 0.6129 0.6131
f(Xb) -5.8768 -1.0000 -1.7954 -1.7954 -1.7954 -0.8446 -0.3276 -0.0646 -0.0646 -0.0646 -0.0307 -0.0137 -0.0052 -0.0019
Xmedia 0.0000 5.0000 0.7500 0.6250 0.5625 0.5938 0.6094 0.9172 0.6133 0.6114 0.6124 0.6129 0.6131 0.6132
f(Xmedia) -1.0000 -1.7954 2.2147 0.0202 -0.8446 -0.3276 -0.0646 0.0677 0.0015 -0.0307 -0.0137 -0.0052 -0.0014 -0.0002
METODO DE LA SECANTE (Regla Falsa)
Por razones o proporciones
Ejemplo calcular la ecuación
=1.7100 N 1 2 3 4 5
=x Xi 2.0000 1.0000 1.5714 1.7935 1.7031
5=x 3
aplicando el método de la secante
x3-5=0 f(x)=x3-5
f (Xi) 3.0000 -4.0000 -1.1197 0.769 -0.0601
Xf 1.0000 1.5714 1.7935 1.7031 1.7097
f (Xf) -4.0000 -1.1197 0.769 -0.0601 -0.0024
Xc 1.5714 1.7935 1.7031 1.7097 1.71
f (Xc) -1.1197 0.769 -0.0601 -0.0024 0.0002
Calcular una raíz o solución de la siguiente ecuación aplicando el método de la secante.
N 1 2 3 4 5 6 7
Xi 1.0000 2.0000 8.0000 2.2727 2.4781 3.0222 2.8783
F(Xi) -7.0000 -6.0000 126.0000 -4.6861 -3.4019 1.2235 -0.1726
Xf 2.0000 8.0000 2.2727 2.4781 3.0222 2.8783 2.8961
F(Xf) -6.0000 126.0000 -4.6861 -3.4019 1.2235 -0.1726 -0.0066
Xc 8.0000 2.2727 2.4781 3.0222 2.8783 2.8961
2.8968
F(Xc) 126.0000 -4.6861 -3.4019 1.2235 -0.1726 -0.0066 0.0000
Calcular la siguiente ecuación
por medio del método de la
secante.
N 1 2 3 4 5 6 7
Xi 1.0000 1.0000 0.7986 0.6563 0.2143 0.3287 0.3100
F(Xi) 2.5940 23.1672 1.9898 1.5052 -0.5257 0.1028 0.0062
Xf 1.0000 0.7986 0.6563 0.2143 0.3287 0.3100 0.3080
F(Xf) 23.1672 1.9898 1.5052 -0.5257 0.1028 0.0062 -0.0043
Xc 0.7986 0.6563 0.2143 0.3287 0.3100 3.3080
0.3088
F(Xc) 1.9898 1.5052 0.5257 0.1028 0.0062 0.0043 0.0001
Resolver la siguiente ecuación 2x-3sen5x-1=0 aplicando el método de la secante
f(x) = 2x-3sen5x-1 f(Xi)= f(1.0000)= 2(1.0000) – 3Sen 5(1.0000)- 1 = 3.8768 f(Xf)= f(2.0000) = 2(2.0000) – 3 Sen 5 (2.0000) – 1 = 4.6321 Xc = 1.0000 – (1.0000-2.0000) / (3.8768 – 4.6321) = -4. 1328 f(Xc) = f(-4.1328) = 2(-4.1328) – 3 Sen 5(-4.1328) – 1 = -6.3543 f(Xi)= f(2.0000)= 2(2.0000) – 3Sen 5(2.0000)- 1 = 4.6321 f(Xf)= f(-4.1328) = 2(-4.1328) – 3 Sen 5 (-4.1328) – 1 = -6.3543 Xc = 2.0000 – (2.0000- (-4.1328)) / (4.6321 – (-6.3543)) = -0.5857 f(Xc) = f(-0.5857) = 2(-0.5857) – 3 Sen 5(-0.5857) – 1 = -1.5371
N
Xi
f(Xi)
Xf
f(Xf)
Xc
f(Xc)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
1.0000 2.0000 -4.1328 -0.5857 0.5461 3.4559 0.8675 -0.8277 0.1804 1.5637 2.1312 1.6346 1.6778 1.7053
3.8768 4.6321 -6.3543 -1.5371 -1.1066 8.9118 3.5268 -5.1745 -2.9931 -0.8708 6.0910 -0.5791 -0.2256 0.0635
2.0000 -4.1328 -0.5857 0.5461 3.4559 0.8675 -0.8277 0.1804 1.5637 2.1312 1.6346 1.6778 1.7053 1.6992
4.6321 -6.3543 -1.5371 -1.1066 8.9118 3.5268 -5.1745 -2.9931 -0.8708 6.0910 -0.5791 -0.2256 0.0635 -0.0040
-4.1328 -0.5857 0.5461 3.4559 0.8675 -0.8277 0.1804 1.5637 2.1312 1.6346 1.6778 1.7053 1.6992 1.6996
-6.3543 -1.5371 -1.1066 8.9118 3.5268 -5.1745 -2.9931 -0.8708 6.0910 -0.5791 -0.2256 0.0635 -0.0040 -0.0001
Método de Newton-Raphson
Se tiene una curva de una ecuación cualesquiera y traza una tangente a esa curva. Tangente: es aquella línea que toca un punto de la curva.
Tangente= cateto opuesto Cateto adyacente tgФ = f(xn) xn-xn+1 f `(xn) = f(xn) xn-xn+1 xn-xn+1= f(xn) f `(xn)
xn+1= xn - f(xn)
Formula final
f´(xn)
Calcular una raíz o solución de 3x 2-8=0 aplicando el método de newton-raphson
f (x) = 3x2 - 8 f `(x) = 6x
N
Xn
F(Xn)
F1(Xn)
Xn+1
F(Xn+1)
1
1.0000
-5.0000
6.0000
1.8333
2.0830
2
1.8333
2.0830
10.9993
1.6439
0.1072
3
1.6439
0.1072
9.8434
1.6330
0.0001
1) 3(1)2-8 = -5
xn + 1= 1- ((-5)/6)= 1.8333 f (1.8333) = 3(1.8333) 2-8= 2.0830 2) f´ (xn)= f´ (1.8333) =6 (1.8333) = 10.9998 xn+1= 1.8333- ((2.0830)/10.9998)= 1.6439 3) f´(xn)= f´(1.6439) =6 (1.6439) = 9.8634 xn + 1= 1.6439 - ((0.1072)/9.8634)= 1.6330
Calcular una raíz o solución de newton-raphson
2X-3*SIN (5x)-1= 0 aplicando el
método de
f (x) = 2x-3*sin (5x) -1
f´(X) = 2-15*COS (5X)
1) 1.5- (-0.8140 / -3.1995) = 1.2456 2) 1.2456 – (1.6567 / -12.9772) = 1.3733 3) 1.3733 –(0.0942 / -10.5196) = 1.3823 4) 1.3823 –(0.0013 / -10.1353) = 1.3824 N
xn
f(xn)
f´(xn)
xn+1
f(xn + 1)
1
1.0000
-12.9429
6.5367
2.9800
-12.4956
2
2.9800
-12.4956
-66.5125
2.7921
-12.5569
3
2.7921
-12.6669
18.0940
3.4861
-12.3112
Resolver la siguiente Ecuación 2x-3e-2x + 1 por el método de new – rapshon
2x-3e-2x + 1=0 f(x)=2x-3e-2x + 1 f `(x)=2+ 6e-2x
Xn+1=Xn – f(xn)/ f `(xn)
F(1)=((2(1)) – (3(e(-2x1))))) +1=2.5940
F(1)=(2+6 (e(-2x1)))=2.8120
Xn+1= 1 – 2.5940/2.8120=0.0775
F(.00775)=((2(0.0775))-(3(e(-2x0.0775))))+ 1 =-.1.4142
N
Xn
F(Xn)
F `(Xn)
Xn+1
F(Xn+1)
1
1
2.594
2.812
0.0775
-1.4142
2
0.0775
-1.4142
7.1385
0.2756
-0.1776
3
0.2756
-0.1716
5.4575
0.3081
-0.0038
4
0.3081
-0.0038
5.24
0.3088
-0.0001
Método modificado de newton P(x)=f(xn)+Axf `(xn)/1!+ (Ax)2 f ``(xn)/2! + (Ax)3 f ```(xn)/3!….+(Ax)n fn(xn/n! 0=f(xn)+ Axf`(xn)+(Ax)2 f``(xn)/2 Ax f `(xn)+ (Ax2) f ‘’(xn)/2= -f(xn) Ax{f `(xn)+Ax f ‘(xn)/2} =- f (xn) Ax=- f(xn)/ {f’(xn) +Ax f ``(xn)/2) -1}
De newton – Raphson tenemos Xn+1= Xn – F(xn)/ f ‘(xn) Xn+1 – Xn= - f(xn)/f ‘(xn) – 2
Se sustituye en la ecuación 2 en 1 Xn+1 –Xn= - f(xn)/ {{f `(xn) +{ -f(xn)/ f `(xn)/2} f ``(xn)} Xn+1 – Xn = - f(xn) / { f `(xn) – f(xn)/ 2 f `(xn) ( f ``(xn) } Xn+1 = xn – f(xn) / { f `(xn – f(xn) f ``(xn)/ 2 f `(xn)
Ejemplo
3x2 -8=0 F(x)=3x2 – 8 F `(x)=6x F`(x)=6
n
Xn
F(xn)
F `(xn)
F ``(xn)
Xn+1
F(Xn+1)
1
1.0000
-5.0000
6.0000
6.0000
1.5882
-.4359
2
1.5882
-.4329
9.5292
6.0000
1.6330
.0001
3x2-8x-2=0 F(x)=3x2 -8x – 2 F ‘(x)=6x-8 F`’(x)=6
n
Xn
F(xn)
F`(xn)
F ``(xn)
Xn+1
F(xn+1)
1
1.0000
-7.0000
-2.0000
6.0000
.44000
-4.9392
2
.4400
-4.9392
-5.3600
6.0000
-.1679
-.5722
3
-.1679
-.5722
-9.0074
6.0000
-.2301
-.0004
METODO DE LA BISECCION DIAGRAMA DE FLUJO
CODIGO FUENTE /*Programa que calcula una raíz de la ecuación 2x-3sen 5x-1=0 método de la Bisección */
mediante el
#include #include #include int imprime(void){ gotoxy(3,4); printf("N"); gotoxy(10,4); printf("Xa"); gotoxy(20,4); printf("f(Xa)"); gotoxy(33,4); printf("Xb"); gotoxy(44,4); printf("f(Xb)"); gotoxy(55,4); printf("Xmedia"); gotoxy(65,4); printf("f(XMedia)\n\n"); } int main(){ int N=1,i=6; float Xa, Xb, fXa, fXb, XMedia, fXMedia; do { printf("Valor de Xa para Funcion Positiva: "); scanf ("%f", &Xa); fXa=2*Xa-3*sin(5*Xa)-1; if (fXa<0) printf ("\n*** La funcion no es positiva, de otro valor a Xa ***\n\n"); } while (fXa<0); do { printf("Valor de Xb para Funcion Negativa: "); scanf ("%f", &Xb); fXb=2*Xb-3*sin(5*Xb)-1; if (fXb>0) printf ("\n*** La funcion no es negativa, de otro valor a Xb ***\n\n"); } while (fXb>0); imprime();
do { XMedia=(Xa+Xb)/2; fXMedia=2*XMedia-3*sin(5*XMedia)-1; gotoxy(2,i); printf("%2i ",N); if (Xa<0) {gotoxy(4,i); printf(" %8.6f ",Xa); } else{ gotoxy(5,i); printf(" %8.6f ",Xa); } if (fXa<0){gotoxy(16,i); printf(" %8.6f ",fXa); } else{ gotoxy(17,i); printf(" %8.6f ",fXa); } if (Xb<0){gotoxy(28,i); printf(" %8.6f ",Xb);} else{ gotoxy(29,i); printf(" %8.6f ",Xb);} if (fXb<0){gotoxy(40,i); printf(" %8.6f ",fXb); } else{ gotoxy(41,i); printf(" %8.6f ",fXb); } if (XMedia<0){gotoxy(52,i); printf(" %8.6f ",XMedia); } else{ gotoxy(53,i); printf(" %8.6f ",XMedia); } if (fXMedia<0){gotoxy(64,i); printf(" %8.6f",fXMedia); } else{ gotoxy(65,i); printf(" %8.6f",fXMedia); } N++; if (fXMedia>0){ Xa=XMedia; fXa=fXMedia; } else{ Xb=XMedia; fXb=fXMedia; } i++; } while (fabs(fXMedia)>= pow(10,-6)); printf("\n\n Valor de XMedia: %8.6f\n\n", XMedia); getch(); return 0;
PANTALLA
METODO DE LA SECANTE DIAGRAMA DE FLUJO
CODIGO FUENTE /* Programa que calcula una raíz de la ecuación 2x-3sen 5x-1=0 mediante el método de la secante*/ #include #include #include int imprime(void){ gotoxy(3,4); printf("N"); gotoxy(10,4); printf("Xi"); gotoxy(21,4); printf("f(Xi)"); gotoxy(34,4); printf("Xf"); gotoxy(45,4); printf("f(Xf)"); gotoxy(55,4); printf("xc"); gotoxy(67,4); printf("f(xc)\n\n"); } int main(){ int N=1; int i=6; float xi, xf, fxi, fxf, xc, fxc; printf("Valor de Xi: "); scanf("%f",&xi); printf("Valor de Xf: "); scanf("%f",&xf); imprime(); fxi=2*xi-3*sin(5*xi)-1; fxf=2*xf-3*sin(5*xf)-1; do{ xc=xi-(((xi-xf)*fxi)/(fxi-fxf)); fxc=2*xc-3*sin(5*xc)-1; gotoxy(2,i); printf("%2i ",N); if (xi<0) {gotoxy(4,i); printf(" %8.6f ",xi); } else{ gotoxy(5,i); printf(" %8.6f ",xi); }
if (fxi<0){gotoxy(16,i); printf(" %8.6f ",fxi); } else{ gotoxy(17,i); printf(" %8.6f ",fxi); } if (xf<0){gotoxy(28,i); printf(" %8.6f ",xf);} else{ gotoxy(29,i); printf(" %8.6f ",xf);} if (fxf<0){gotoxy(40,i); printf(" %8.6f ",fxf); } else{ gotoxy(41,i); printf(" %8.6f ",fxf); } if (xc<0){gotoxy(52,i); printf(" %8.6f ",xc); } else{ gotoxy(53,i); printf(" %8.6f ",xc); } if (fxc<0){gotoxy(64,i); printf(" %8.6f",fxc); } else{ gotoxy(65,i); printf(" %8.6f",fxc); } xi=xf; xf=xc; fxi=fxf; fxf=fxc; N++; i++; } while (fabs(fxc)>=pow(10,-6)); printf("\n\nValor de xc: %8.6f", xc); getch(); return 0; }
PANTALLA
METODO NEWTON-RAPHSON DIAGRAMA DE FLUJO
CODIGO FUENTE /*Programa que calcula una raíz de la ecuación 2x-3e -2x+1=0 de Newton-Raphson */ #include #include #include int imprime(void){ gotoxy(3,4); printf("N"); gotoxy(10,4); printf("Xn"); gotoxy(21,4); printf("f(Xn)"); gotoxy(34,4); printf("f'(Xn)"); gotoxy(45,4); printf("Xn+1"); gotoxy(55,4); printf("f(Xn+1)\n"); } int main(){ int N=1, i=6; float xn,fxn,pdxn,xn1,fxn1; printf ("Valor de Xn: "); scanf("%f",&xn); imprime(); fxn=2*xn-(3*exp(-2*xn))+1; do{ pdxn=2+(6*exp(-2*xn)); xn1=xn-(fxn/pdxn); fxn1=2*xn1-(3*exp(-2*xn1))+1; gotoxy(2,i); printf("%2i ",N); if (xn<0) {gotoxy(4,i); printf(" %8.6f ",xn); } else{ gotoxy(5,i); printf(" %8.6f ",xn); } if (fxn<0){gotoxy(16,i); printf(" %8.6f ",fxn); } else{ gotoxy(17,i); printf(" %8.6f ",fxn); } if (pdxn<0){gotoxy(28,i); printf(" %8.6f ",pdxn);} else{ gotoxy(29,i); printf(" %8.6f ",pdxn);} if (xn1<0){gotoxy(40,i); printf(" %8.6f ",xn1); } else{
mediante el método
gotoxy(41,i); printf(" %8.6f ",xn1); } if (fxn1<0){gotoxy(52,i); printf(" %8.6f ",fxn1); } else{ gotoxy(53,i); printf(" %8.6f ",fxn1); } ++i; ++N; xn=xn1; fxn=fxn1; } while(fabs(fxn1)>= pow(10,-6)); printf("\n\nValor de Xn1= %f",xn1); getch(); return 0; } PANTALLA
1