apuntes metodos numericos

33
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:

Transcript of apuntes metodos numericos

Page 1: apuntes metodos numericos

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:

Page 2: apuntes metodos numericos

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 X F (X)1 -3 192 -2.5 10.753 -2 44 -1.5 -1.255 -0.5 -56 -1 -7.257 0 -88 0.5 -7.259 1 -510 1.5 -1.2511 2 412 2.5 10.7513 3 19

Page 3: apuntes metodos numericos

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 3x2 - 8 = 0 aplicando el método de la bisección.

N Xa f(Xa) Xb f(Xb) Xmedia f(Xmedia)1 2.0000 4.0000 1.0000 -5.0000 1.5000 -1.25002 2.0000 4.0000 1.5000 -1.2500 1.7500 1.18753 1.7500 1.1875 1.5000 -1.2500 1.6250 -0.07814 1.7500 1.1875 1.6250 -0.0781 1.6875 0.54305 1.6875 0.5430 1.6250 -0.0781 1.6563 0.23006 1.6563 0.2300 1.6250 -0.0781 1.6407 0.07577 1.6407 0.0757 1.6250 -0.0781 1.6329 -0.0009

Page 4: apuntes metodos numericos

Calcular un raíz de la ecuación x =3x3 -2 / 8 aplicando el método de la bisección

N Xa f(Xa) Xb f(Xb) Xmedia f(Xmedia)1 2.0000 6.0000 1.0000 -7.0000 1.5000 -3.87502 2.0000 6.0000 1.5000 -3.8750 1.7500 0.07813 1.7500 0.0781 1.5000 -3.8750 1.6250 -2.12704 1.7500 0.0781 1.6250 -2.1270 1.6875 -1.08375 1.7500 0.0781 1.6875 -1.0837 1.7188 -0.51706 1.7500 0.0781 1.7188 -0.5170 1.7344 -0.22327 1.7500 0.0781 1.7344 -0.2232 1.7422 -0.07358 1.7500 0.0781 1.7422 -0.0735 1.7461 0.00219 1.7461 0.0021 1.7422 -0.0735 1.7442 -0.0348

10 1.7461 0.0021 1.7442 -0.0348 1.7452 -0.015411 1.7461 0.0021 1.7452 -0.0154 1.7457 -0.005712 1.7461 0.0021 1.7457 -0.0057 1.7459 -0.001813 1.7461 0.0021 1.7459 -0.0018 1.7460 0.0001

Encontrar la raíz o solución del la ecuación 2x - 3e-2x +1= 0 aplicando el método de la bisección.

N Xa F(xa) Xb F(xb) xmedia F(medía)1 1.0000 2.5940 -1.0000 -33.1672 0.0000 -2.00002 1.0000 2.5940 0.0000 -2.0000 0.5000 0.89643 0.5000 0.8964 0.0000 -2.0000 0.2500 -0.31964 0.5000 0.8964 0.2500 -0.3196 0.375 0.33295 0.375 0.3329 0.2500 -0.3196 0.3125 0.01926 0.3125 0.0192 0.2500 -3.3196 0.2813 -0.14667 0.3125 0.0192 0.2813 -0.1466 0.2969 -0.06298 0.3125 0.0192 0.2969 -0.0629 0.3047 -0.02169 0.3125 0.0192 0.3047 -0.0216 0.3087 -0.0006

Page 5: apuntes metodos numericos

Calcular una raíz de la siguiente ecuación aplicando el método de la bisección.

2x – 3sen5x- 1

N Xa f(Xa) Xb f(Xb) Xmedia f(Xmedia)1 1.0000 3.8760 -1.0000 -5.8768 0.0000 -1.00002 1.0000 3.8760 0.0000 -1.0000 5.0000 -1.79543 1.0000 3.8760 0.5000 -1.7954 0.7500 2.21474 0.7500 2.2147 0.5000 -1.7954 0.6250 0.02025 0.6250 0.2002 0.5000 -1.7954 0.5625 -0.84466 0.6250 0.2002 0.5625 -0.8446 0.5938 -0.32767 0.6250 0.2002 0.5938 -0.3276 0.6094 -0.06468 0.6250 0.2002 0.6094 -0.0646 0.9172 0.06779 0.6172 0.0677 0.6094 -0.0646 0.6133 0.0015

10 0.6133 0.0015 0.6094 -0.0646 0.6114 -0.030711 0.6133 0.0015 0.6114 -0.0307 0.6124 -0.013712 0.6133 0.0015 0.6124 -0.0137 0.6129 -0.005213 0.6133 0.0015 0.6129 -0.0052 0.6131 -0.001414 0.6133 0.0015 0.6131 -0.0019 0.6132 -0.0002

Page 6: apuntes metodos numericos

METODO DE LA SECANTE (Regla Falsa)

Por razones o proporciones

Ejemplo calcular la ecuación aplicando el método de la secante

=1.7100 =x 5=x3 x3-5=0 f(x)=x3-5

