Informe de Metodos Numericos

Embed Size (px)

Citation preview

MTODOS NUMRICOS

UNIVERSIDAD NACIONAL DE MOQUEGUA[MTODOS NUMRICOS]

INFORME DE METODOS NUMERICOSSolucin de Ecuaciones no LinealesMtodos acotados1. Mtodo de la biseccin

Objetivo: Hallar ceros de funciones continuas; Ir acercando sistemticamente los extremos del intervalo hasta que obtengamos un intervalo de anchura suficiente pequea en el que se localiza un cero.

Variables de entrada: y Variables de salida: xr Variables auxiliares: t,q,xl,xu Uso del programa y Programa:function [ xr ] = biseccion( y ) %la funcin recibe una funcin y que depende de x%este programa retorna el valor de la raz de una%funcin%con un error aproximado del 0.000001%%recibe la funcin simblica dependiente de x%se hace un anlisis, graficando la funcin, para poder% elegir bien el intervalo clc, clear syms x t=linspace(-50,50,10000);q=subs(y,t);plot(t,q)grid on %se pide el ingreso de los limitesxl=input('Ingrese el limite inferior: ');xu=input('Ingrese el limite superior: ');xr=0;error=100; if ((subs(y,xu)*subs(y,xl))>0)%sentencia de control para descartar el intervalo disp(' ') disp('Intervalo no valido para hallar la raiz') error=0.00001; xr=NaN;end%se inicia el metodo de biseccion, con un ciclo en este caso while y%error=0.000001%while (abs(error)>0.000001 %Aqui podemos modificar el error aux=xr; xr=(xl+xu)/2; fxl=subs(y,xl); %se evalua la funcion en XL fxr=subs(y,xr); %se evalua la funcion en Xr h=fxl*fxr; %se multiplican los reultados para f(Xr)*f(XL) if (h0) xl=xr; else error=0.000001; %en caso de que h=0 se terminan las iteraciones end error=((xr-aux)/xr)*100; %se calcula el error relativo aproximadoendend

Ejemplo:

2. Mtodo de Regula-Falsi

Objetivo:

Construir una sucesin de intervalos [an,bn] cada uno de los cuales contiene un cero.

Variables de entrada: def, xo, x1, tol Variables de salida: x Variables auxiliares: no hay Uso del programa y Programa:function raiz=falsa(def,x0,x1,tol)%Metodo de la cuerda o Regla-falsa%def es la funcion 'ingresada' %x0,x1 son los limites%tol es la Toleranciaf=inline(def);if f(x0)*f(x1)tol x=x1-f(x1)*((x1-x0)/(f(x1)-f(x0))); if f(x0)*f(x)=tolerancia %condicin de terminacin cuando el error sea menor a la tolerancia X1 = Xn - (subs(Y,Xn)/subs(Ydx,Xn));%formula de Newton-Raphson error = abs((X1-Xn)/X1);%calculo del errorXn=X1; %asignacin del nuevo valor de Xn para la siguiente iteracin endend Ejemplo:

2. Mtodo de la secante

Objetivo: Similar al mtodo de regula falsi, es un mtodo paraencontrar los cerosde una funcin de forma iterativa. Es una variacin delmtodo de Newton-Raphsondonde en vez de calcular la derivada de la funcin en el punto de estudio, teniendo en mente la definicin de derivada, se aproxima la pendiente a la recta que une la funcin evaluada en el punto de estudio y en el punto de la iteracin anterior.

Variables de entrada: Variables de salida: xa Variables auxiliares: t Uso del programa y Programa:

%Implementacin del mtodo de la secante en Matlab function [Xa] = Secante () syms xy = input('Ingrese la funcin: '); % espacio opcional en el que hacemos una pre visualizacinsup = input('Ingrese el lmite superior para ver la grfica: ');infe = input('Ingrese el lmite inferior para la visualizacin: ');t = linspace(infe,sup,700);plot(t,subs(y,t))grid onclc %continuamos con el mtodo y pedimos dos valores iniciales, para Xo y X1Xo=input('Ingrese un valor para Xo: ');X1=input('Ingrese un valor para X1: '); %definimos las variables necesariaserror = 100; %valor arbitrariotolerancia=0.00001; %valor arbitrario que puede ser modificado o pedido al usuario while error>tolerancia %condicin para continuar el ciclo el error debe ser minimo Xa=X1-(( subs(y,X1)*(Xo-X1) )/( subs(y,Xo)-subs(y,X1) )); %Xa representa la varible Xn+1 error = abs((Xa-X1)/Xa); %el error siempre va en valor absoluto %reasignamos los valores de las variables para continuar iterando Xo = X1; X1 = Xa;end end Ejemplo:

Sistemas lineales1. Mtodo de Cramer

Objetivo:

Demostrar la regla de Cramer que permite resolver sistemas cuadradas de ecuaciones lineales usando determinantes.

Variables de entrada: A, m Variables de salida: x Variables auxiliares: dA,B Uso del programa y Programa:%METODO DE CRAMERfunction x=cramer(A,m)%A es la matriz de coeficientes%m es el vector de constantesdA=det(A);if dA==0 x='El sistema no tiene solucion'; return;end;n=length(m);for i=1:n B=A; B(:,i)=m; x(i)=det(B)/dA;endx=x';

Ejemplo:

2. Sustitucin Regresiva

Objetivo: El objetivo es construir un sistema triangular superior equivalente UX = Y que podamos resolver usando el mtodo de la seccin anterior.

Variables de entrada: A, B Variables de salida: x Variables auxiliares: n,k Uso del programa y Programa:

function[x]=backsub(A,B)%A matriz triangular superior nxn%B matriz de orden n*1%x la solucion del sistema lineal Ax=Bn=length(B);x=zeros(n,1);x(n)= B(n)/A(n,n);for k=n-1:-1:1 x(k)=(B(k)-A(k,k+1:n)*x(k+1:n))/A(k,k);endend

Ejemplo:

3. Mtodo de gauss

Objetivo: Conseguir que los coeficientes de la diagonal principal de un sistema sean unos y el resto de los coeficientes valgan cero.

Variables de entrada: A, B Variables de salida: X Variables auxiliares: C,N,j,q Uso del programa y Programa:function [X] = uptrbk(A,B)%UNTITLED4 Summary of this function goes here% Detailed explanation goes here[N N]=size(A);X=zeros(N,1);C=zeros(1,N+1);Aug=[A B];for q=1:N-1 [Y,j]=max(abs(Aug(q:N,q))); C=Aug(q,:); Aug(j+q-1,:)=C;if Aug(q,q)==0 'A es singular. No hay solucion o no es unica' breakendfor k=q+1:N m=Aug(k,q)/Aug(q,q); Aug(k,q:N+1)=Aug(k,q:N+1);end end X=backsub(Aug(1:N,1:N),Aug(1:N,N+1)); end

Ejemplo:

4. Factorizacin triangular

Objetivo: El objetivo de este mtodo es factorizar la matrizAcomo el producto de un matriz triangular inferiorLy una matriz triangular superiorU; y despus resolver el sistemaAX=ben dos etapas como se muestra a continuacinAX=b, comoA=LUentonces (LU)X=bL(UX)=b, si se tomaUX=Yresulta LY=b.

Variables de entrada: A, B Variables de salida: X Variables auxiliares: C,N,C,R.j.k Uso del programa y Programa:function [ X ] = lufact( A,B )%DATOS% -A es una matriz de orden N x N% -b es una matriz de orden N x 1%RESULTADO% - x ES LA MATRIZ DE ORDEN N x 1 % SOLUCION DE A

[N,N]=size(A);X=zeros(N,1);Y=zeros(N,1);C=zeros(1,N);R=1:N;for q=1:N-1% determinacin de la fila pivote para la columna q-sima[max1,j]=max(abs(A(q:N,q)));%Intercambio en las filas q-sima y j-simaC=A(q,:);A(q,:)=A(j+q-1,:);A(j+q-1,:)=C;d=R(q);R(q)=R(j+q-1);R(j+q-1)=d;if A(q,q)==0 'A es singular no hay solucion o es unica' breakend%calculo del multiplicador ,%que se guarda en la parte subdiagonal de Afor k=q+1:N mult=A(k,q)/A(q,q); A(k,q)=mult; A(k,q+1:N)=A(k,q+1:N)-mult*A(q,q+1:N);endend%resolucion para hallar YY(1)=B(R(1));for k=2:N Y(k)=B(R(k))-A(k,1:k-1)*Y(1:k-1);end%resolucion para hallar xX(N)=Y(N)/A(N,N);for k=N-1:-1:1 X(k)=(Y(k)-A(k,k+1:N)*X(k+1:N))/A(k,k);end end

Ejemplo:

Mtodos Iterativos para sistemas Lineales1. Mtodo de Jacobi

Objetivo: Encontrar las aproximaciones de los valores de las variables de un sistema de ecuaciones lineales, por medio de la realizacin de varios clculos, los cuales se realizan por etapas, obteniendo as aproximaciones por cada etapa.

Variables de entrada: A, B, P, delta, max1 Variables de salida: X Variables auxiliares: j,P Uso del programa y Programa:function [ X ] = jacobi( A,B,P,delta,max1 )%DATOS% - A es una matriz invertible de orden N x N% - B es una matriz de orden N x 1% - P es una matriz de orden N x 1 en el punto inicial% - delta es la tolerancia para P% - max1 es el numero maximo de iteraciones% RESULTADOS% - X es una matriz de orden N x 1 % - la aproximacion a la solucion de Ax = B% - generada por el metodo de iteraciones de jacobi N = length(B);for k=1:max1 for j=1:N X(j)=(B(j)-A(j,[1:j-1,j+1:N])*P([1:j-1,j+1:N]))/A(j,j); end err=abs(norm(X'-P)); relerr=err/(norm(X)+eps); P=X'; if (err0)b. TRAPECIO COMPUESTO(h0) [2] TRAPECIO COMPUESTO (h0)')disp('[2] TRAPECIO COMPUESTO(h