Вы находитесь на странице: 1из 81

UNIVERSIDAD JUREZ AUTNOMA DE TABASCO DIVISIN ACADMICA DE INGENIERA Y ARQUITECTURA Ingeniera Mecnica Elctrica

MTODOS NUMRICOS

Profesor: Luis Adolfo Meja Vzquez Alumna: Sonia Mariel Garca Daz Grupo: I Matrcula: 102D18074

NDICE

1. Introduccin Matlab Error de aproximacin Anlisis numrico 2. Solucin de ecuaciones algebraicas y trascendentales Mtodo de aproximaciones sucesivas Mtodo de biseccin Mtodo de Newton-Raphson 3. Solucin de sistemas de ecuaciones lineales Mtodo de Gauss Mtodo de Jordan Mtodo de Jacobi Mtodo de Seidel 4. Integracin numrica Mtodo de los trapecios Mtodo de Simpson 1/3 5. Solucin numrica de ecuaciones diferenciales Mtodo de Euler Mtodo de Heun Mtodo de Nystrom Mtodo de Runge-Kutta 6. Aproximacin funcional Mnimos cuadrados

INTRODUCCIN

La enseanza de los mtodos numricos, actualmente se encuentra ntimamente ligada a la construccin de sistemas matemticos de alta precisin y exactitud. De ah que sta haya evolucionado sobre todo para satisfacer las necesidades y requerimientos de los instrumentos de control numrico, diseo de ingeniera, y en muchos otros de los campos cientficos. La mayor parte de los ingenieros dependen de herramientas de tipo robtico, que requieren de aproximaciones cada vez ms exactas y precisas. Es, por tanto, deseable que a la par de la enseanza terica de los mtodos numricos, vaya la enseanza de un lenguaje de programacin de alto nivel, que permita escribir directamente todos los algoritmos matemticos que se van desarrollando durante el curso. En el caso del presente trabajo se utiliza el Matlab, por ser un sistema matemtico, muy flexible y relativamente sencillo de utilizar. Matlab Algunas cosas que uno debe de saber de Matlab son: Las minsculas y las maysculas no son equivalentes Un punto y coma al final del comando har que no se vea en la pantalla el resultado Matlab utiliza parntesis () y corchetes [], los cuales no son intercambiables

Algunos comandos que utilizaremos son: plot() crea un grfico a partir de vectores y/o columnas de matrices, con escalas lineales sobre ambos ejes grid cuadrcula function nombre de la funcin o fichero *.m limits es un vector de 2 o 4 elementos, cuyos valores son [xmin, xmax] o [xmin, xmax, ymin, ymax] tol tolerancia de error relativo. Por defecto 2e-03 eval(cadena de caracteres) evala como expresin de Matlab el texto entre apostrofes feval(nombre_funcin, calcular(a,b,c) argumentos) feval(calcular, a, b, c) equivale a

inline transforma en funcin una cadena de caracteres input permite imprimir un mensaje en la lnea de comandos de Matlab y recuperar como valor de retorno un valor numrico o el resultado de una expresin tecleada por el usuario disp permite imprimir en pantalla un mensaje de texto o el valor de una matriz, pero sin imprimir su nombre. En realidad, disp siempre imprime vectores y/o matrices: las cadenas de caracteres son un caso particular de vectores norm norma de un vector zeros devuelve un vector o matriz de ceros Cmo introducir un vector de filas o de columnas: u = [2 4 5] tiene una fila con tres elementos (matriz de 1 x 3). v = [2; 4; 5] tiene tres filas separadas por puntos y comas (matriz de 3 x 1). v = [2 4 5]' o v = u' transpone u para generar la misma v. w = 2:5 define el vector de filas w = [2 3 4 5] mediante valores que aumentan sucesivamente en una unidad. u = 1:2:7 asigna valores que aumentan en dos unidades para obtener u = [1 3 5 7] Cmo definir una matriz (introduciendo las filas una por una): A = [1 2 3; 4 5 6] tiene dos filas (el punto y coma siempre separa unas filas de otras). B = [1 2 3; 4 5 6]' es la transpuesta de A. As pues, AT es A' en MATLAB. Cmo generar matrices especiales diag(v) genera una matriz diagonal con el vector v como diagonal. toeplitz(v) define una matriz simtrica de diagonal constante con v como primera fila y primera columna. toeplitz(w, v) define una matriz simtrica de diagonal constante con w como primera columna y v como primera fila. ones(n) genera una matriz de n n con todos los valores iguales a uno.

zeros(n) genera una matriz de n n con todos los valores iguales a cero. eye(n) genera una matriz identidad de n n. rand(n) genera una matriz de n n con elementos de valor aleatorio entre 0 y 1 (distribucin uniforme). randn(n) genera una matriz de n n cuyos elementos siguen una distribucin normal (media 0 y varianza 1). ones(m,n), zeros(m,n), rand(m,n) generan matrices de m n. ones(size(A)), zeros(size(A)), eye(size(A)) generan matrices de la misma forma que A. Error de aproximacin El error de aproximacin o error numrico es una medida del ajuste o clculo de una magnitud con respecto al valor real o terico que dicha magnitud tiene. Un aspecto importante de los errores de aproximacin es su estabilidad numrica. Dicha estabilidad se refiere a cmo dentro de un algoritmo de anlisis numrico el error de aproximacin es propagado dentro del propio algoritmo. El concepto de error es consustancial con el clculo numrico. En todos los problemas es fundamental hacer un seguimiento de los errores cometidos a fin de poder estimar el grado de aproximacin de la solucin que se obtiene. Los errores asociados a todo clculo numrico tienen su origen en dos grandes factores: Aquellos que son inherentes a la formulacin del problema. Los que son consecuencia del mtodo empleado para encontrar la solucin del problema.

Dentro del grupo de los primeros, se incluyen aquellos en los que la definicin matemtica del problema es slo una aproximacin a la situacin fsica real. Estos errores son normalmente despreciables; por ejemplo, el que se comete al obviar los efectos relativistas en la solucin de un problema de mecnica clsica. En aquellos casos en que estos errores no son realmente despreciables, nuestra solucin ser poco precisa independientemente de la precisin empleada para encontrar las soluciones numricas. Otra fuente de este tipo de errores tiene su origen en la imprecisin de los datos fsicos: constantes fsicas y datos empricos. En el caso de errores en la medida de los datos empricos y teniendo en cuenta su carcter generalmente aleatorio,

su tratamiento analtico es especialmente complejo pero imprescindible para contrastar el resultado obtenido computacionalmente. En lo que se refiere al segundo tipo de error (error computacional), tres son sus fuentes principales: 1. Equivocaciones en la realizacin de las operaciones (errores de bulto). Esta fuente de error es bien conocida por cualquiera que haya realizado clculos manualmente o empleando una calculadora. El empleo de computadores ha reducido enormemente la probabilidad de que este tipo de errores se produzcan. Sin embargo, no es despreciable la probabilidad de que el programador cometa uno de estos errores (calculando correctamente el resultado errneo). Ms an, la presencia de bugs no detectados en el compilador o en el software del sistema no es inusual. Cuando no resulta posible verificar que la solucin calculada es razonablemente correcta, la probabilidad de que se haya cometido un error de bulto no puede ser ignorada. Sin embargo, no es esta la fuente de error que ms nos va a preocupar. 2. El error causado por resolver el problema no como se ha formulado, sino mediante algn tipo de aproximacin. Generalmente est causado por la sustitucin de un infinito (sumatorio o integracin) o un infinitesimal (diferenciacin) por una aproximacin finita. Algunos ejemplos son: El clculo de una funcin elemental (por ejemplo, Seno x) empleando slo n trminos de los infinitos que constituyen la expansin en serie de Taylor. Aproximacin de la integral de una funcin por una suma finita de los valores de la funcin, como la empleada en la regla del trapezoide. Resolucin de una ecuacin diferencial reemplazando las derivadas por una aproximacin (diferencias finitas). Solucin de la ecuacin f(x) = 0 por el mtodo de Newton-Raphson: proceso iterativo que, en general, converge slo cuando el nmero de iteraciones tiende a infinito. Denominaremos a este error, en todas sus formas, como error por truncamiento, ya que resulta de truncar un proceso infinito para obtener un proceso finito. Obviamente, estamos interesados en estimar, o al menos acotar, este error en cualquier procedimiento numrico. 3. Por ltimo, la otra fuente de error de importancia es aquella que tiene su origen en el hecho de que los clculos aritmticos no pueden realizarse con precisin ilimitada. Muchos nmeros requieren infinitos decimales para ser representados correctamente, sin embargo, para operar con ellos es necesario redondearlos. Incluso en el caso en que un nmero pueda

representarse exactamente, algunas operaciones aritmticas pueden dar lugar a la aparicin de errores (las divisiones pueden producir nmeros que deben ser redondeados y las multiplicaciones dar lugar a ms dgitos de los que se pueden almacenar). El error que se introduce al redondear un nmero se denomina error de redondeo. Anlisis numrico El anlisis numrico o clculo numrico es la rama de las matemticas que se encarga de disear algoritmos para, a travs de nmeros y reglas matemticas simples, simular procesos matemticos ms complejos aplicados a procesos del mundo real. El anlisis numrico proporcionar todo el andamiaje necesario para llevar a cabo todos aquellos procedimientos matemticos susceptibles de expresarse algortmicamente, basndose en algoritmos que permitan su simulacin o clculo en procesos ms sencillos empleando nmeros. Definido el error, junto con el error admisible, pasamos al concepto de estabilidad de los algoritmos. Muchas de las operaciones matemticas pueden llevarse adelante a travs de la generacin de una serie de nmeros que a su vez alimentan de nuevo el algoritmo (feedback). Esto proporciona un poder de clculo y refinamiento importantsimo a la mquina que a medida que va completando un ciclo va llegando a la solucin. El problema ocurre en determinar hasta cundo deber continuar con el ciclo, o si nos estamos alejando de la solucin del problema. Finalmente, otro concepto paralelo al anlisis numrico es el de la representacin, tanto de los nmeros como de otros conceptos matemticos como los vectores, polinomios, etc. Por ejemplo, para la representacin en ordenadores de nmeros reales, se emplea el concepto de coma flotante que dista mucho del empleado por la matemtica convencional. En general, estos mtodos se aplican cuando se necesita un valor numrico como solucin a un problema matemtico, y los procedimientos "exactos" o "analticos" (manipulaciones algebraicas, teora de ecuaciones diferenciales, mtodos de integracin, etc.) son incapaces de dar una respuesta. Debido a ello, son procedimientos de uso frecuente por fsicos e ingenieros, y cuyo desarrollo se ha visto favorecido por la necesidad de stos de obtener soluciones, aunque la precisin no sea completa.