N Xi f (Xi) Xf f (Xf) Xc f (Xc)1 2.0000 3.0000 1.0000 -4.0000 1.5714 -1.11972 1.0000 -4.0000 1.5714 -1.1197 1.7935 0.7693 1.5714 -1.1197 1.7935 0.769 1.7031 -0.06014 1.7935 0.769 1.7031 -0.0601 1.7097 -0.00245 1.7031 -0.0601 1.7097 -0.0024 1.71 0.0002

Page 7: apuntes metodos numericos

Calcular una raíz o solución de la siguiente ecuación

aplicando el método de la secante.

N Xi F(Xi) Xf F(Xf) Xc F(Xc)1 1.0000 -7.0000 2.0000 -6.0000 8.0000 126.00002 2.0000 -6.0000 8.0000 126.0000 2.2727 -4.68613 8.0000 126.0000 2.2727 -4.6861 2.4781 -3.40194 2.2727 -4.6861 2.4781 -3.4019 3.0222 1.22355 2.4781 -3.4019 3.0222 1.2235 2.8783 -0.17266 3.0222 1.2235 2.8783 -0.1726 2.8961 -0.00667 2.8783 -0.1726 2.8961 -0.0066 2.8968 0.0000

Page 8: apuntes metodos numericos

Calcular la siguiente ecuación por medio del método de la

secante.

N Xi F(Xi) Xf F(Xf) Xc F(Xc)1 1.0000 2.5940 1.0000 23.1672 0.7986 1.98982 1.0000 23.1672 0.7986 1.9898 0.6563 1.50523 0.7986 1.9898 0.6563 1.5052 0.2143 0.52574 0.6563 1.5052 0.2143 -0.5257 0.3287 0.10285 0.2143 -0.5257 0.3287 0.1028 0.3100 0.00626 0.3287 0.1028 0.3100 0.0062 3.3080 0.00437 0.3100 0.0062 0.3080 -0.0043 0.3088 0.0001

Page 9: apuntes metodos numericos
Page 10: apuntes metodos numericos

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.8768f(Xf)= f(2.0000) = 2(2.0000) – 3 Sen 5 (2.0000) – 1 = 4.6321Xc = 1.0000 – (1.0000-2.0000) / (3.8768 – 4.6321) = -4. 1328f(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.6321f(Xf)= f(-4.1328) = 2(-4.1328) – 3 Sen 5 (-4.1328) – 1 = -6.3543Xc = 2.0000 – (2.0000- (-4.1328)) / (4.6321 – (-6.3543)) = -0.5857f(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 1.0000 3.8768 2.0000 4.6321 -4.1328 -6.35432 2.0000 4.6321 -4.1328 -6.3543 -0.5857 -1.53713 -4.1328 -6.3543 -0.5857 -1.5371 0.5461 -1.10664 -0.5857 -1.5371 0.5461 -1.1066 3.4559 8.91185 0.5461 -1.1066 3.4559 8.9118 0.8675 3.52686 3.4559 8.9118 0.8675 3.5268 -0.8277 -5.17457 0.8675 3.5268 -0.8277 -5.1745 0.1804 -2.99318 -0.8277 -5.1745 0.1804 -2.9931 1.5637 -0.87089 0.1804 -2.9931 1.5637 -0.8708 2.1312 6.091010 1.5637 -0.8708 2.1312 6.0910 1.6346 -0.579111 2.1312 6.0910 1.6346 -0.5791 1.6778 -0.225612 1.6346 -0.5791 1.6778 -0.2256 1.7053 0.063513 1.6778 -0.2256 1.7053 0.0635 1.6992 -0.004014 1.7053 0.0635 1.6992 -0.0040 1.6996 -0.0001

Page 11: apuntes metodos numericos

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)

Page 12: apuntes metodos numericos

Calcular una raíz o solución de 3x2-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 = -5xn + 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

Page 13: apuntes metodos numericos

Calcular una raíz o solución de 2X-3*SIN (5x)-1= 0 aplicando el método de newton-raphson

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)

Page 14: apuntes metodos numericos

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

Page 15: apuntes metodos numericos

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)

Page 16: apuntes metodos numericos

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

Page 17: apuntes metodos numericos

METODO DE LA BISECCIONDIAGRAMA DE FLUJO

Page 18: apuntes metodos numericos
Page 19: apuntes metodos numericos

CODIGO FUENTE

/*Programa que calcula una raíz de la ecuación 2x-3sen 5x-1=0 mediante el método de la Bisección */

#include <stdio.h>#include <conio.h>#include <Math.h>

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 {

Page 20: apuntes metodos numericos

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

Page 21: apuntes metodos numericos

METODO DE LA SECANTEDIAGRAMA DE FLUJO

Page 22: apuntes metodos numericos
Page 23: apuntes metodos numericos

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 <stdio.h>#include <conio.h>#include <math.h>

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); }

Page 24: apuntes metodos numericos

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;}

Page 25: apuntes metodos numericos

PANTALLA

Page 26: apuntes metodos numericos

METODO NEWTON-RAPHSONDIAGRAMA DE FLUJO

Page 27: apuntes metodos numericos

CODIGO FUENTE

/*Programa que calcula una raíz de la ecuación 2x-3e-2x+1=0 mediante el método de Newton-Raphson */

#include <stdio.h>#include <math.h>#include <conio.h>

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{

Page 28: apuntes metodos numericos

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