MATERIA
METODOS NUMERICOS
INTEGRANTES:
NARCISO SOTO ISAAC FRANCISCO JAVIER ARROYO ALTAMIRANO JIMENEZ VAZQUEZ RICARDO JEOVANY OLIVARES RODRIGUEZ OSVALDO ECHAVERRIA GONZALEZ FRANCISCO JAVIER
DOCENTE:
M.C. KRISTHIAN OMAR ALCANTAR MEDINA
CARERRA:
INGENIEIA ELECTRICA
Un sistema de ecuaciones es no lineal, cuando al menos
una de sus ecuaciones no es de primer grado .
La resolución de estos sistemas se suele hacer por el
método de sustitución , para ello seguiremos los siguientes pasos:
1 º S e despeja una incógnita en una de las ecuaciones, preferentemente en la de primer grado .
y=7−x 2 º Se sustituye el valor de la incógnita despejada en la otra ecuación. x2
+ (7 − x) 2 =
25
3 º Se resuelve la ecuación resultante. x2
+ 49 − 14x + x 2 =
2x2− x2−
25
14x + 24 = 0
7x + 12 = 0
4 º Cada uno de l os valores obtenidos se sustituye en la otra ecuación , se obtienen así los valores correspondientes de la otra incógnita.
x = 3 y = 7 − 3 y = 4 x = 4 y = 7 − 4 y = 3
Los sistemas no lineales representan sistemas cuyo comportamiento no es expresable como la suma de los comportamientos de sus descriptores. Más formalmente, un sistema físico, matemático o de otro tipo es no lineal cuando las ecuaciones de movimiento, evolución o comportamiento que regulan su comportamiento son no lineales. En particular, el comportamiento de sistemas no lineales no está sujeto al principio de superposición, como lo es un sistema lineal. Algunos sistemas no lineales lineales tienen soluciones soluciones exactas exactas o integrables, integrables, mientras que otros tienen comportamiento caótico, por lo tanto no se pueden reducir a una forma simple ni se pueden resolver. Un ejemplo de comportamiento caótico son las olas gigantes. Aunque algunos sistemas no lineales y ecuaciones de interés general han sido extensamente estudiados, la vasta mayoría son pobremente comprendidos Las ecuaciones no lineales son de interés en física y matematicas debido a que la mayoría de los problemas físicos son implícitamente no lineales en su naturaleza. Ejemplos físicos de sistemas lineales son relativamente raros. Las ecuaciones no lineales son difíciles de resolver y dan origen a interesantes fenómenos como la teoría del caos Una ecuación lineal puede ser descrita usando un operador lineal, L. Una ecuación lineal en algún valor desconocido de u tiene la forma
Una ecuación no lineal es una ecuación de la forma:
Para algún valor desconocido de u. Para poder resolver cualquier ecuación se necesita decidir en qué espacio matemático se encuentra la solución u. Podría ser que u es un número real, un vector o, tal vez, una función con algunas propiedades. Las soluciones de ecuaciones lineales pueden ser generalmente descritas como una superposición de otras soluciones de la misma ecuación. Esto hace que las ecuaciones lineales sean fáciles de resolver. Las ecuaciones no lineales son mucho más complejas, y mucho más difíciles de entender por la falta de soluciones simples superpuestas. Para las ecuaciones no lineales las soluciones generalmente no forman un espacio vectorial y, en general, no pueden ser superpuestas para producir nuevas soluciones. Esto hace el resolver las ecuaciones mucho más difícil que en sistemas lineales.
ECUACIONES NO LINEALES ESPECIFICAS Algunas ecuaciones ecuaciones no lineales lineales son bien comprendidas comprendidas,, por ejemplo: ejemplo: = x 2 − 1 y = Y otras ecuaciones polinomiales. Sin embargo, los sistemas de ecuaciones no lineales son mucho más complejos. Similarmente, ecuaciones diferenciales de primer orden no lineales, tal como: dxu = u2
son fácilmente resueltas (en este caso por separación de variables). Las ecuaciones diferenciales de orden superior, tales como:
donde g es una función no lineal, son mucho más desafiantes. Para las ecuaciones diferenciales parciales, el panorama es aún peor, ya que, aunque un número de resultados indique la existencia de soluciones, la estabilidad de una solución y la dinámica de las soluciones tienen que ser probadas.
Los métodos interactivos o aproximados proveen una alternativa en los métodos de eliminación discreto hasta ahora. Las técnicas para obtener las raíces de una ecuación simple. Aquellos planteamientos consistían en suponer un valor y luego usar un método sistemático para obtener una estimulación refinada de la raíz. El método de Gauss-Seidel es el método iterativo mas comúnmente usado. Suponga que se da un conjunto de n ecuaciones. [A][X]=[B] Suponga que para ser ser conciso se limita a un conjunto de ecuaciones de 3 X3. So los elementos de la diagonal no son todos cero, la primero ecuación de puede resolver para X 3 para obtener
1 =
1 122 133 11
2 =
2 211 233 22
2 =
3 311 322 33
(11.5a)
(11.5b)
(11.5c)
Ahora, se puede empezar el proceso de solución solución al escoger escoger los valores iniciales de las x. una forma simple para obtener los valores iniciales es suponer que todos son cero. Estos ceros se pueden sustituir en la ecuación (11.5a), la cual se puede usar para calcular un nuevo valor para x 1=b1/a11. Después, se sustituye este nuevo valor de x 1 junto con los valores previos de cero para x 3 en la ecuación (11.5b) y calcular el nuevo valor para x 2. Este proceso se repite en la ecuación (11.5c) para calcular un nuevo estimado de x 3. Después se regresa a la primera
ecuación y se repite todo el procedimiento hasta que a solución converja lo suficientemente cercana a los valores reales
│εa,i│= │ −
│
Para todas las i, donde j y j-1 son las interacciones actuales y previas.
Use el método de Gauss-Seidel para obtener la solución del sistema 3x1 - 0.1x 2 - 0.2x 3 = 7.85 0.1x1 + 7x2 - 0.3x 3 = -19.3 0.3x1 – 0.2 + 10x 3 = 71.4 Recuerde que la solución real es x 1=3, x2=-2.5 y x3= 7.
SOLUCIÓN: Primero, resuelva la incógnita de cada una de las ecuaciones sobre la diagonal.
1 =
7.58 7.58 0.1 0.122 0.2 0.23 3
(E11.3.1)
2 =
19. 19.33 0.1 0.111 0.3 0.33 7
(E11.3.2)
3 =
71.4 71.4 0.3 0.311 0.2 0.22 10
(E11.3.3)
Al asumir que x2 y x3 son cero, se puede usar la ecuación CALCULAR
(E11.3.1) PARA
1 =
7.5800 = 2.61 2.6166 6667 67 3
Este valor, junto con el valor asumido de x 3=0, se puede sustituir en la ecuación (E11.3.2) para calcular
2 =
19. 19.33 0.1( 0.1(2. 2.61 6166 6667 67)) 0 = 2.7 2.794 9452 5244 7
La primera iteración se completa al sustituir el valor calculado de x 1 y x2 en la ecuación (E11.3.3) para obtener
3 =
71.4 0.3(2. 0.3(2.616 616667 667)) 0.2(2 0.2(2.79 .79452 4524) 4) = 7.005 7.005610 610 10
Para la segunda iteración, se repite el mismo proceso para calcular
1 = .+.(−.)+.(. = 2.990 2.99055 5577 2 = −.−.(.)+.(.) = 2.49 2.4996 9625 25 3 = .−.(.)+.(−.) = 7.000 7.000291 291
│εt│=0.31% │εt│=0.015% │εt│=0.0042%
El método es, por lo tanto, convergente hacia la solución real. Se puede aplicar interacciones adicionales para mejorar los resultados. Sin embargo, en un problema real, no se podría saber la respuesta correcta con anticipación. En consecuencia, la ecuacion-811.6) provee un medio para estimar el error. Por ejemplo, para x 1,
│εa.1│= │ .−. │100 │100% % = 12.5 2.5% . Para x2 y x 3, los errores estimados son │εa.2│=11.8% y │εa.3│= 0.076%. Observe que, como cuando se determinaron las raíces de una ecuación simple, formulaciones como la ecuación (11.6) proveen usualmente una valoración de
convergencia conservativa. Así, cuando ales formulaciones se cumplen, aseguran
que el resultado sea conocido con al menos la tolerancia especificada por εs. Como cada nuevo valor de x se calcula con el método de Gauss-Seidel, este se usa inmediatamente en la siguiente ecuación para determinar otro valor de x. de esta forma, si la solución es convergente, se empleara la mejor estimación disponible. Un planteamiento alternativo, llamado iteración de jacobi, utiliza una técnica algo diferente. Mas que usar el ultimo valor disponible de x, esta técnica usa la ecuación (11.5) para calcular un conjunto de nuevas x con base en un conjunto de las x anteriores. De esta forma, como se generan nuevos valores, no se usan en forma inmediata sino que se retienen para la siguiente iteración.
ALGORITMO DE GAUSS-SEIDEL A continuación continuación se muestra un algoritmo, algoritmo, para el método de Gauss- Seidel, con relajación. Observe que este algoritmo no garantiza la convergencia si las ecuaciones no se introducen de forma diagonal dominante. El pseudocódigo tiene dos características que vale la pena mencionar. La primera es que existe un conjunto inicial de ciclos anidados para dividir cada ecuación entre su elemento diagonal. Esto reduce el número total de operaciones en el algoritmo. Segunda, observe que el error de verificación se designa por una variable llamada sentinel . Si en cualquiera de las ecuaciones se tiene un error aproximado mayor que el criterio de paro (es), entonces se permite continuar con las iteraciones. El uso de la variable sentinel permite evitar los cálculos innecesarios de estimación de error una vez que las ecuaciones excedan el criterio.
Problemas en contexto para el método de Gauss- Seidel Además de evitar el problema de redondeo, redondeo, la técnica de Gauss-Seidel tiene muchas otras ventajas que la hacen particularmente atractiva en el contexto de ciertos problemas de ingeniería. Por ejemplo, cuando la matriz en cuestión es muy grande y muy rala (cuando la mayoría de sus elementos son cero), los métodos de eliminación consumen grandes cantidades de memoria de cómputo para calcular ceros. Al inicio de estos capítulos capítulos se vio como esta desventaja desventaja se puede evitar si el coeficiente de la matriz se alinea en forma de banda. Para sistemas que no tienen la forma de banda, usualmente no existe un camino simple para evitar grandes requerimientos de memoria cuando se usan los métodos de eliminación. Como todas las computadoras tienen una cantidad de memoria finita, este ineficiencia da
lugar a restricciones en el tamaño de los sistemas, por lo cual los métodos de eliminación son prácticos. A continuación continuación el el algoritmo: algoritmo: SUBROTINE Gseid (a,b,n,x,imax,es,lambda) DO i = 1,n dummy = ai,i DO j = 1,n ai,j = ai,j/dummy END DO bi= bi/dummy END DO DO i = 1,n sum = bi DO j = 1,n
IF ≠ j THEN sum = sum – ai,j *xj END DO xi = sum END DO iter = 1 DO sentinel = 1 DO i = 1,n old = xi sum = bi DO j = 1,n
IF ≠ j THEN sum = sum – ai,j * xj END DO xi = lambda*sum + (1.-lambda)*old
IF sentinel = 1 AND x1 ≠ 0. THEN ea = ABS ((xi – old)/xi)*100
IF ea › es THEN sentinel = o END IF ENDDO iter = iter +1
IF sentinel = 1 OR (iter ≥ iter max) EXIT END DO END Gseid
PROGRAMA QUE IMPLEMENTA EL METODO DE GAUSS SEIDEL CON PIVOTEO PARA // // LA ASIGNATURA DE SOFTWARE NUMERICO.
//
#include #include #include #include #define L 10 #define P L float A[L][P],MATRIZ[L][P A[L][P],MATRIZ[L][P],VECTO ],VECTOR[L],X[L] R[L],X[L],CX[L],C[ ,CX[L],C[L],RESU L],RESULTADOS LTADOS[L],tabla[10 [L],tabla[1000]; 00];
float a, b, c, d, e, f; int it,ini,n,x,y,z,cont=0; void Gauss_Seidel(int n) { for(x=0;x>e; A[y][x]=e; A[y][x]=e; MATRIZ[y][x]=e; //esta es la matriz q no varia } cout<<"Y la constante C["<>f; C[y]=f; VECTOR[y]=f; //este es el vector que no se modifica } int sum=0,cont=0,reglon=0; for(int i=0;i
sum=sum+abs(A[i][i]);
for(i=0;i
int temp[L][P],H[P]; if(cont!=n) //aqui se realiza el pivoteo { for(i=0;i
A[i][z]=A[j][z]; A[j][z]=temp[i][z]; A[j][z]=temp[i][z]; } H[i]=C[i]; H[j]=C[j]; C[i]=H[j]; C[j]=H[i]; } } } } i=0; for(it=0;it<100;it++) { for(y=0;y
resultados i++; } }
//tabla sirve para imprimir la tabla de
}
void titulo(int n) { int o=10,i=1; clrscr(); for(i=1;i
void resultados() { int q=0,i=1,t=3,s=n,r=0; int sw=0,w=0,ite=0,h=0; while((sw==0)&&(w<20)) { h=0; while(h
{ cont++; } if(cont==n) sw=1; r++; s++; h++; } ite++; w++; } w=ite-1; for(int j=0;j
t=5; titulo(n); } gotoxy(15,t);cout<
}
void main() { textcolor(GREEN); clrscr(); cout<<" Solucion de ecuaciones simultaneas\n\n\n Metodo de GaussSeidel"; cout<<"\n\n Cuantas incognitas tendra el sistema: "; scanf("%d",&n); Gauss_Seidel(n); titulo(n);
resultados(); cout<<"\n\nLos resultado son "; for(x=0;x
}
En análisis numérico, el método de Newton (conocido también como el método de Newton-Raphson o el método de Newton-Fourier) es un algoritmo eficiente para encontrar aproximaciones de los ceros o raíces de una función real. También puede ser usado para encontrar el máximo o mínimo de una función, encontrando los ceros de su primera derivada. .Recordemos que el método de Newton – Raphson es un método abierto que encuentra la raíz de x como una función tal que ( = 0. El método se resume como
( ) + = ′( ) Se puede usar un planteamiento similar abierto para encontrar un óptimo de () al definir una nueva función , () = ′( ′()). Así, como el mismo valor óptimo de ∗ satisface ambos
( ∗) = ( ∗) = 0 Se puede usar lo siguiente
′( ) + = ′′( ) Como una técnica para encontrar el mínimo o máximo de () . Se debería observar que esta ecuación puede también derivarse al escribir una serie de Taylor de segundo orden para () e igualar a la derivada de la seria a cero. El método de Newton es abierto y similar al de Newton – Raphson porque no requiere de valores iniciales que contengan el óptimo. Además, también comparte la desventaja de poder ser divergente. Por último, es una buena idea verificar que la segunda derivada tenga usualmente el signo correcto para confirmar que la técnica converge sobre el resultado deseado.
Otra definición de este método lo define como un método abierto, en el sentido de que su convergencia global no está garantizada. La única manera de alcanzar la convergencia es seleccionar un valor inicial lo suficientemente cercano a la raíz buscada. Así, se ha de comenzar la iteración con un valor razonablemente cercano al cero (denominado punto de arranque o valor supuesto). La relativa cercanía del punto inicial a la raíz depende mucho de la naturaleza de la propia función; si ésta presenta múltiples puntos de inflexión o pendientes grandes en el entorno de la raíz, entonces las probabilidades de que el algoritmo diverja aumentan, lo cual exige seleccionar un valor supuesto cercano a la raíz. Una vez que se ha hecho esto, el método linealiza la función por la recta tangente en ese valor supuesto. La abscisa en el origen de dicha recta será, según el método, una mejor aproximación de la raíz que el valor anterior. Se realizarán sucesivas iteraciones hasta que el método haya convergido lo suficiente. f'(x)= 0 Sea f : : [a, b] -> R función derivable definida en el intervalo real [ a, b]. Empezamos con un valor inicial x 0 y definimos para cada número natural n
Donde f ' ' denota la derivada de f . Nótese que el método descrito es de aplicación exclusiva para funciones de una sola variable con forma analítica o implícita cognoscible. Existen variantes del método aplicables a sistemas discretos que permiten estimar las raíces de la
tendencia, así como algoritmos que extienden el método de Newton a sistemas multivariables, sistemas de ecuaciones, etc. Gráficamente podemos darnos una idea del método de Newton – Raphson de la siguiente manera:
La función ƒ es mostrada en azul y la línea tangente en rojo. Vemos que x n+1 es una mejor aproximación que x n para la raíz x de la función f.
El orden de convergencia de este método es, por lo menos, cuadrático. Sin embargo, si la raíz buscada es de multiplicidad algebraica mayor a uno (i.e, una raíz doble, triple,...), el método de Newton-Raphson pierde su convergencia cuadrática y pasa a ser lineal de constante asintótica de convergencia 1-1/m, con m la multiplicidad de la raíz. Su principal desventaja en este caso sería lo costoso que pudiera ser hallar g(x) y g'(x) si f(x) no es fácilmente derivable. Por otro lado, la convergencia del método se demuestra cuadrática para el caso más habitual en base a tratar el método como uno de punto fijo: si g'(r)=0, y g' '(r) es distinto de 0, entonces la convergencia es cuadrática. Sin embargo, está sujeto a las particularidades de estos métodos. Nótese de todas formas que el método de Newton-Raphson es un método abierto: la convergencia no está garantizada por un teorema de convergencia global como podría estarlo en los métodos de falsa posición o de bisección. Así, es necesario partir de una aproximación inicial próxima a la raíz buscada para que el método converja y cumpla el teorema de convergencia local. Se puede demostrar que el método de Newton-Raphson tiene convergencia
cuadrática: si α es raíz, entonces:
Para una cierta constante C . Esto significa que si en algún momento el error es menor o igual a 0,1, a cada nueva iteración doblamos (aproximadamente) el número de decimales exactos. En la práctica puede servir para hacer una estimación aproximada del error: Error relativo entre dos aproximaciones sucesivas:
Con lo cual se toma el error relativo como si la última aproximación fuera el valor exacto. Se detiene el proceso iterativo cuando este error relativo es aproximadamente menor que una cantidad fijada previamente.
Use el método de Newton para encontrar el máximo de: ( ) con un valor inicial de
= 2.5
= 2
SOLUCION: La primera y segunda derivada de la función se puede evaluar como:
() = 2 c o s
5
() = 2
1 5
Las cuales sustituiremos en la ecuación para obtener:
2cos 5 + = 2 15 Al sustituir sustituir el valor valor inicial se se obtiene: obtiene:
2cos2.5 2.5 5 = . =2 =2.5 .5 2 2.5 2.5 15
La cual tiene un valor de la función de 1.57859. La segunda iteración da como resultado:
2 cos cos 0.99 .995 0.995 5 = . = 0.995 2 0.9 0.995 95 15 La cual tiene un valor de la función de 1.77385. El proceso se repite, con los resultados abajo tabulados:
i
X
f (x)
f ’(x)
f ’’(x)
0 1 2 3 4
2.5 0.99508 1.46901 1.42764 1.42755
0.57194 1.57859 1.77385 1.77573 1.77573
-2.10229 0.88985 -0.09058 -0.00020 0.00000
-1.39694 -1.87761 -2.18965 -2.17954 -2.17952
Así dentro de las cuatro iteraciones, el resultado converge en forma rápida sobre el valor verdadero
Consideremos el problema de encontrar un número positivo x tal tal que cos( x ) = x 3. Podríamos tratar de encontrar el cero de f ( x x ) = cos( x x ) - x 3. Sabemos que f '( '( x y x 3 > 1 para x >1, >1, x ) = -sin( x x ) - 3 x 2. Ya que cos( x ) ≤ 1 para todo x y deducimos que nuestro cero está entre 0 y 1. Comenzaremos probando con el valor inicial x 0 = 0,5
Los dígitos correctos están subrayados. En particular, x 6 es correcto para el 6 es número de decimales pedidos. Podemos ver que el número de dígitos correctos después de la coma se incrementa desde 2 (para x 3 ) a 5 y 10, ilustrando la convergencia cuadrática.
E n ps ps eu eudo docódig códig o es es to es es : function newtonIterationFunction(x) { return x - (cos(x) - x^3) / (-sin(x) - 3*x^2) } var x := 0,5 for i from 0 to 99 { print "Iteraciones: " + i print "Valor aproximado: " + x xold := x x := newtonIterationFunction(x) if x = xold { print "Solución encontrada!" break } }
P rog rama es cr crito ito en Matl Matlab ab para para halla hallarr las r aíces us ando el el mét método odo de NEWTON-RAPHSON function x =newton() disp ('NEWTON-RAPHSON') xo=input('Valor inicial ='); n=input ('numero de iteraciones='); salida=ones(n,4); % matiz de salida de datos for i=1:n x1=xo-[(exp(-xo)-xo)]/[(-exp(-xo)-1)]; vsal=[xo;x1]; er=[[abs((xo-x1)/xo)]]*100; er=[[abs((xo-x1)/xo) ]]*100; % error relativo porcentual ea=[[abs((x1-xo)/x1)]]*100; ea=[[abs((x1-xo)/x1) ]]*100; % error xo=x1; salida(i,1)=i; salida(i,2)=x1; salida(i,3)=er; salida(i,4)=ea; end disp('ite raiz er ea'); disp(num2str(salida));
Aunque el el método de Newton Newton – Raphson trabaja bien en algunos casos, no es practico en otros donde las derivadas no se pueden evaluar en forma conveniente. Para estos casos, se dispone de otros procedimientos que no involucran la evaluación de la derivada. Por ejemplo, un método de Newton, en versión como la secante, se puede desarrollar al usar aproximaciones por diferencia finita para las evaluaciones de la derivada. Una restricción mayor con respecto al procedimiento es que puede divergir con base en la naturaleza de la función y la calidad del valor inicial. Asi, usualmente se emplea solo cuando esta cerca del optimo. Las técnicas hibridas que usan procedimientos con intervalos lejos del optimo y los métodos abiertos cercanos al optimo intentan explotar los puntos fuertes de ambos procedimientos. Esto concluye nuestro tratamiento de los métodos para encontrar el optimo de funciones de una sola variable. Por otra parte, las técnicas descritas aquí son un importante elemento de algunos procedimientos para optimizar multivariables, que se analizaran mas adelante.
Título: Métodos Numéricos para Ingenieros Autores: Steven C. Chapra, Raymond P. Canale Editorial: MacGH
http://ocw.upm.es/matematica-aplicada/programacion-y-metodosnumericos/contenidos/TEMA_8/Apuntes/EcsNoLin.pdf