SOLUCIN DE ECUACIONES ALGEBRAICAS Y TRASCENDENTALES

Una ecuacin es una expresin matemtica, que contiene trminos algebraicos, funciones trigonomtricas, funciones exponenciales, logartmicas, etc., nmeros y un signo de igual. Ejemplo: 3x2+6x-2=1 Existen diferentes tipos de ecuaciones, dependiendo de los trminos, las hay lineales como por ejemplo: 45y+26=73. En general se puede hablar de ecuaciones polinomiales de la forma:

Las ecuaciones trigonomtricas son las que tienen funciones trigonomtricas, ejemplo: sen(2x)+5x=2. Las ecuaciones logartmicas son las que tienen logaritmos, como por ejemplo: 5ln(3x)+10=1. En general se distinguen dos tipos de ecuaciones, las lineales y las no lineales. Una raz de una ecuacin es un nmero que satisface le ecuacin, es decir que si esta igualada a cero, una raz ser el nmero real o complejo que la hace cero. Ejemplo: la raz de la ecuacin 5x-1=0 ser 1/5 Una ecuacin lineal siempre tendr como raz un solo nmero real. Las ecuaciones no lineales pueden tener normalmente ms de una raz. Las races de las ecuaciones no lineales pueden ser reales o complejas. En este momento es importante mencionar que una de las partes importantes de los mtodos numricos es el clculo aproximado de las races de ecuaciones que no se pueden obtener por mtodos algebraicos. Los mtodos tienen la caracterstica de que bajo ciertas condiciones, se aproximan a las races de las ecuaciones, con un cierto error de aproximacin, hay tambin que considerar que hay ciertos mtodos que tienen algunas restricciones que dificultan su uso. La solucin de una ecuacin es el nmero, o conjunto de nmeros reales o complejos que, que al substituirlo en lugar de la variable satisface la igualdad Ejemplo la solucin de la ecuacin:

3x3+6x2+7x=0 es {-1+1.15i, -1-1.15i, 0} Como se podr observar a partir de este momento, por cada raz compleja, que es solucin de la ecuacin, se tiene su conjugado. Hay que observar que el nmero total de races que tiene un polinomio, corresponde al grado del trmino mayor del polinomio. En el ejemplo anterior, el grado del polinomio es tres, y tiene 3 races.

Mtodo de aproximaciones sucesivas El mtodo de aproximaciones sucesivas representa la esencia de los procesos iterativos ya que permite definir una ecuacin de recurrencia que, en apariencia, no tiene sentido desde el punto de vista algebraico, pero que resulta muy atinada si se toma un valor inicial y se mejora a travs de las iteraciones. Sin embargo, el mtodo como tal no es cien por ciento aplicable para cualquier ecuacin algebraica o trascendente; no obstante, se utiliza como base para completar otros mtodos abiertos. Definicin del mtodo Aproximaciones sucesivas es un mtodo abierto, es decir, no necesita de un intervalo que atrape a una raz, sino que requiere de un valor x 0 que representa un valor aproximado a la raz y de cuya cercana al valor real depender la velocidad en que se cumpla con una tolerancia preestablecida. Una forma sencilla de definir un mtodo de aproximaciones sucesivas consiste en despejar de una ecuacin a la variable independiente; esto se aplica particularmente en ecuaciones que por su forma no permiten despejar fcilmente a su incgnita. Por ejemplo, en la ecuacin x2+7x-ex=0 no puede lograrse un despeje sencillo, algebraicamente hablando. Desde un punto de vista iterativo, la ecuacin puede expresarse como:

En efecto, algebraicamente hablando, el despeje anterior no aporta mejora en la solucin de la ecuacin. Sin embargo, s se define en forma iterativa:

Donde xi es un valor inicial y xi+1 es un valor corregido que, en un escenario favorable, tendr una cantidad de error menor con respecto a la raz de la ecuacin. El proceso iterativo se detendr cuando entre dos aproximaciones sucesivas se satisfaga la tolerancia preestablecida.

La ecuacin que representa el mtodo de aproximaciones sucesivas expresada en forma iterativa es:

La aplicacin del mtodo consiste en proporcionar una aproximacin inicial a la raz de la ecuacin (que puede obtenerse por medios grficos o al detectar un cambio de signo en la funcin tabular) y sustituirla en la ecuacin, obtenindose una nueva aproximacin. De nuevo deber sustituirse la ltima aproximacin hasta que la diferencia entre dos aproximaciones sucesivas satisfaga determinada tolerancia preestablecida. La principal aportacin del mtodo de aproximaciones sucesivas es la determinacin del criterio de convergencia, ya que se debe aplicar a todos los mtodos abiertos o de punto fijo. Una manera de explicar los pasos para llegar a la raz de una ecuacin usando este mtodo sera la siguiente. Primero, tenemos nuestra ecuacin f(x). Proponemos un valor inicial x 1 y lo sustituimos en la ecuacin para encontrar y1. Despus le sumamos a x1 un x y obtenemos x2. Luego calculamos y2 sustituyendo x2 en la ecuacin. Ahora multiplicamos y1 por y2, si el resultado es positivo entonces quiere decir que entre x1 y x2 no hay raz por lo tanto x2 se vuelve x1 y y2 se vuelve y1 y volvemos a empezar sumando el x a x1 para encontrar nuestro siguiente x2. Cuando la multiplicacin de y1 y y2 nos d negativo entonces sabemos que en ese intervalo hay una raz y procedemos a dividir x entre 10. Y seguimos con el proceso iterativo hasta que nuestro x sea me nor o igual a la tolerancia.

Descripcin grfica

Algoritmo del mtodo Grado de la ecuacin G Coeficientes de la ecuacin ai 0iG x10 Dx1 Tolerancia0.01 Contador0 y1F(x1) Repetir x2x1+Dx y2F(x2) Si (y1*y2)>0 Entonces x1x2 y1y2 De lo contrario DxDx/10 ContadorContador+1 Hasta que (Dx<=Tolerancia) o (Contador>100)

Programacin en Matlab Nombre del programa: aproximaciones_sucesivas.m f=input('ingrese la funcion, entre apostrofos: '); x1=-10; %Valor inicial dx=1; tol=input('ingrese el valor de la tolerancia '); contador=0; f=inline(f); y1=feval(f,x1); while dx>tol contador=contador+1; x2=x1+dx; y2=feval(f,x2); z=y1.*y2; if z>0 x1=x2; y1=y2; else dx=dx/10; end end fprintf(' La raiz es: %1.8f\n Encontrada en %1.0f iteraciones\n ',x1,contador); Ejemplo en Matlab con la ecuacin 2+3x-5x2+8x3 Los valores de las races son {-0.3494168904, 0.4872+0.6914i, 0.4872-0.6914i} Se corre el programa con diferentes valores de tolerancia y vemos que entre ms pequea sea la tolerancia ms nos acercamos al valor real. Pero este mtodo es muy inexacto y necesita tener una tolerancia demasiado pequea para que nos d el resultado ms aproximado. >> aproximaciones_sucesivas ingrese la funcion, entre apostrofos: '2+3*x-5*x.^2+8*x.^3' ingrese el valor de la tolerancia 0.01 La raiz es: -0.40000000 Encontrada en 17 iteraciones >> aproximaciones_sucesivas ingrese la funcion, entre apostrofos: '2+3*x-5*x.^2+8*x.^3' ingrese el valor de la tolerancia 0.0001 La raiz es: -0.35000000 Encontrada en 24 iteraciones

>> aproximaciones_sucesivas ingrese la funcion, entre apostrofos: '2+3*x-5*x.^2+8*x.^3' ingrese el valor de la tolerancia 0.0000001 La raiz es: -0.34941690 Encontrada en 45 iteraciones >> Grfica de la ecuacin 2+3x-5x2+8x3 Nombre del programa: grafica.m f=input('ingrese la funcion, entre apostrofos: '); x=input('ingrese un intervalo en el que se graficara la ecuacion, en la forma [a:incremento:b]: '); f=inline(f); y=feval(f,x); close plot(x,y) grid Corremos el programa y nos muestra la grfica de la ecuacin donde podemos ver el intervalo en que se encuentra la raz. >> grafica ingrese la funcion, entre apostrofos: '2+3*x-5*x.^2+8*x.^3' ingrese un intervalo en el que se graficara la ecuacion, en la forma [a:incremento:b]: [-2:1:10] >>

