metodos de analisis numericos

61
TRABAJO DE ANÁLISIS NUMÉRICO EJERCICIOS PROPUESTOS EN CLASES 1. Explicar el Método de Gauss a través de un ejemplo (hacer el ejemplo en MATLAB con todas sus restricciones). Método de Gauss El método de Gauss es un método para resolver sistemas de ecuaciones lineales: AX =B Donde A es la matriz de coeficientes, X es el vector columna de incógnitas y B contiene respectivamente los segundos miembros de cada ecuación. 1º Paso: Se debe formar una matriz ampliada compuesta por la matriz de coeficientes A y el vector B: [ A| B ] 2º Paso: Eliminación hacia adelante. Esto consiste en aplicar operaciones elementales por fila a la matriz ampliada de modo que la matriz A contenida en ella se transforme en una matriz triangular superior (a la que podríamos llamar U), es decir, que sus elementos situados debajo de la diagonal principal sean ceros. De esa forma, el lado correspondiente al vector B se verá también afectado, por lo que podemos escribir esto como: [ U| B' ] 3º Paso: Sustitución hacia atrás.Si hemos hecho todo correctamente, en este punto, partiendo desde la última fila podremos ir encontrando fácilmente los valores de las últimas

description

metodos de gauss

Transcript of metodos de analisis numericos

Universidad Nacional de Trujillo

Universidad Nacional de Trujillo - Ingeniera de Sistemas9

TRABAJO DE ANLISIS NUMRICO

EJERCICIOS PROPUESTOS EN CLASES1. Explicar el Mtodo de Gauss a travs de un ejemplo (hacer el ejemplo en MATLAB con todas sus restricciones).Mtodo de GaussEl mtodo de Gauss es un mtodo para resolver sistemas de ecuaciones lineales:

Donde A es la matriz de coeficientes, X es el vector columna de incgnitas y B contiene respectivamente los segundos miembros de cada ecuacin.1 Paso: Se debe formar una matriz ampliada compuesta por la matriz de coeficientes A y el vector B:

2 Paso: Eliminacin hacia adelante. Esto consiste en aplicar operaciones elementales por fila a la matriz ampliada de modo que la matriz A contenida en ella se transforme en una matriz triangular superior (a la que podramos llamar U), es decir, que sus elementos situados debajo de la diagonal principal sean ceros.De esa forma, el lado correspondiente al vector B se ver tambin afectado, por lo que podemos escribir esto como:

3 Paso: Sustitucin hacia atrs.Si hemos hecho todo correctamente, en este punto, partiendo desde la ltima fila podremos ir encontrando fcilmente los valores de las ltimas variables. Luego, reemplazando dichos valores en las filas anteriores podremos encontrar los valores de las primeras variables, y as dar una solucin completa al sistema.Programa en Matlab.En clase hemos trabajado algunos sistemas de ecuaciones lineales en particular. Luego hicimos una generalizacin para resolver sistemas de ecuaciones lineales de 2 ecuaciones y de 3 ecuaciones.El programa que presentamos a continuacin resuelve sistemas de ecuaciones lineales que se componen de n ecuaciones, es decir, ha sido generalizado totalmente.clc, clearn = input('De cuntas ecuaciones se compone el sistema?: ');

% Reservamos espacio anticipadamente, para optimizar.M = zeros(n, n); Y = zeros(n,1); X = Y;

% Lectura de la matriz de coeficientes.disp('Lectura de la matriz de coeficientes.')for i=1:nfor j=1:n fprintf('Ingrese un valor para M(%d, %d): ', i, j) M(i, j) = input('');endenddisp('Lectura del vector columna Y')for i=1:n fprintf('Ingrese un valor para Y(%d): ',i) Y(i) = input('');end

% Formamos la matriz ampliada.A = [M,Y];

% Eliminacin hacia adelante.for j=1:n-1for i=j+1:n A(i,:) = A(i,:)+A(j,:)*(-A(i,j)/A(j,j));endend

% Sustitucin hacia atrs.for i=n:-1:1 X(i) = A(i,n+1);for j=i+1:n X(i) = X(i) - X(j)*A(i,j);end X(i) = X(i)/A(i,i);end

disp('Se ha encontrado el valor de las incgnitas: ')X

Un ejemplo de uso del programa.Supongamos que queremos resolver el siguiente sistema de ecuaciones lineales.

Entonces ingresamos los datos al programa.

Y ste nos reportar inmediatamente las soluciones:

A fin de comprobar los resultados, en el mismo Matlab es posible realizar operaciones con los valores encontrados. Entonces, si efectuamos operaciones tales como los primeros miembros de cada ecuacin, las respuestas debern ser sus respectivos segundos miembros, segn se ingresaron las ecuaciones originalmente:

Dificultades en el mtodo de Gauss.El programa funciona perfectamente tal como se ha comprobado a travs del ejemplo. Sin embargo, existen algunas circunstancias por las que el programa podra dar muchos errores. Dichas circunstancias no se han tratado previamente, pero s se lo haremos a continuacin. Describiremos la causa que origina el problema y luego modificaremos el cdigo para solucionar dichas excepciones.

Dificultad #01. Divisin entre cero.Cuando procedemos a hacer ceros los elementos que estn debajo de la diagonal principal, lo realizamos por columnas. Por ejemplo, situndonos sobre la primera columna, hacemos ceros a los elementos debajo del primer elemento de la primera fila. Cuando estamos sobre la segunda columna, hacemos ceros a los elementos situados debajo del segundo elemento de la segunda columna. En general, cuando estamos en una columna i, hacemos ceros a los elementos situados debajo de A(i, i), siendo A la matriz ampliada.Para dicha eliminacin hacia adelante, se hacen divisiones, en lo que podra resultar una divisin entre cero si el elemento pivote es cero. Entonces para evitar ello, antes de la eliminacin, se hace un intercambio, de modo que la primera fila sea aquella que tenga como primer elemento al mayor nmero de la primera columna. Con ello ya es posible eliminar los elementos situados debajo de A(1, 1). Al pasar a la eliminacin de la segunda columna, debemos asegurarnos que el elemento pivote de la segunda fila sea mayor a los elementos que debajo de l. Es decir, A(2, 2) debe ser mayor a cualquier A(i, 2) para i desde 3 hasta n. De no ser as, se hace el intercambio correspondiente y ya luego recin se procede a eliminar.Agregaremos la solucin a tal problema en nuestro programa. Para ello, dentro del bucle for ms general, que recorre las columnas, agregaremos algnas operaciones ms: para cada columna haremos un recorrido buscando el mayor elemento que se encuentre debajo del pivote. Si el pivote actual es el mayor se procede a eliminar, y si no, se intercambian filas. No es necesario reordenarlas todas de mayor a menor, pues slo se requiere intercambiar la fila con el mayor elemento por la fila que contiene al pivote actual. Por eso, cada vez que encontremos un nuevo elemento mayor, iremos guardando adems la posicin de la fila a la cual pertenece.El cdigo es el siguiente, y se ha resaltado de verde el fragmento de cdigo agregado:clc, clearn = input('De cuntas ecuaciones se compone el sistema?: ');

% Reservamos espacio anticipadamente, para optimizar.M = zeros(n, n); Y = zeros(n,1); X = Y;

% Lectura de la matriz de coeficientes.disp('Lectura de la matriz de coeficientes.')for i=1:nfor j=1:n fprintf('Ingrese un valor para M(%d, %d): ', i, j) M(i, j) = input('');endenddisp('Lectura del vector columna Y')for i=1:n fprintf('Ingrese un valor para Y(%d): ',i) Y(i) = input('');end

% Formamos la matriz ampliada.A = [M,Y];

% Eliminacin hacia adelante.for j=1:n-1% Seleccionando al mayor pivote posible. indiceF =j; % ndice fila del mayor.for i=j+1:nif( abs(A(i, j)) > abs(A(indiceF, j)) )indiceF = i;endend% Intercambiamos si es necesario.if(j ~= indiceF ) vectorTemporal = A(j, :); A(j, :) = A(indiceF, :); A(indiceF, :) = vectorTemporal;endfor i=j+1:n A(i,:) = A(i,:)+A(j,:)*(-A(i,j)/A(j,j));endend

% Sustitucin hacia atrs.for i=n:-1:1 X(i) = A(i,n+1);for j=i+1:n X(i) = X(i) - X(j)*A(i,j);end X(i) = X(i)/A(i,i);end

disp('Se ha encontrado el valor de las incgnitas: ')X Ntese que se obtiene el mayor valor absoluto, ya que conviene dividir entre -9 que dividir entre 0.00001, que es una situacin que podra ocurrir si la mayora de coeficientes ingresados son negativos.Y ahora probaremos el programa actualizado con un sistema de ecuaciones que dara error si usamos la primera versin del programa.

Dara error la primera versin por la presencia de ceros como pivotes en la matriz de coeficientes.

Ingresamos los coeficientes al programa.Y as mismo los valores para el vector Y.

As obtenemos el siguiente resultado:

Este resultado es correcto y puede comprobarse fcilmente reemplazando tales valores en el sistema de ecuaciones lineales.Dificultad #02. Error de redondeo.Este es el error menos fcil de evitar. Por ello, para evitar complejidades, luego de haber obtenido los valores de las incgnitas usando el programa antes presentado, no los mostraremos directamente como solucin, sino que antes haremos una comprobacin, reemplazando nosotros mismos tales valores (a travs del programa que estamos desarrollando) en las n ecuaciones y verificando que ello sea igual a cada elemento del vector Y ingresado. De ser as, mostramos la solucin sin duda alguna, y si no, advertiremos que los resultados pueden no ser los adecuados, por haberse cometido errores de redondeo.Para ello agregamos el siguiente fragmento de cdigo al final de nuestro programa:SonCorrectos = true;% Comprobacin de la consistencia de los datos.format longfor i=1:n S=0;for j=1:n S = S + M(i,j)*X(j);endif( abs(S - Y(i)) > 0.000000000000001 )fprintf('\nEvaluando los resultados, se ha encontrado que no se satisface la ecuacin %i (el resultado indica un valor de %f, en vez de %f).\n', i, S, Y(i))SonCorrectos = false;breakendendif(~SonCorrectos)disp('* Los resultados podran no ser los correctos, ya que se cometieron errores de redondeo.')endEncontrar errores de tal tipo no es muy frecuente, ya que Matlab tiene una alta precisin para tratar con nmeros reales, pues considera hasta 15 decimales.Si queremos ser verdaderamente rigursos bastara cambiar el contenido del if por una expresin que pregunte si los valores obtenidos son diferentes. Es decir, cambiar:( abs(S - Y(i)) > 0.000000000000001 )por esto otro: ( S ~= Y(i) )

Dificultad #03. Sistema mal condicionado.Un sistema mal condicionado ocurre cuando entre los coeficientes ingresados existe una variacin muy pequea (relativamente). Un ejemplo de ello es el siguiente sistema de 2 ecuaciones lineales:

Dicho sistema tiene como solucin . Sin embargo, si se cometiera algn mnimo error en los clculos, como considerar en vez de , la solucin obtenida sera totalmente extraa si la comparamos con la obtenida analticamente: .El problema ocurre cuando la determinante de la matriz de coeficientes es muy pequea. Y ello no se soluciona multiplicando las ecuaciones por alguna constante. Ya que si nuestro sistema fuera:

An seguira estando mal condicionado. El punto es que, segn esta ltima forma, el determinante es -20 y como no es un nmero muy pequeo, no delata instantneamente que se trate de un sistema mal condicionado.Entonces siempre debemos escalar la matriz de coeficientes y obtener luego el determinante. Escalar consiste en realizar divisiones a las ecuaciones que conforman el sistema, sin alterar las igualdades que precisan, y de modo que el mayor coeficiente resulte siendo 1.Aplicando ello al ejemplo que mostramos antes, obtendramos:

Y el determinante de la matriz de coeficientes escalada sera: Para dar solucin a esto en nuestro programa, podramo seguir una serie de pasos: encontrar el mayor coeficiente en la matriz de coeficientes ingresada por el usuario (el mayor valor absoluto), dividir toda la matriz entre dicho nmero y calcular el determinante. Sera recomendable hacer todo ello en una matriz temporal, para no afectar la ingresada originalmente, e indicar si el sistema est mal condicionado o no antes de realizar los clculos para obtener la solucin al sistema. Incluso esto ltimo sera cancelado.El fragmente de cdigo va justo antes de formar la matriz ampliada:% Escalamos la matriz de coeficientes.% Nos aseguramos de que no tenga un determinante muy pequeo.T = M; % Matriz auxiliar para no afectar la original.mayor = abs(T(1, 1));for i=1:nfor j=1:nif(abs(T(i, j)) > mayor) mayor = abs(T(i, j));endendendfor i=1:n T(i, :) = T(i, :)/mayor;endif(abs(det(T)) 0.001 iteracion=i;x1=(-2/5)*y0+1/5; y1=1/4*x0; disp([x1,y1,error])%errores e1=x0-x1; e2=y0-y1;

error1=abs(e1); error2=abs(e2);

if(error1>error2) error=error1; x0=x1; y0=y1; i=i+1;else error=error2; x0=x1; y0=y1;i=i+1;endend

RESULTADOS

x1 y1 error------------------------------ -0.6000 0.2500 1.0000

0.1000 -0.1500 1.7500

0.2600 0.0250 0.7000

0.1900 0.0650 0.1750

0.1740 0.0475 0.0700

0.1810 0.0435 0.0175

0.1826 0.0452 0.0070

0.1819 0.0457 0.0017

3. Explicar el Mtodo de Gauss Seidel a travs de un ejemplo (hacer el ejemplo en MATLAB).Mtodo de Gauss SeidelEs unmtodo iterativo, es decir debe aplicarse recursivamente hasta encontrar una solucin adecuadao con un error considerable, este mtodo es utilizado para resolversistemas de ecuaciones lineales, el mtodo se llama as en honor a los matemticos alemanes Carl Friedrich GaussyPhilipp Ludwig von Seidel.Para dar solucin a un sistema de ecuaciones se debe tener un en cuenta que el cual el nmero de variables y el nmero de ecuaciones obligatoriamente tienen que ser iguales para que el sistema tenga soluciones y adems estas sean nicas.Los pasos a seguir para utilizar este mtodo son:Verificar que el sistema de ecuaciones sea convergentePara utilizar este mtodo tenemos que asegurarnos que la matriz compuesta por todos los coeficientes de las variables sea diagonalmente dominante, es decir cada elemento en valor absoluto de la diagonal principal debe de ser mayor a la suma de todos los elementos que pertenecen a la misma fila (suma en valores absolutos) y adems debe de ser mayor a la suma de todos los elementos que pertenecen a la misma columna (suma en valores absolutos), es decir:Definir valores inicialesSe deben asignar valores arbitrarios a las variables, las cuales se sustituirn luego al momento de despejar las ecuaciones.

Despejar las incgnitasSe despejan las incgnitas que se encuentran en la diagonal principal, previamente debmos de asegurarnos que el sistema sea convergente, de esa manera nos aseguramos que el sistema podr ser resuelto con pocas iteraciones.

Resolver las ecuaciones despejadasSe reemplazarn los valores arbitrarios previamente fijados, el proceso se realizar en la primera ecuacin despejada, obteniendo un nuevo valor para la variable que se encuentra como primer elemento de la diagonal principal, luego este valor hallado se convertir en el nuevo valor fijado para la primera variable de la diagonal principal y este valor ser reemplazado en las otras ecuaciones despejadas y este proceso se seguir realizando hasta que todas las variables despejadas tengan un nuevo valor fijado.

Verificar que los valores finales de las variables satisfacen el sistema de ecuacionesEn este pas quedar verificado que el mtodo se realiz exitosamente siempre y cuando cada valor de las variables satisfagan a todas las ecuaciones que conforman el sistema.

En esta presentacin primero resolveremos un problema de manera aritmtica y luego procedermos a realizar un programa en MATLAB, con el objetivo de verificar el procedimiento seguido y los resultados obtenidos.Como problema de aplicacin resolveremos el siguiente sistema de ecuaciones lineales conformado por 4 variables.

Matriz de coeficientes del sistema de ecuaciones

Al verificar que el sistema sea convergente, hicimos cambios de filas y el modelo final convergente es el siguiente.

Dado que M ya es una matriz diagonalmente dominante, entonces se procede con el segundo paso y los valores iniciales definidos son:Valores iniciales:

Como parte del paso nmero tres procedemos a realizar los despejes respectivos de cada variable de la diagonal principal, es decir:

Una vez comprobado que la matriz de coeficientes del sistema es diagonalemnte dominate adems despus de haber fijado los valores iniciales de las variables , procedemos a resolver las ecuaciones depejadas para obtener los valores exactos o los ms prximos de las variables.Primera iteracin

Valores iniciales:

Ahora el nuevo , esta es la diferencia primordial con el mtodo de Jacobi el cul no utiliza los datos actualizados de las variables ya utilizadas. Sin embargo el mtodo de Gauss Seidel si lo hace dado que de esta manera se van a dar un menor nmero de iteraciones y la convergencia a los valores de las variables ser ms rpido.

Ahora

Ahora

Ahora

Segunda iteracin

Valores iniciales:

.9848Ahora

Ahora

Ahora

Ahora

4.8856Tercera iteracinValores iniciales:

Ahora

Ahora

Ahora

Ahora

2.7807Y as sucesivamente se proseguir hasta que el error sea menor que la tolerancia establecida.Obtenindose como resultados los siguientes valores.

X = 8.497156Y = -11.777018Z = -5.810079W = 9.051724

Y como ltimo paso procedemos a verificar que los valores obtenidos satisfacen las ecuaciones del sistema. Reemplazando los valores en cada una de las ecuaciones.1ra ecuacin

Como vemos el resultado no es exacto, pero s es el ms cercano posible, por consiguiente los datos obtenidos si satisfacen la primera ecuacin con una tolerancia tol=0.00001

2da ecuacin

Como vemos el resultado no es exacto, pero s es el ms cercano posible, por consiguiente los datos obtenidos si satisfacen la segunda ecuacin con una tolerancia tol=0.00001

3ra ecuacin

Como vemos el resultado no es exacto, pero s es el ms cercano posible, por consiguiente los datos obtenidos si satisfacen la tercera ecuacin con una tolerancia tol=0.00001

4ta ecuacin

Como vemos el resultado no es exacto, pero s es el ms cercano posible, por consiguiente los datos obtenidos si satisfacen la cuarta ecuacin con una tolerancia tol=0.00001

En conclusin los valores obtenidos para cada variable s cumplen con las cuatro ecuaciones del sistema con una tolerancia tol=0.00001 por consiguiente estos valores estn correctamente obtenidos.Ahora proseguiremos a realizar el programa mencionado anteriormente para resolver el sistema de ecuaciones planteado al inicio.

clc,cleartol =0.00001;error=100;

%Valores iniciales de las variables del sistemaX0=0;Y0=0;Z0=0;W0=0;%Contador del nmero de iteracionesi=0;

disp('_______________________________________________________________')disp(' i X Y Z W error ')disp('_______________________________________________________________')

while(error>tol)i=i+1;%Variables despejadas X1=(50-5*Y0+Z0-2*W0)/10; d1=X1-X0;%Error con respecto a ala variable X X0=X1;

Y1=(85+X0-2*Z0+4*W0)/-12; d2=Y1-Y0;%Error con respecto a ala variable Y Y0=Y1;

Z1=(60-4*X0-3*Y0-W0)/-9; d3=Z1-Z0;%Error con respecto a ala variable Z Z0=Z1;

W1=(120-X0+2*Y0-2*Z0)/11; d4=W1-W0;%Error con respecto a ala variable W W0=W1;

%Clculo del error con respecto a las 4 variables error=sqrt((d1)^2+(d2)^2+(d3)^2+(d4)^2); disp([i X1 Y1 Z1 W1 error])enddisp('_______________________________________________________________')disp(' ');

disp('SOLUCIN DEL SISTEMA')disp(' ');fprintf('X = %f',X1)disp(' ');fprintf('Y = %f',Y1)disp(' ');fprintf('Z = %f',Z1)disp(' ');fprintf('W = %f',W1)disp(' ');disp(' ')

Como ltimo paso con relacin al uso del programa, procederemos a verificar si los valores obtenidos para cada variable satisfacen las 4 ecuaciones del sistema.1ra ecuacin

Como vemos el resultado con el programa es ms exacto, por consiguiente los datos obtenidos si satisfacen la primera ecuacin con una tolerancia tol=0.00001

2da ecuacin

Como vemos el resultado con el programa es ms exacto, por consiguiente los datos obtenidos si satisfacen la segunda ecuacin con una tolerancia tol=0.00001

3ra ecuacin

Como vemos el resultado con el programa es ms exacto, por consiguiente los datos obtenidos si satisfacen la tercera ecuacin con una tolerancia tol=0.00001

4ta ecuacin

Como vemos el resultado con el programa es ms exacto, por consiguiente los datos obtenidos si satisfacen la cuarta ecuacin con una tolerancia tol=0.00001

En conclusin los valores obtenidos para cada variable a travs del programa s cumplen con las cuatro ecuaciones del sistema con una tolerancia tol=0.00001 por consiguiente estos valores estn correctamente obtenidos.4. Explicar el Mtodo del Punto Fijo Multivariable y sus tipos a travs de ejemplos (hacer los ejemplos en MATLAB).METODO DEL PUNTO FIJO MULTIVARIABLEEl sistema es transformado en el conjunto de ecuaciones:

Mediante la aplicacin de operaciones algebraicas vlidas. A cada una de estas ecuaciones se les aplica el mtodo iterativo del punto fijo:

Se comienza con una estimacin inicial , la cual es sustituida en las ecuaciones resultando una nueva aproximacin . Estas funciones son evaluadas en para generar . Este procedimiento es repetido para calcular las aproximaciones . En el momento en que se cumpla alguno de los criterios de convergencia usuales, se termina el proceso iterativo.EJEMPLO:Encuentre una solucin aproximada del sistema siguiente:

Primero graficaremos el sistema con ayuda del MATLAB:x=-3:0.1:10;y=-4:0.1:8;[x,y]=meshgrid(x,y);f1=x.^2+y.^2-8*x-6*y+5;contour(x,y,f1,[0,0],'b')f2=x.^2+y.^2-6*x-16*y+9;hold oncontour(x,y,f2,[0,0],'r')grid onhold off

Despejamos de :Despejamos de :Al derivar parcialmente, se obtiene:Y evaluadas en y :Ahora verificamos la convergencia:Se observa que si satisface el criterio de convergencia entonces pasaremos a desarrollar el sistema por los dos mtodos que presenta el mtodo del punto fijo multivariable:

Por Desplazamientos Simultaneos:1ra iteracin:Tomaremos como valores iniciales y como se analiz antes:

Calculamos el error:Como la distancia entre y es mayor que , se requiere de otra iteracin ms:2da iteracin:

Calculamos el error:3ra iteracin:

Calculamos el error:Y as se seguirn haciendo iteraciones hasta llegar a un valor tol)x1=(x^2+y^2-6*y+5)/8; y1=(x^2+y^2-6*x+9)/16; error=sqrt((x1-x)^2+(y1-y)^2); disp([x1,y1,error]) x=x1;y=y1;end

x y error ==================== 0.6250 0.5625 0.8409 0.2915 0.3723 0.3839 0.3737 0.4672 0.1255 0.3194 0.4447 0.0588 0.3289 0.4615 0.0193 0.3190 0.4592 0.0101 0.3197 0.4624 0.0032 0.3177 0.4624 0.0020 0.3176 0.4630 0.0007 0.3171 0.4631 0.0004 0.3170 0.4633 0.0002 0.3169 0.4633 0.0001 0.3169 0.4633 0.0000

Por Desplazamientos Sucesivos:

1ra iteracin:Tomaremos como valores iniciales y como se analiz antes:

Calculamos el error:Como la distancia entre y es mayor que , se requiere de otra iteracin ms:2da iteracin:

Calculamos el error:3ra iteracin:

Calculamos el error:Y as se seguirn haciendo iteraciones hasta llegar a un valor tol)x1=(x^2+y^2+8)/10; y1=(x1*y^2+x1+8)/10; error=sqrt((x1-x)^2+(y1-y)^2); disp([x1,y1,error]) x=x1;y=y1;end