Mtodo de biseccin El mtodo de biseccin se aplica a funciones algebraicas o trascendentes y proporciona nicamente races reales. Tiene su origen en un popular algoritmo de bsqueda de datos en arreglos vectoriales denominado bsqueda binaria. Es un mtodo cerrado, es decir, requiere de un intervalo en el cual est atrapada una raz. Bsicamente, consiste en cortar el intervalo en dos justo por la mitad (bisectar) considerando a este punto como una aproximacin de la raz de la funcin. Posteriormente, debe determinarse si la raz verdadera se encuentra a la derecha o a la izquierda de la aproximacin y, segn corresponda, cerrar el intervalo con la aproximacin y el limite derecho izquierdo, pero siempre manteniendo a la raz verdadera en el intervalo. Esta operacin se repite hasta que la diferencia entre las dos ltimas aproximaciones sea menor que una tolerancia preestablecida. Biseccin es un mtodo robusto, aunque resulta lento en su proceso por lo oneroso de los clculos que deben realizarse; por otra parte, su convergencia puede en ocasiones ser inestable. Definicin del mtodo A partir de una funcin algebraica o trascendente y de un intervalo [ a,b] que pertenece al dominio de la funcin y para el cual f(a)*f(b)<0, lo que implica que en el intervalo [a,b] existe al menos una raz. El mtodo consiste en bisectar el intervalo [a,b]:

Obteniendo una aproximacin a la raz x0; la funcin se evala en este nuevo valor y de acuerdo al signo de la funcin valuada en este punto, deber sustituirse uno de los extremos del intervalo de bsqueda, de tal forma que se conserve que f(a)*f(b)<0. De acuerdo a la geometra de la figura, la sustitucin de los intervalos deber hacerse de la siguiente forma. Sea a tal que f(a)>0 y b tal que f(b)<0: Si f(x0)>0, entonces x0 sustituye a a Si f(x0)<0, entonces x0 sustituye a b

En cada iteracin deber sustituirse alguno de los lmites del intervalo que contiene a la raz. Repitiendo este proceso, el intervalo se reduce paulatinamente hasta que alguna de las aproximaciones coincide razonablemente con la raz de la funcin. El proceso se detiene cuando, entre la aproximacin xi y la aproximacin anterior xi-1 se satisface un nivel de error (absoluto o relativo) preestablecido (tolerancia). Descripcin grfica

Algoritmo del mtodo Grado de la ecuacin G Coeficientes de la ecuacin ci 0iG Intervalo de la raz [a,b] Valor de la tolerancia x00 xf0 Contador0 Repetir ContadorContador+1 x0(a+b)/2 y0F(x0) Si y0<0 entonces ax0 De lo contrario bx0 error|(x0-xf)| x0xf Hasta que error >= tolerancia

Programacin en Matlab Nombre del programa: biseccion.m f=input('ingrese la funcion, entre apostrofos: '); x=input('ingrese un intervalo en el que se graficara la ecuacion, en la forma [a:incremento:b]: '); f=inline(f); y=feval(f,x); close plot(x,y) grid Conv = 1; while Conv >= 0 f=input('ingrese la funcion, entre apostrofos: '); x=input('ingrese el intervalo en que se encuentra la raiz, en la forma [a b]: '); f=inline(f); a=x(1); b=x(2); fa=feval(f,a); fb=feval(f,b); Conv = fa.*fb; end tol = input('\nTeclee el valor de la tolerancia tol = '); Error = tol+1; xo = 0; xf = 0; Cont = 0; %Comienzo del algoritmo iter=1; while Error >= tol Cont = Cont +1; xo=(a+b).*0.5; fxo=feval(f,xo); if fxo < 0 a=xo; else b=xo; end Error = abs(xo-xf); xf = xo; end fprintf(' La raiz es: %1.8f\n Encontrada en %1.0f iteraciones\n ',xo,Cont);

Ejemplo en Matlab con la ecuacin 3x3+3x2-x-1 Los valores de las races son {0.5773502692, -0.5773502692, -1} Se corre el programa con un intervalo aleatorio, y hasta que damos el intervalo correcto, el programa contina y nos da la raz. Ntese que en este programa ya se incluye la grfica de la ecuacin y con sta podemos ver en qu intervalo se encuentran las races, en vez hacerlo al tanteo. El programa se corre con distintos valores de tolerancia y distintos intervalos. >> biseccion ingrese la funcion, entre apostrofos: '3*x.^3+3*x.^2-x-1' ingrese un intervalo en el que se graficara la ecuacion, en la forma [a:incremento:b]: [0:1:10] ingrese la funcion, entre apostrofos: '3*x.^3+3*x.^2-x-1' ingrese el intervalo en que se encuentra la raiz, en la forma [a b]: [0 10] Teclee el valor de la tolerancia tol = 0.01 La raiz es: 0.57617188 Encontrada en 10 iteraciones >> >> biseccion ingrese la funcion, entre apostrofos: '3*x.^3+3*x.^2-x-1' ingrese un intervalo en el que se graficara la ecuacion, en la forma [a:incremento:b]: [0:1:10] ingrese la funcion, entre apostrofos: '3*x.^3+3*x.^2-x-1' ingrese el intervalo en que se encuentra la raiz, en la forma [a b]: [-5 3] Teclee el valor de la tolerancia tol = 0.0001 La raiz es: -1.00006104 Encontrada en 17 iteraciones >> >> biseccion ingrese la funcion, entre apostrofos: '3*x.^3+3*x.^2-x-1' ingrese un intervalo en el que se graficara la ecuacion, en la forma [a:incremento:b]: [0:1:10] ingrese la funcion, entre apostrofos: '3*x.^3+3*x.^2-x-1' ingrese el intervalo en que se encuentra la raiz, en la forma [a b]: [-1 5] ingrese la funcion, entre apostrofos: '3*x.^3+3*x.^2-x-1' ingrese el intervalo en que se encuentra la raiz, en la forma [a b]: [-2 0] ingrese la funcion, entre apostrofos: '3*x.^3+3*x.^2-x-1'

ingrese el [a b]: [-1 ingrese la ingrese el [a b]: [-3

intervalo en que se encuentra la raiz, en la forma 0] funcion, entre apostrofos: '3*x.^3+3*x.^2-x-1' intervalo en que se encuentra la raiz, en la forma 8]

Teclee el valor de la tolerancia tol = 0.0000001 La raiz es: 0.57735030 Encontrada en 27 iteraciones >> Grfica de la ecuacin 3x3+3x2-x-1 Como el programa biseccion.m ya incluye la grfica de la funcin, automticamente nos grafica la ecuacin que le introducimos con el intervalo que nosotros escogemos. Esta es la grfica de la ecuacin del ejemplo donde podemos observar que efectivamente hay una raz en el intervalo [0,1].

Mtodo de Newton-Raphson El mtodo Newton-Raphson es, junto con biseccin uno de los ms populares. Su preferencia radica en su robustez y velocidad al encontrar la raz. Por ser un mtodo abierto o de punto fijo, debe verificarse su criterio de equivalencia. Quiz el nico punto que pudiera tener en contra radica en la necesidad de contar con la primera y segunda derivadas de la ecuacin a resolver. Se aplica a ecuaciones algebraicas y trascendentes y proporciona races reales. Definicin del mtodo El nombre original del mtodo es de las tangentes. Una tangente es una recta que intersecta a una curva en un solo punto; en consecuencia, es perpendicular a su radio. A partir de la figura 1, se plantea que en un valor x 0 que represente una aproximacin a la raz de la ecuacin, se trace una tangente en el punto f(x0). Esta recta tangente deber cortar al eje horizontal. El punto donde lo corte ser la nueva aproximacin x1, de tal forma que en el punto f(x1) se trace una nueva tangente. Este proceso se repetir hasta que el corte de la tangente en el eje horizontal coincida con la raz de la ecuacin, o bien, cuando la diferencia entre dos aproximaciones sucesivas cumpla con una tolerancia preestablecida. La ecuacin del mtodo de Newton-Raphson es la siguiente:

Descripcin grfica

Algoritmo del mtodo Grado de la ecuacin G Coeficientes de la ecuacin ai 0iG Valor de la tolerancia x10 Contador0 Repetir y1F(x1) dy1F(x1) x2x1-(y1/dy1) Si |x1-x2|>tolerancia Entonces x1x2 ContadorContador+1 Hasta que (|x1-x2|<=tolerancia) o (contador>100) Si contador<100 Entonces imprimir x2 De lo contrario imprimir no se encontr la raz

Programacin en Matlab Nombre del programa: newton_raphson.m f=input('ingrese la funcion a graficar, entre apostrofos: '); p=input('ingrese un intervalo en el que se graficara la ecuacion,\nen la forma [a:incremento:b]: '); f=inline(f); s=feval(f,p); close plot(p,s) grid syms x y=input('ingrese la funcion sin apostrofos F(x) = '); %funcion a derivar dy1=diff(y,1) %derivada de primer orden dy2=diff(y,2) %derivada de segundo orden z=(y.*dy2)./dy1.^2; %Criterio de convergencia disp(z) z=inline(z); x=input('ingrese un valor de x = '); fz=feval(z,x); disp(fz) if abs(fz) < 1 tol = input('\nTeclee el valor de la tolerancia tol = '); Error = tol+1; Cont = 0; xi=x; while Error >= tol Cont = Cont +1; xf=xi-y./dy1; disp(xf) xf=inline(xf) fxf=feval(xf,xi); Error = abs(fxf-xi); disp(Error) xi = fxf; end fprintf(' \nLa raiz es %1.8f,\nEncontrada en %1.0f Iteraciones ',fxf,Cont); else fprintf(' \nLa ecuacion no converge '); end

Ejemplo en Matlab con la ecuacin x3-7x2+14x-6 Los valores de las races son {0.5857864376, 3.414213562, 3} >> newton_raphson ingrese la funcion a graficar, entre apostrofos: 'x.^37*x.^2+14*x-6' ingrese un intervalo en el que se graficara la ecuacion, en la forma [a:incremento:b]: [0:1:10] ingrese la funcion sin apostrofos F(x) = x.^3-7*x.^2+14*x-6 ingrese un valor de x = 0 Teclee el valor de la tolerancia tol = 0.0001 La raiz es 0.58578644, Encontrada en 5 Iteraciones >> Grfica de la ecuacin x3-7x2+14x-6

Ejemplo en Matlab con la ecuacin e-x-x >> newton_raphson ingrese la funcion a graficar, entre apostrofos: 'exp(-x)-x' ingrese un intervalo en el que se graficara la ecuacion, en la forma [a:incremento:b]: [-4:1:4] ingrese la funcion sin apostrofos F(x) = exp(-x)-x ingrese un valor de x = 0 Teclee el valor de la tolerancia tol = 0.00001 La raiz es 0.56714329, Encontrada en 4 Iteraciones >> Grfica de la ecuacin e-x-x

SOLUCIN DE SISTEMAS DE ECUACIONES LINEALES

En general, un sistema con m ecuaciones lineales y n incgnitas puede ser escrito en forma normal como:

Donde son las incgnitas y los nmeros son los coeficientes del sistema. Es posible reescribir el sistema separando con coeficientes con notacin matricial:

Si representamos cada matriz con una nica letra obtenemos:

Donde A es una matriz m por n, x es un vector columna de longitud n y b es otro vector columna de longitud m. El sistema de eliminacin de Gauss-Jordan se aplica a este tipo de sistemas, sea cual sea el cuerpo del que provengan los coeficientes. La matriz A se llama matriz de coeficientes de este sistema lineal. A b se le llama vector de trminos independientes del sistema y a x se le llama vector de incgnitas. Lo que se pretende hacer es desarrollar mtodos numricos y sus algoritmos, que permitan resolver los sistemas lineales que se sabe tienen solucin, lo cual ha sido establecido, por un anlisis con las herramientas del lgebra lineal.

Haciendo un resumen de los sistemas lineales y las caractersticas, para que estos tengan solucin, se puede enunciar: Sea Ax=b un sistema lineal de ecuaciones Cuando un sistema tiene al menos una solucin se dice que, el sistema es consistente, en caso contrario es inconsistente. Se dice que el sistema es homogneo cuando b=0, es decir el vector b es el vector nulo. Estos sistemas siempre tienen solucin, por lo tanto estos sistemas son consistentes. Las solucin trivial de estos sistemas es tambin X=0 Si b0 se dice que el sistema es no homogneo. Un sistema no homogneo es consistente (tiene al menos una solucin ) si rango( A) = rango(A,b) Los sistemas no homogneos son consistentes con una solucin si rango( A)=n Es consistente con ms de una solucin si rango(A)=rango(A,b)= r<n Si b=0, el sistema siempre es consistente , ya que X=0 (solucin trivial) es siempre una solucin y esta ser nica si rango( A)=n Si b=0, el sistema tendr solucin no trivial si rango(A)=r<n . En cuyo caso un nmero infinito de soluciones existen. Si b0, el sistema es inconsistente (no existe solucin) si rango( A,b)>rango( A)

Mtodo de Gauss A travs de las operaciones fundamentales aplicadas a la matriz de coeficientes A y al vector de trminos independientes b (para mantener la igualdad en las ecuaciones), se convierte a la matriz A en una matriz triangular superior donde la diagonal principal la constituyen nmeros. Esta transformacin implica que en la ecuacin n aparezca una sola incgnita, dos en la ecuacin n-1, tres en la n-2 y as consecutivamente para despus realizar una sustitucin hacia atrs. Definicin del mtodo Sea el sistema de ecuaciones lineales Ax=b, la matriz ampliada del sistema es:

Por medio de las operaciones fundamentales debe transformarse en una matriz ampliada triangular superior de la forma:

Donde los valores aij y bi son los coeficientes modificados por la aplicacin de las operaciones fundamentales. Este procedimiento se logra tomando cada uno de los elementos de la diagonal principal de la matriz A original, al cual se le denomina pivote y despus normalizando la ecuacin con dicho valor. Posteriormente, a travs de las operaciones fundamentales, se hace la eliminacin de los elementos inferiores de la columna correspondiente al pivote. Una vez realizada la transformacin se realiza la sustitucin hacia atrs obtenindose el valor de cada una de las incgnitas.

Algoritmo del mtodo Nmero de ecuaciones NE Valores de la matriz aumentada ai,I 1iNE 1INE+1 Hacer I de 1 hasta NE-1 Hacer R de I+1 hasta NE Hacer C de I+1 hasta NE+1 aR,CaR,C-(aI,C/aI,I)*aR,I xNEaNE,NE+1/aNE,NE Hacer I de NE-1 hasta 1 Suma0 Hacer K de I+1 hasta NE SumaSuma+aI,K*xK xI(1/aI,I)*(aI,NE+1-Suma)

Programacin en Matlab El siguiente programa est hecho para trabajar como una funcin de Matlab, por lo que antes de usarlo tenemos que introducir la matriz de coeficientes A y la matriz de trminos independientes b. Nombre de la funcin: gauss.m function [x]=gauss(A,b) % Solucin de Ax=b mediante eliminacin de Gauss n=size(A,1); x=zeros(n,1); for i=1:n-1 % Transformacin matriz A [p maxk]=max(abs(A(i:n,i))); maxk=maxk+i-1; if i~=maxk A([i maxk],:)=A([maxk i],:); b([i maxk]) =b([maxk i]); end j=i+1:n; A(j,i)=A(j,i)/A(i,i); A(j,j)=A(j,j)-A(j,i)*A(i,j); b(j)=b(j)-b(i)*A(j,i); end for i=n:-1:1 % Sustitucin inversa x(i)=(b(i)-A(i,i+1:n)*x(i+1:n))/A(i,i); end

Ejemplo en Matlab con el sistema de ecuaciones:

Las soluciones del sistema son: x1=9/13, x2=-2/13, x3=-10/13 >> A=[3 2 1;2 2 4;-1 0.5 -1] A = 3.0000 2.0000 -1.0000 >> b=[1;-2;0] b = 1 -2 0 >> [x]=gauss(A,b) x = 0.6923 -0.1538 -0.7692 >> 2.0000 2.0000 0.5000 1.0000 4.0000 -1.0000

Mtodo de Jordan Es una ampliacin del mtodo de Gauss con la diferencia que la matriz de coeficientes A se transforma en la matriz identidad de tal forma que se conserva una nica incgnita por ecuacin eliminando la sustitucin hacia atrs. Definicin del mtodo Sea el sistema de ecuaciones lineales Ax=b, por medio de las operaciones fundamentales debe transformarse en la matriz identidad de la forma:

Donde los valores

bi

son los coeficientes modificados por la aplicacin de las

operaciones fundamentales. De nuevo, el procedimiento utilizado es la eleccin del pivote, la normalizacin de las ecuaciones y la eliminacin de los elementos superiores e inferiores de la columna del pivote correspondiente.

Algoritmo del mtodo Nmero de ecuaciones NE Valores de la matriz aumentada ai,k 1iNE 1kNE+1 Hacer I de 1 hasta NE Hacer R de 1 hasta NE Si R<>I entonces Hacer C de I+1 hasta NE+1 aR,CaR,C-(aI,C/aI,I)*aR,I Hacer C de I+1 hasta NE+1 aI,CaI,C/aI,I Hacer I de 1 hasta NE xIaI,NE+1

Programacin en Matlab El siguiente programa tambin est hecho para trabajar como una funcin de Matlab, por lo que antes de usarlo tenemos que introducir la matriz aumentada a. Nombre de la funcin: Jordan.m function [X] = Jordan(a) [n,t] = size(a); for k = 1:n for j = n + 1:-1:k a(k, j) = a(k, j) / a(k, k); end for i = 1:n if i ~= k for j = n + 1:-1:k a(i, j) = a(i, j) - a(i, k) * a(k, j); end end end end for i=1:n X(i) = a(i,n+1); end end

Ejemplo en Matlab con el sistema de ecuaciones:

Las soluciones del sistema son: x=1, y=1, z=1 >> a=[5 -3 -1 1;1 4 -6 -1;2 3 4 9] a = 5 1 2 -3 4 3 -1 -6 4 1 -1 9

>> [X]=Jordan(a) X = 1 >> 1 1

Mtodo de Jcobi Los mtodos de Jcobi y de Seidel son los equivalentes en la solucin de sistemas de ecuaciones lineales al mtodo de aproximaciones sucesivas en la solucin de ecuaciones algebraicas y trascendentes. Consiste bsicamente en obtener una ecuacin de recurrencia (matricial en este caso) y proponer un vector solucin inicial; posteriormente, se debern realizar las iteraciones necesarias hasta que la diferencia entre dos vectores consecutivos cumpla con una tolerancia predefinida. En realidad estos mtodos representan una adaptacin vectorial de un proceso escalar, lo que implica la necesidad de adaptar los conceptos necesarios: los procesos iterativos se detienen cuando entre dos aproximaciones consecutivas se cumple con determinado error preestablecido. En este caso, deber medirse la norma entre dos vectores para reconocer el momento en que se satisface la cota de error. Por otra parte, resta el hecho de tener que evaluar un criterio de equivalencia el cual, naturalmente, tendr carcter vectorial. Definicin del mtodo Sea el sistema de ecuaciones lineales AX=b, donde A es la matriz de coeficientes, X es el vector de incgnitas y b el vector de trminos independientes. En esta ecuacin se puede sustituir a la matriz A por la suma de dos matrices: A=D+R. En donde la matriz D es una matriz cuyos elementos son cero excepto los elementos de la diagonal que corresponden a los elementos de la matriz A y R que es una matriz con ceros en la diagonal y sus restantes elementos coinciden con los respectivos de A.