x y error--------------------------------0.8000 0.8800 1.18930.9414 0.9670 0.16610.9821 0.9901 0.04680.9945 0.9969 0.01410.9983 0.9990 0.00440.9995 0.9997 0.00140.9998 0.9999 0.0004 0.9999 1.0000 0.00011.0000 1.0000 0.0000

5. Resolver los 3 sistemas de ecuaciones no lineales por los tipos de Mtodos de Sistemas de Ecuaciones No Lineales estudiados en clase (resueltos los sistemas en MATLAB).Algoritmos a usar en el ejercicio.Mtodo del punto fijo multivariable con desplazamientos sucesivos:%METODO DEL PUNTO FIJO MULTIVARIABLE%Desplazamientos sucesivosi=1;clc;clear;disp('METODO DEL PUNTO FIJO MULTIVARIABLE')disp('Valores iniciales:')x=0y=2error=10;tol=0.0001;disp('resultados de la iteraciones')disp(' x y error')while(error>tol) fprintf('Iteracion %i: ',i)x1=(1+sin(x*y))/(2); y1=sqrt((2-x)/2); error=sqrt((x1-x)^2+(y1-y)^2); disp([x1,y1,error]) x=x1;y=y1;i=i+1;enddisp('RESULTADO')disp('---------')x1,y1,error

Mtodo de Newton Raphson modificado:%METODO DE NEWTON RAPHSON MODIFICADOclc;clear;disp('METODO DE NEWTON RAPHSON MODIFICADO')x0=0.1;y0=-1;error=10;tol=0.01;f1='x*y*(0.41-exp(x)+exp(y))-x^2+y^2-1.34';f2='x*y-(0.41-exp(x)+exp(y))^2-0.09';syms xyz1=diff(f1,x);z2=diff(f2,y);disp(' x y error')while(error>tol)x=x0;y=y0; x1=x0-eval(f1)/eval(z1);x=x1;y1=y0-eval(f2)/eval(z2);error=sqrt((x1-x)^2+(y1-y)^2);disp([x1,y1,error])x0=x1;y0=y1;enddisp('Resultado')disp('---------')x1,y1,error

Mtodo de Newton Raphson:%METODO DE NEWTON RAPHSON PARA RESOLVER SISTEMAS DE ECUACIONES NO LINEALESclc;clear;disp('METODO DE NEWTON RAPHSON PARA RESOLVER SISTEMAS DE ECUACIONES NO LINEALES')x0 = 1;y0 = 1;tol=0.01;error=100;f='x*y*(0.41-exp(x)+exp(y))-x^2+y^2-1.34';g='x*y-(0.41-exp(x)+exp(y))^2-0.09';syms xyz11=diff(f,x);z12=diff(f,y);z21=diff(g,x);z22=diff(g,y);disp(' x1 y1 error');while(error>tol)x=x0;y=y0;F=[eval(f);eval(g)];J=[eval(z11) eval(z12) eval(z21) eval(z22)];X0=[x0;y0];X1=X0-(inv(J)*(F));error=sqrt((X1(1)-X0(1))^2-(X1(2)-X0(2))^2);disp([X1',error])x0=X1(1);y0=X1(2);enddisp('Resultado')disp('---------')X1,error

Funcin del mtodo de Newton Raphson:function [sol,iter,jac]=NewtonSENL(f,x0,tol,c)i=0;jac=jacobian(f);vars=findsym(f);deltaX=x0;iter=[x0' 0];while(norm(deltaX)>norm(x0)*tol && itol)x=x0;y=y0;G=[eval(z1);eval(z2)];H=[eval(h11) eval(h12) eval(h21) eval(h22)];X0=[x0;y0];X1=X0-inv(H)*G;error=norm(X1-X0);disp([X1',error])x0=X1(1);y0=X1(2);enddisp('RESULTADO')disp('---------')X1(1),X1(2),errordisp('COMPROBACION')disp('---------')if(det(H)>0 && H(1)>0) fprintf('x= %f y y=%f es el minimo de la funcin.',X1(1),X1(2))elseif(det(H)>0 && H(1)0 && H(1)>0) fprintf('x= %f y y=%f es el minimo de la funcin.',X1(1),X1(2))elseif(det(H)>0 && H(1)