Al sustituir D y R en la ecuacin del sistema se llega a la siguiente ecuacin:

Esta ecuacin no aporta una solucin por s misma, si se observa desde la ptica del algebra matricial. Sin embargo, si se aplica desde una forma recursiva:

Para k=0,1,2,,n y donde X(k) representa un vector solucin inicial y X(k+1) representa una aproximacin posterior a la inicial X(k). Se puede constatar claramente que la ecuacin obtenida es totalmente representativa de un mtodo de aproximaciones sucesivas. Esta ecuacin requiere de un breve anlisis para su aplicacin prctica. En principio, la matriz D, solo posee elementos diferentes de cero (que corresponden a los propios de A) en su diagonal principal. Es fcilmente comprobable que la matriz inversa D-1 tambin posee nicamente valores diferentes de 0 en su diagonal principal y que estos valores corresponden a los recprocos de sus valores en la matriz A, es decir, sern 1/ aii. Por otra parte, el resto de los

elementos de cada rengln de la matriz A se encuentran en la matriz R y son restados del vector de trminos independientes. En contexto la ecuacin equivale, a partir del sistema de ecuaciones lineales, a despejar a la incgnita de ubicada en la diagonal principal de cada una de las ecuaciones que conforman el sistema, de la siguiente forma:

El mtodo Jcobi propone que el vector inicial X0 sea igual a cero. A partir de esta propuesta, el vector siguiente ser X1=bi/aii, es decir, el elemento independiente entre el coeficiente de la diagonal principal para cada ecuacin.

Este vector X(1) se sustituye en las ecuaciones de los despejes anteriores obtenindose el siguiente vector X(2). El proceso se realiza consecutivamente hasta que la norma entre dos vectores consecutivos es menor que cierta tolerancia preestablecida. La norma se calcula como:

El mtodo de Jcobi es susceptible de los efectos del pivoteo. En consecuencia, su criterio de convergencia lo conforman los criterios de la diagonal pesada, mismo que posee dos condiciones: 1. Condicin necesaria: Es condicin necesaria que el elemento ubicado en la diagonal principal de cada ecuacin sea mayor en valor absoluto que el resto de los elementos de la misma ecuacin. 2. Condicin suficiente: Es condicin suficiente que el elemento ubicado en la diagonal principal de cada ecuacin sea mayor en valor absoluto que la suma del resto de los elementos de la misma ecuacin.

Algoritmo del mtodo Nmero de ecuaciones NE Valores de la matriz aumentada ai,k 1iNE 1kNE+1 Valor de la tolerancia Contador0 Hacer I de 1 hasta NE xI0 Repetir Hacer I de 1 hasta NE Suma0 Hacer K de 1 hasta NE Si K<>I entonces SumaSuma+aI,K*xK zI(1/aI,I)*(aI,NE+1-Suma) Hacer I de 1 hasta NE Banderacierto Si |zI-xI|>tolerancia entonces Banderafalso ContadorContador+1 Hacer I de 1 hasta NE xIzI Hasta que (Bandera=cierto) o (Contador>100) Si Bandera=cierto entonces Imprimir xI De lo contrario Imprimir No se encontraron las soluciones

Programacin en Matlab El siguiente programa tambin est hecho para trabajar como una funcin de Matlab, por lo que antes de usarlo tenemos que introducir la matriz de coeficientes A, la matriz de trminos independientes b, el vector inicial x, la tolerancia tol y el nmero mximo de iteraciones maxit. Nombre de la funcin: jacobi.m function [x,iter]=jacobi(A,b,x,tol,maxit) N=diag(diag(A)); P=N-A; corr=1; errest=1; iter=0; while abs(errest)>tol & iter<maxit iter=iter+1; x0=x; corr0=corr; x=N\(P*x0+b); corr=norm(x-x0,inf); normest=corr/corr0; if normest>=1 & iter>=2 error('norma de la matriz de iteracin > 1') end errest=normest/(1-normest)*corr; end iter

Ejemplo en Matlab con el sistema de ecuaciones:

Las soluciones del sistema son: x1=-1, x2=3, x3=5 >> A=[10 1 2;4 6 -1;-2 3 8] A = 10 4 -2 1 6 3 2 -1 8

>> b=[3;9;51] b = 3 9 51 >> x=[0;0;0] x = 0 0 0 >> tol=0.00001; >> maxit=100; >> [x,iter]=jacobi(A,b,x,tol,maxit) x = -1.0000 3.0000 5.0000 iter = 15 >>

Mtodo de Seidel Este mtodo es una versin acelerada del mtodo de Jcobi. En el mtodo de Jcobi es necesario contar con un vector aproximado completo para proceder a la sustitucin en las ecuaciones de recurrencia y obtener una nueva aproximacin. Definicin del mtodo En el mtodo de Seidel se propone ir sustituyendo los nuevos valores de la aproximacin siguiente conforme se vayan obteniendo sin esperar a tener un vector completo. De esta forma se acelera la convergencia. A partir de las ecuaciones de recurrencia del mtodo de Jcobi:

El criterio de convergencia del mtodo de Seidel corresponde totalmente al criterio de la diagonal pesada cuyas condiciones ya se expresaron anteriormente.

Algoritmo del mtodo Nmero de ecuaciones NE Valores de los coeficientes ai,k 1iNE 1kNE+1 Valor de la tolerancia Contador0 Hacer I de 1 hasta NE xI0 Repetir Banderacierto Hacer I de 1 hasta NE Suma0 Hacer K de 1 hasta NE Si K<>I entonces SumaSuma+aI,K*xK b(1/aI,I)*(aI,NE+1-Suma) Si |b-xI|>tolerancia Entonces Banderafalso xIb ContadorContador+1 Hasta que (Bandera=cierto) o (Contador>100) Si Bandera=cierto Entonces imprimir xI De lo contrario imprimir No se encontraron soluciones

Programacin en Matlab El siguiente programa tambin est hecho para trabajar como una funcin de Matlab, por lo que antes de usarlo tenemos que introducir la matriz de coeficientes A, la matriz de trminos independientes b, el vector inicial x, la tolerancia tol y el nmero mximo de iteraciones maxit. Nombre de la funcin: seidel.m function [x,iter]=seidel(A,b,x,tol,maxit) N=tril(A); P=N-A; corr=1; errest=1; iter=0; while abs(errest)>tol & iter<maxit iter=iter+1; x0=x; corr0=corr; x=N\(P*x0+b); corr=norm(x-x0,inf); normest=corr/corr0; if normest>=1 & iter>=2 error('norma de la matriz de iteracin > 1') end errest=normest/(1-normest)*corr; end iter

Ejemplo en Matlab con el sistema de ecuaciones: A manera de comparacin usaremos el mismo ejemplo que usamos en el mtodo de Jcobi para ver la diferencia entre los dos mtodos.

Las soluciones del sistema son: x1=-1, x2=3, x3=5

>> A=[10 1 2;4 6 -1;-2 3 8] A = 10 4 -2 1 6 3 2 -1 8

>> b=[3;9;51] b = 3 9 51 >> x=[0;0;0] x = 0 0 0 >> tol=0.00001; >> maxit=100; >> [x,iter]=seidel(A,b,x,tol,maxit) x = -1.0000 3.0000 5.0000 iter = 6 >> Como pudimos observar, el mtodo de Jcobi resolvi el sistema de ecuaciones en 15 iteraciones, mientras que con el mtodo de Seidel se resolvi en solo 6 iteraciones. Por lo que vemos que realmente el mtodo de Seidel es una versin acelerada del mtodo de Jcobi.

INTEGRACIN NUMRICA

En la prctica profesional, es comn encontrarse con problemas que requieren del conocimiento del rea bajo una curva de una funcin que representa el comportamiento de un proceso, que depende de un conjunto de variables de control; las funciones, no siempre se encuentran en forma analtica, muchas veces se reportan en forma tabular, o varan drsticamente entre intervalos, por este motivo, no siempre es posible integrarlas por mtodos analticos, y se requiere de un tipo de mtodo apropiado para cada caso. La integracin definida es el procedimiento sustentado por el teorema fundamental del clculo, por medio del cual se puede calcular de forma exacta una sumatoria de Riemman. La notacin de Leibnitz permite escribir la integracin indefinida de una funcin como:

Los mtodos de integracin numrica se basan prcticamente en usar una forma aproximada (obtenida por interpolacin) de una funcin y aplicarle mtodos simples para obtener un valor numrico como aproximacin al valor real de la integral. Desde el punto de vista numrico, existen dos tipos generales de mtodos de integracin, estos son los mtodos de integracin cerrada, y los mtodos de integracin abierta. La integracin numrica es un procedimiento algebraico y aritmtico, que permite el clculo de integrales definidas, que o bien no se pueden resolver analticamente o su solucin es muy complicada. Los mtodos cerrados de integracin, son aquellos que tienen un alcance exclusivamente dentro del intervalo de definicin de la funcin (intervalo en el cual se reportan los valores de la funcin). A estos se les conoce como los mtodos de integracin cerrada de Newton-Cotes.

Dentro de los mtodos cerrados de Newton-Cotes se tienen: La regla del trapecio La regla de Simpson 1/3 Los mtodos de Newton-Cotes funcionan en general en dos pasos: 1. Se divide el intervalo [a,b] en n intervalos de igual amplitud, cuyos valores extremos son sucesivamente:

Para quedar en la nueva notacin x0=a y xn=b 2. Se aproxima f(x) por un polinomio de grado n, P n(x) y se integra, para obtener la aproximacin de la integral.

Mtodo de los trapecios Este es un mtodo cerrado, parte de los mtodos de Newton-Cotes y tiene como objetivo hallar la integral aproximada de una funcin a travs de un polinomio de primer grado, es decir uniendo mediante una recta los puntos en donde se evaluar la funcin. Definicin del mtodo La regla del trapecio consiste en: el intervalo original queda igual, la funcin se aproxima por una lnea recta, y el rea bajo la curva corresponde al rea de un trapecio. De acuerdo a los cursos de geometra, el rea de un trapecio, es igual a la suma de la base mayor, ms la base menor, por la altura sobre dos. As que cada trapecio que se forma dentro de una curva tiene como rea:

Al sumar todas las reas se tiene que:

Considerando los incrementos constantes la expresin anterior queda:

Descripcin grfica

Algoritmo del mtodo Grado de la ecuacin G Valores de los coeficientes ai 0iG Lmite inferior LI Lmite superior LS Nmero de segmentos NS Dx(LS-LI)/NS y1F(LI) yNS+1F(LS) xLI Suma0 Hacer I de 2 hasta NS xx+Dx SumaSuma+F(x) A(Dx/2)*(y1+2*Suma+yNS+1)

Programacin en Matlab Nombre del programa: trapecios.m clear all; clc; fprintf('Calculo de la integral por el metodo trapecial\n\n'); f=input('introduce la funcion:','s'); a=input('limite inferior:'); b=input('limite superior:'); c=input('numero de segmentos a dividir:'); h=(b-a)/c; z=0; for x=a:h:b k=eval(f); if x==a,d=k; end if x==b,e=k; end z=z+k; end z=z-d-e; z=z*2; z=z+d+e; z=z/(2*c); z=z*(b-a) fprintf('Resultado ');

Ejemplo en Matlab con la integral:

Nota: el ngulo es en radianes. Valor real del rea: 8.183479208 Calculo de la integral por el metodo trapecial introduce la funcion:2+sin(2*sqrt(x)) limite inferior:1 limite superior:6 numero de segmentos a dividir:10000 z = 8.1835 Resultado >> Grfica de la funcin 2+sen(2x)

Mtodo de Simpson 1/3 Este es otro mtodo cerrado, parte de los mtodos de Newton-Cotes. Tiene condicin que el numero n de puntos que conforman la funcin tabular sea par. Definicin del mtodo La regla de Simpson consiste en: dividir el intervalo [a,b] en 2M sub intervalos [xk,xk+1] de la misma anchura:

mediante una particin de nodos equi espaciados xk=a+kh, y con esta

que corresponde a la integral:

y se le llama regla de Simpson 1/3.

Descripcin grfica

Algoritmo del mtodo Grado de la ecuacin G Valores de los coeficientes ai 0iG Lmite inferior LI Lmite superior LS Nmero de segmentos NS par Dx(LS-LI)/NS y1F(LI) yNS+1F(LS) NNS/2 PAR0 xLI-Dx Hacer I de 1 hasta N xx+2*Dx PARPAR+F(x) IMPAR0 xLI Hacer I de 1 hasta N-1 xx+2*Dx IMPARIMPAR+F(x) A(Dx/3)*(y1+4*PAR+2*IMPAR+yNS+1)

Programacin en Matlab clear all; clc; fprintf('Calculo de la integral por el metodo de Simpson de 1/3\n\n'); f=input('introduce la funcion:','s'); a=input('limite inferior:'); b=input('limite superior:'); c=input('numero de segmentos a dividir (numero par):'); h=(b-a)/c; z=0; x=a; for i=1:c; if (-1)^i==1 k=eval(f); z=z+k; end x=h*i; end zz=0; x=a; for i=2:c; if (-1)^i==-1 k=eval(f); zz=zz+k; end x=h*i; end x=a; if x==a d=eval(f); end x=b; if x==b e=eval(f); end z=z*4; v=zz*2; z=z+v+d+e; z=z/(3*c); z=z*(b-a) fprintf('Resultado ');

Ejemplo en Matlab con la integral:

Valor real del rea: 1.718281828 Calculo de la integral por el metodo de Simpson de 1/3 introduce la funcion:exp(x) limite inferior:0 limite superior:1 numero de segmentos a dividir (numero par):10 z = 1.7183 Resultado >> Grfica de la funcin

SOLUCIN NUMRICA DE ECUACIONES DIFERENCIALES

Una ecuacin diferencial es una ecuacin en la que intervienen derivadas de una o ms funciones desconocidas. Dependiendo del nmero de variables independientes respecto de las que se deriva, las ecuaciones diferenciales se dividen en: Ecuaciones diferenciales ordinarias: aquellas que contienen derivadas respecto a una sola variable independiente. Ecuaciones en derivadas parciales: aquellas que contienen derivadas respecto a dos o ms variables. Una ecuacin diferencial es una ecuacin que incluye expresiones o trminos que involucran a una funcin matemtica incgnita y sus derivadas. Algunos ejemplos de ecuaciones diferenciales son:

Es una ecuacin diferencial ordinaria, donde especificada de la variable independiente derivada de con respecto a . La expresin:

representa una funcin no , es la

, es decir

Es una ecuacin en derivadas parciales. A la variable dependiente tambin se le llama funcin incgnita (desconocida). La resolucin de ecuaciones diferenciales es un tipo de problema matemtico que consiste en buscar una funcin que cumpla una determinada ecuacin diferencial. Se puede llevar a cabo mediante un mtodo especfico para la ecuacin diferencial en cuestin o mediante una transformada. Ecuacin diferencial lineal Se dice que una ecuacin es lineal si tiene la forma

Es decir: Ni la funcin ni sus derivadas estn elevadas a ninguna potencia distinta de uno o cero. En cada coeficiente que aparece multiplicndolas slo interviene la variable independiente. Una combinacin lineal de sus soluciones es tambin solucin de la ecuacin.

Ecuaciones semilineales y cuasilineales No existe un procedimiento general para resolver ecuaciones diferenciales no lineales. Sin embargo, algunos casos particulares de no linealidad s pueden ser resueltos. Son de inters el caso semilineal y el caso cuasilineal. Una ecuacin diferencial ordinaria de orden n se llama cuasilineal si es "lineal" en la derivada de orden n. Ms especficamente, si la ecuacin diferencial ordinaria para la funcin puede escribirse en la forma:

Se dice que dicha ecuacin es cuasilineal si .

es una funcin afn, es decir

Una ecuacin diferencial ordinaria de orden n se llama semilineal si puede escribirse como suma de una funcin "lineal" de la derivada de orden n ms una funcin cualquiera del resto de derivadas. Formalmente, si la ecuacin diferencial ordinaria para la funcin puede escribirse en la forma:

Se dice que dicha ecuacin es semilineal si Solucin de una ecuacin diferencial Tipos de soluciones

es una funcin lineal.

Una solucin de una ecuacin diferencial es una funcin que al reemplazar a la funcin incgnita, en cada caso con las derivaciones correspondientes, verifica la ecuacin, es decir, la convierte en una identidad. Hay tres tipos de soluciones: Solucin general: una solucin de tipo genrico, expresada con una o ms constantes. Es un haz de curvas. Tiene un orden de infinitud de acuerdo a su cantidad de constantes (una constante corresponde a una familia simplemente infinita, dos

constantes a una familia doblemente infinita, etc). En caso de que la ecuacin sea lineal, la solucin general se logra como combinacin lineal de las soluciones (tantas como el orden de la ecuacin) de la ecuacin homognea (que resulta de hacer el trmino no dependiente de ni de sus derivadas igual a 0) ms una solucin particular de la ecuacin completa.

Solucin particular: Si fijando cualquier punto por donde debe pasar necesariamente la solucin de la ecuacin diferencial, existe un nico valor de C, y por lo tanto de la curva integral que satisface la ecuacin, ste recibir el nombre de solucin particular de la ecuacin en el punto , que recibe el nombre de condicin inicial. Es un caso particular de la solucin general, en donde la constante (o constantes) recibe un valor especfico.

Solucin singular: una funcin que verifica la ecuacin, pero que no se obtiene particularizando la solucin general. Solucin de la ecuacin no consistente en una particular de la general.

Mtodo de Euler Las herramientas numricas para la solucin de ecuaciones diferenciales aportan una aproximacin muy buena en comparacin con los resultados obtenidos en forma analtica. Son varios los mtodos numricos que ofrecen la solucin de estas ecuaciones diferenciales. Los mtodos paso a paso se fundamentan en los polinomios interpolantes que provienen de tablas de diferencias; en consecuencia ser necesario disponer de un intervalo de solucin de la variable independiente cuyo primer punto debe coincidir con la condicin inicial. El mtodo de Euler es un mtodo predictivo-correctivo o de paso a paso ya que resuelve la ecuacin en intervalos entre dos pares de puntos y repitiendo esta solucin en todos los puntos que conforman a la funcin tabular. Definicin del mtodo El planteamiento inicial es resolver una ecuacin como la siguiente:

Integramos ambos miembros de la ecuacin entre dos puntos consecutivos.

De la que se obtiene:

Resolviendo la integral a partir del polinomio interpolante de Newton-Gregory obtenemos la siguiente ecuacin:

A esta ecuacin se le denomina mtodo de Euler para resolver ecuaciones diferenciales de primer orden con condiciones iniciales en un intervalo equiespaciado. Descripcin grfica

Algoritmo del mtodo Valor inicial de yn Valor inicial de to Valor inicial de tu Nmero de incrementos NI Dt( tu- to)/NI tn to Hacer I de 1 hasta NI dynf(yn,tn) yn+1yn+dyn*Dt Imprimir yn, Dt, dyn, yn+1 ynyn+1 tntn+Dt

Programacin en Matlab Nombre del programa: euler.m fprintf('\n \tRESOLUCION DE ECUACIONES DIFERENCIALES POR MEDIO METODO DE EULER\n') f=input('\nIngrese la ecuacion diferencial de la forma: dy/dx=f(x,y)\n','s'); x0=input('\nIngrese el primer punto x0:\n'); x1=input('\nIngrese el segundo punto x1:\n'); y0=input('\nIngrese la condicion inicial y(x0):\n'); n=input('\nIngrese el numero de pasos n:\n'); h=(x1-x0)/n; xs=x0:h:x1; y1=y0; fprintf('\n''it x0 x1 y1'); for i=1:n it=i-1; x0=xs(i); x=x0; x1=xs(i+1); y=y0; y1=y0+h*eval(f); fprintf('\n%2.0f%10.6f%10.6f%10.6f\n',it,x0,x1,y1); y0=y1; end fprintf('\n El punto aproximado y(x1) es = %10.6f\n',y1);

Ejemplo en Matlab

>> euler RESOLUCION DE ECUACIONES DIFERENCIALES POR MEDIO METODO DE EULER Ingrese la ecuacion diferencial de la forma: dy/dx=f(x,y) sqrt(x^2+y^2) Ingrese el primer punto x0: 2 Ingrese el segundo punto x1: 2.3 Ingrese la condicion inicial y(x0): 0.5 Ingrese el numero de pasos n: 3 'it x0 x1 y1 0 2.000000 1 2 2.100000 2.200000 2.100000 2.200000 2.300000 0.706155 0.927710 1.166470 1.166470

El punto aproximado y(x1) es = >>

Mtodo de Heun La mejora del mtodo de Heun consiste en la aproximacin a la pendiente mediante la aplicacin de dos derivadas del intervalo, una en el punto inicial y otra en el punto final. La aproximacin mejorada de la pendiente ser el promedio de las dos derivadas. Definicin del mtodo Recordando el mtodo de Euler, la pendiente al principio del intervalo es:

Que se emplea en extrapolar linealmente el valor de y al final del intervalo:

Este valor no es la solucin final sino una prediccin intermedia, por lo que se ha distinguido a sta con el superndice 0. Esta ecuacin se denomina ecuacin predictora y proporciona una aproximacin del valor de y al final del intervalo. Este valor nos permite a su vez calcular la pendiente aproximada en dicho punto.

Combinando las dos pendientes obtenemos el promedio del intervalo:

sta pendiente promedio se usa para extrapolar linealmente el valor de la funcin en el siguiente punto usando el mtodo de Euler:

Esta ecuacin se denomina ecuacin correctora. El mtodo de Heun sigue un esquema predictor-corrector que es el mismo de los mtodos de pasos mltiples y se expresa como:

Descripcin grfica

Algoritmo del mtodo Valor inicial de yn Valor inicial de to Valor inicial de tu Nmero de incrementos NI Dt( tu- to)/NI tn to Hacer I de 1 hasta NI dynf(yn,tn) yn+1yn+dyn*Dt dyn+1yn+((dyn+dyn+1)2)*Dt Imprimir yn, tn, dyn, dyn+1, yn+1 ynyn+1 tntn+Dt

Programacin en Matlab El siguiente programa est hecho para trabajar como una funcin de Matlab, por lo que antes de usarlo tenemos que introducir la funcin, los valores iniciales y el nmero de incrementos. Nombre de la funcin: heun.m function [tvals,yvals]=heun(f,t0,b,y0,h) n=floor((b-t0)/h)+1; m=length(y0); k1=zeros(1,m); tvals=zeros(n+1,1); yvals=zeros(n+1,m); index=[0:1:n]'; tvals=t0+h*index; yvals(1,:)=y0; h2=h/2; for i=2:n+1 k1=feval(f,tvals(i-1), yvals(i-1,:)); yvals(i,:)=yvals(i-1,:)+h*k1; yvals(i,:)=yvals(i-1,:)+h2*(k1+feval(f,tvals(i),yvals(i,:)); end Ejemplo en Matlab Consideremos aqu las ecuaciones diferenciales que se obtienen de las leyes de Newton aplicadas al problema de dos cuerpos. Suponemos aqu que uno de los cuerpos es mucho ms masivo que el otro de modo que su movimiento es descartable, ej., la tierra y un satlite. Suponemos tambin que el movimiento es en un plano. Como la fuerza gravitacional es inversamente proporcional a la distancia entre los cuerpos, tenemos tomando todas las constantes envueltas como uno, que la posicin (x(t),y(t)) del cuerpo pequeo est dada por el sistema de ecuaciones diferenciales:

Tomamos como condiciones iniciales

Debido a que este es un sistema de orden dos, tenemos que hacer la sustitucin:

Lo cual transforma el sistema de arriba al siguiente sistema de orden uno:

Definimos ahora la siguiente subrutina en MATLAB que evala el lado derecho de este sistema: function f=satelite(t,u) f=zeros(1,4); denom=(u(1)^2+u(3)^2)^1.5; f(1)=u(2); f(2)=-u(1)/denom; f(3)=u(4); f(4)=-u(3)/denom; Ahora calculamos y graficamos la solucin del problema de valor inicial con la siguiente secuencia de instrucciones en MATLAB. Note que graficamos el conjunto de puntos (x(t),y(t)) para los t's generados en lugar de (t,x(t)) y (t,y(t)). Tenemos pues: >> >> >> >> >> [t,y]=heun('satelite',0,10,[0.4,0,0.1,2],0.01); plot(y(:,1),y(:,3)) xlabel('X');ylabel('Y'); title('Solucion particular del problema de dos cuerpos')

Resultado:

Note que la curva es efectivamente una elipse aunque esto se acenta en la grfica por que los ejes tienen unidades de largo distintas.

Mtodo de Nystrom En este mtodo, que es de tipo predictor-corrector, se cuenta con una frmula para determinar el valor de yi+1 aproximado, y otra para corregirlo hasta satisfacer una condicin de error. El mtodo de Nystrom es de segundo orden, por lo que al utilizarlo para resolver una ecuacin diferencial, es necesario contar con los primeros dos pares de datos x,y. Definicin del mtodo La frmula de prediccin es:

La frmula de correccin es:

Una vez satisfecha la condicin de error, se calcula el siguiente valor de yi+1 con la frmula de prediccin y ese valor se trata con la frmula de correccin (nuevamente hasta que la condicin de error se satisfaga), y de esa forma se calculan los siguientes valores de yi+1, hasta que el valor de y sea yf.

Algoritmo del mtodo Valor inicial de yn-1 Valor inicial de to Valor inicial de tu Nmero de intervalos NI Dt( tu- to)/NI tn-1 to Hacer I de 1 hasta NI dyn+1f(yn-1,tn-1) ynyn-1+dyn+1*Dt dynf(yn,tn-1+Dt) yn+1yn-1+2*dyn*Dt Imprimir yn, tn, dyn, dyn+1, yn+1 yn-1yn tn-1tn-1+Dt ynyn+1 tntn-1+Dt

Programacin en Matlab % Metodo de Nystrom % Uso: [t,y,dy]=nystrom(funcion,inicio,fin,alfa,paso) function [ts,ys,fs]=nystrom(f,inicio,fin,alfa,h) if nargin<5 disp('Faltan argumentos de entrada'); return; else ts=inicio:h:fin; ys(:,1)=alfa; n=(fin-inicio)/h; for i=1:n k1=feval(f,ts(i),ys(:,i)); k2=feval(f,ts(i)+h*(2/3),ys(:,i)+h*(2/3)*k1); k3=feval(f,ts(i)+h*(2/3),ys(:,i)+h*(2/3)*k2); fs(:,i)=k1; ys(:,i+1)=ys(:,i)+(2*k1+3*k2+3*k3)*h/8; end; end;

Ejemplo del mtodo Obtngase la solucin de la siguiente ecuacin diferencial por el mtodo de Nystrom, si x0=0, y0=2, h=0.1, xf=0.5 y e=110-5.

Recurdese que para resolver ecuaciones diferenciales por este mtodo es necesario conocer los valores de x1 y y1. Estos valores se han determinado a partir de los datos de x0, y0 y h por mtodos de un solo paso.

Estos valores nos permiten conocer (por medio de las frmulas predictora y correctora), los valores de yi+1 siguientes, resultando:

Mtodo de Runge-Kutta El procedimiento de Runge-Kutta se aplica de forma directa a una ecuacin diferencial de primer orden, pero tambin se extiende a un sistema de ecuaciones de primer orden, a una ecuacin diferencial de segundo orden y a un sistema de ecuaciones diferenciales de segundo orden. El procedimiento de Runge-Kutta se puede programar fcilmente en los ordenadores y adems, se emplea mucho en la prctica, debido a su exactitud relativamente elevada de la solucin aproximada de la ecuacin diferencial. Definicin del mtodo Sea una ecuacin diferencial de primer orden, con la condicin inicial de que en el instante t0 el valor inicial de x es x0. Se elige una anchura de paso h y se calculan cuatro nmeros k1, k2, k3, k4 de acuerdo con el procedimiento esquematizado en la tabla adjunta. Segn el procedimiento ordinario de Runge-Kutta, a partir del valor de x en el instante t se determina el valor de x en el instante t+h mediante la ltima frmula en la tabla.

Algoritmo del mtodo Valor inicial de yn Valor inicial de to Valor inicial de tu Nmero de intervalos NI Dt( tu- to)/NI ynyo tn to Hacer I de 1 hasta NI k1f(yn,tn) k2f(yn+k1/2,tn+Dt/2) k3f(yn+k2/2,tn+Dt/2) k4f(yn+k3,tn+Dt) yn+1yn+(Dt/6)*(k1+2*k2+2*k3+k4) Imprimir (tn, yn, k1, k2, k3, k4, yn+1) ynyNI tntn+Dt

Programacin en Matlab Definimos la funcin rk_1.m que resuelve la ecuacin diferencial de primer orden, cuando le pasamos la funcin f(t,x), la condicin inicial de que en el instante t0 el valor inicial es x0, el instante final tf y el nmero de pasos de integracin n comprendidos entre el instante inicial t0 y el final tf. Nos devolver un vector t y su correspondiente vector x. function [t,x] =rk_1(f,t0,tf,x0,n) h=(tf-t0)/n; t=t0:h:tf; x=zeros(n+1,1); %reserva memoria para n elementos del vector x x(1)=x0; for i=1:n k1=h*f(t(i),x(i)); k2=h*f(t(i)+h/2,x(i)+k1/2); k3=h*f(t(i)+h/2,x(i)+k2/2); k4=h*f(t(i)+h,x(i)+k3); x(i+1)=x(i)+(k1+2*k2+2*k3+k4)/6; end end

Ejemplo en Matlab Considrese el circuito en serie de la figura. Inicialmente el condensador est descargado. Si se cierra el interruptor I la carga empieza a fluir produciendo corriente en el circuito, el condensador se empieza a cargar. Una vez que el condensador adquiere la carga mxima, la corriente cesa en el circuito.

Escribimos el script carga.m para que establezca mediante comandos input: la resistencia R del circuito, la capacidad C del condensador, el tiempo final tf, el nmero de pasos n. Tambin fijar las condiciones iniciales, en las que en el instante inicial t=0, el condensador est descargado x=0. Definir la funcin f(t,x), Llamar al procedimiento numrico rk_1 y mediante el comando plot realizar una representacin grfica de la solucin numrica. Despus realizar una representacin grfica de la solucin exacta.

Ejemplo: R=2.0, C=0.8, y tf=10. V0=10; R=input('Resistencia R: '); C=input('Capacidad C: '); tf=input('tiempo final, tf: '); n=input('nmero de pasos, n: '); f=@(t,x) V0/R-x/(R*C); %condiciones iniciales t0=0; x0=0; [t,x]=rk_1(f,t0,tf,x0,n); hold on plot(t,x,'b') y=C*V0*(1-exp(-t/(R*C))); plot(t,y,'r') xlabel('t') ylabel('q'); legend('aproximada','exacta','Location','Southeast') title('Carga del condensador') hold off

En la ventana de comandos corremos el script carga.m >> carga Resistencia R: 2 Capacidad C: 0.8 tiempo final, tf: 10 nmero de pasos, n: 50 >>

No se aprecia la diferencia entre la solucin exacta y la numrica, aplicando el procedimiento de Runge-Kutta debido a su alta exactitud.

APROXIMACIN FUNCIONAL

Una funcin p(x) definida en un intervalo [a,b] aproxima a una funcin f(x) en el mismo intervalo si: p(x) f(x) Para describir un mtodo de aproximacin funcional, son necesarios dos ingredientes fundamentales. En primer lugar, hay que definir el espacio de funciones donde se elige el aproximante p(x). Es decir, hay que elegir el tipo de aproximacin. En segundo lugar, es necesario formalizar matemticamente el significado de es aproximadamente igual a . Es decir, hay que definir el criterio de aproximacin. La aproximacin funcional se utiliza en dos situaciones tpicas: con la funcin dato f(x) conocida a partir de su expresin analtica, o con f(x) conocida de forma discreta, nicamente en unos puntos base xi (i=0,,n). Si se dispone de la expresin de f(x), el objetivo es aproximarla por una funcin p(x) ms manejable y computable, que habitualmente nos permitir adems aproximar integrales o derivadas de la funcin original. Si slo se dispone de valores discretos f(xi), adems del objetivo reseado, nos interesa obtener p(x) para poder evaluarlo en puntos distintos a los puntos base. Las funciones discretas son comunes en muchas reas, desde el diseo asistido por ordenador (CAD) al tratamiento de seales, pasando por las medidas experimentales.

Mnimos cuadrados Mnimos cuadrados es una tcnica de anlisis numrico enmarcada dentro de la optimizacin matemtica, en la que, dados un conjunto de pares ordenados: variable independiente, variable dependiente, y una familia de funciones, se intenta encontrar la funcin continua, dentro de dicha familia, que mejor se aproxime a los datos (un "mejor ajuste"), de acuerdo con el criterio de mnimo error cuadrtico. En su forma ms simple, intenta minimizar la suma de cuadrados de las diferencias en las ordenadas (llamadas residuos) entre los puntos generados por la funcin elegida y los correspondientes valores en los datos. Especficamente, se llama mnimos cuadrados promedio (LMS) cuando el nmero de datos medidos es 1 y se usa el mtodo de descenso por gradiente para minimizar el residuo cuadrado. Se puede demostrar que LMS minimiza el residuo cuadrado esperado, con el mnimo de operaciones (por iteracin), pero requiere un gran nmero de iteraciones para converger. Desde un punto de vista estadstico, un requisito implcito para que funcione el mtodo de mnimos cuadrados es que los errores de cada medida estn distribuidos de forma aleatoria. Tambin es importante que los datos a procesar estn bien escogidos, para que permitan visibilidad en las variables que han de ser resueltas. La tcnica de mnimos cuadrados se usa comnmente en el ajuste de curvas. Muchos otros problemas de optimizacin pueden expresarse tambin en forma de mnimos cuadrados. Definicin del mtodo La aproximacin mnimo cuadrtica consiste en minimizar el error cuadrtico mencionado ms arriba, y tiene solucin general cuando se trata de un problema de aproximacin lineal (lineal en sus coeficientes ) cualesquiera que sean las funciones base: antes mencionadas. Por lineal se entiende que la aproximacin buscada se expresa como una combinacin lineal de dichas funciones base. Sea un conjunto de n pares con abscisas distintas, y sea

un conjunto de m funciones linealmente independientes (en un espacio vectorial de funciones), que se llamarn funciones base. Se desea encontrar una funcin de dicho espacio, o sea, combinacin lineal de las funciones base, tomando por ello la forma:

Ello equivale por tanto a hallar los m coeficientes:

. En concreto, se

desea que tal funcin sea la mejor aproximacin a los n pares empleando, como criterio de "mejor", el criterio del mnimo error cuadrtico medio de la funcin con respecto a los puntos . El error cuadrtico medio ser para tal caso:

Minimizar el error cuadrtico medio es equivalente a minimizar el error cuadrtico, definido como el radicando del error cuadrtico medio, esto es:

As, los que minimizan tambin minimizan derivando e igualando a cero este ltimo:

, y podrn ser calculados

Siendo i=1,2, . . .,m Se obtiene un sistema de m ecuaciones con m incgnitas.

, para i=1, 2,..., m

, para i=1, 2,..., m Si se desarrolla la suma, se visualiza la ecuacin "i-sima" del sistema de m ecuaciones normales:

Para cada i=1, 2,..., m Lo cual, en forma matricial, se expresa como:

Siendo y g(x) como:

el producto escalar discreto, definido para dos funciones dadas h(x)

, Y para una funcin h(x) y vector cualquiera u, como:

La resolucin de dicho sistema permite obtener, para cualquier base de funciones derivables localmente, la funcin f(x) que sea mejor aproximacin mnimo cuadrtica al conjunto de puntos antes mencionado. La solucin es ptima esto es, proporciona la mejor aproximacin siguiendo el criterio de mnimo error cuadrtico, puesto que se obtiene al optimizar el problema. Si se tratara de hallar el conjunto de coeficientes exactamente por todos los pares a , entonces tendra que cumplirse que: tal que pase interpole

, esto es, tales que

Que en forma matricial se expresa como:

Esto establece un sistema de n ecuaciones y m incgnitas, y como en general n>m, quedara sobre determinado: no tendra siempre una solucin general. Por tanto, la aproximacin tratar en realidad de hallar el vector c que mejor aproxime .

Descripcin grfica

Ejemplo: funcin lineal Programacin en Matlab function correl xi=input('ingrese los valores de xi:\n'); yi=input('ingreso los valores de yi:\n'); xm=input('ingreso un valor de x para analisar la pendiente:\n'); n=length(xi); p=xi.'; q=yi.'; r=p.*q; s=p.*p; a1=sum(xi); a2=sum(yi); a3=sum(r); a4=sum(s); m=a2/n; j=sum((yi-m).^2); A=[a4 a1;a1 n]; B=[a3 a2]; X=inv(A)*(B'); l=X(1);r=X(2); fprintf('\nLos coeficientes de la ecuacion son:\n') fprintf(' a b\n') fprintf('%8.8f%10.8f\n',l,r) fun=input('\nLa funcion lineal es y=','s'); y=l*xi+r; t=sum((yi-y).^2); r2=1-(t/j); z=(r2)^0.5; m=diff(fun); x=xm; n=eval(m); fprintf('\n El coeficiente de determinacion r^2='); fprintf('%5.5f\n',r2); if(n>0) fprintf('\n El coeficiente de correlacion r='); fprintf('%5.5f\n',z); else fprintf('\n El coeficiente de correlacion r='); fprintf('%5.5f\n',-z); end hold on ezplot(fun),grid on, plot(xi,yi,'m.'), hold off

Corremos el programa con un ejemplo de valores >> correl ingrese los valores de xi: [4 5 2 5 6 7 1 8 3 7] ingreso los valores de yi: [5 6 4 5 7 10 3 11 4 9] ingreso un valor de x para analisar la pendiente: 2 Los coeficientes de la ecuacion son: a b 1.130252100.97478992 La funcion lineal es y=1.13025210*x+0.97478992 El coeficiente de determinacion r^2=0.88900 El coeficiente de correlacion r=0.94287 >> Grfica

Вам также может понравиться