Vous êtes sur la page 1sur 44

APROXIMACIONES Y ERRORES EN EL ANALISIS NUMERICO

1. Introducción
Las técnicas numéricas son muy sencillas y en sus aplicaciones, por
lo que es importante entender el concepto de “error” para utilizar en
forma efectiva los métodos numéricos.
Para validar una técnica numérica para un problema dado se necesita
de alguna manera que esta tenga solución analítica.
De no tenerla se usará aproximaciones o estimaciones de los errores.
-8 bits
-16 bits
-32bits
-64 bits
Los errores más comunes son los errores de redondeo y los errores
de truncamiento.
-Los errores de redondeo se deben a que la computadora solo puede
representar cantidades numéricas con un número infinito de dígitos.
-Los errores de truncamiento son los que representa la diferenciación
exacta de un problema y la aproximación dada por un método
numérico.
Otros errores que se pueden dar que no están relacionados con los
métodos numéricos.
-Errores por equivocación.
-Errores en la formulación del modelo.
-Incertidumbre en la obtención de los datos.

2. Cifras significativas
Cuando empleamos un numero en un determinado calculo, se debe
tener la seguridad de que pueda usarse con confianza.
EL concepto de cifras significativas, se ha desarrollado para designar
formalmente la confiabilidad de un valor numérico.
Los ceros causan siempre confusión al operar.
Ejem:
0.00001845
0.001845 Tiene 4 cifras significativas
0.01845

El concepto de cifras significativas tiene dos implicaciones importantes


en el estudio de los métodos numéricos.

 Los métodos numéricos dan resultados aproximados. Por lo que


se deben desarrollar para especificar que tan confiables son
dichos resultados, “El valor obtenido será correcta cuando se
especifica la cantidad n de cifras significativas.”

 Ciertas cantidades como π, e ,√7, representen numéricos


específicos, no se puede expresar exactamente como un numero
finito de dígitos.
Ejm: Sea π=3.141592653589793228462643…..∞

Y la aproximación dada por un método numérico.


Otros errores que se pueden dar que no están relacionados con los
métodos numéricos.
Y debido a que las computadoras retienen solo un numero finito de
cifras significativas tales números jamás se podrán representar con
exactitud.
A la omisión del resto de cifras significativas se le conoce como
errores de redondeo.
En el sistema decimal un cierto “número real” se encuentra
representado por un numeral N, tal que su descomposición
polinómica.
N=𝑎𝑚 𝑥10𝑚 + 𝑎𝑚−1 𝑥10𝑚−1 + 𝑎𝑚−2 𝑥10𝑚−2 + ⋯
Siendo los coeficientes:
𝑎𝑖 (𝑖 = 𝑚, 𝑚 − 1, 𝑚 − 2, … )
Valores enteros y positivos menores que diez.
Orden: El orden de un número es el mayor valor que adopta el
exponente de 10 en la descomposición polinómica del número,
asumiendo que sus coeficientes de cero.
Cifras significativas: Serán todos los coeficientes comprendidos en la
descomposición polinómica del numeral.
Ejm: - Sea N=27.048

𝑁 = 2𝑥101 + 7𝑥100 + 0𝑥10−1 + 4𝑥10−2 + 8𝑥10−3


M=1
C.S=5

Notación científica =2.7048x101


Ejm:
N=0.002804
Descomposición polinómica:
𝑁 = 2𝑥10−3 + 8𝑥10−4 + 0𝑥10−5 + 4𝑥10−6
Orden m=-3
C.S=4

Notación científica =2.804x10−3


Entonces las cifras significativas son los dígitos de un número que
consideremos no nulos.
8723 4c.s/ Son significativas todos los dígitos distintos de
cero.
105 3c.s/ Los ceros situados entre cifras significativas son
significativas
0.005 1c.s/ Los ceros a la izquierda de la primera cifra
significativa no
lo son
8.00 3c.s/ Para números mayores que uno, los ceros a la
derecha del punto decimal son significativas
7x102 1c.s /Para números sin punto decimal, los ceros
posteriores a la última cifra distinta de cero pueden o no considerarse
significativas
7.0x10 2c.s/ Para este caso que es 70 podemos considerar una
o dos cifras significativas
3. Conceptos de exactitud y precisión
Los errores asociados a os cálculos se pueden caracterizar con respecto a su
exactitud y precisión.

1) Exactitud: Se refiere a que tan cercano esta el valor calculado o medida


respecto al valor verdadero
2) Precisión: Se refiere a que tan cercano se encuentra, los valores
calculados o medidos unos de otros.

a) Inexacta o impreciso
b) Exacto e impreciso
c) Inexacto y preciso
d) Exacto y preciso

3) Inexactitud: Es una desviación sistemática del valor verdadero


4) Precisión: Se llama también incertidumbre, esta se refiere a la magnitud
es la dispersión de los valores, calculados o medidas

En Matlab
De acuerdo al ejemplo anterior podemos decir:

Valor Verdadero = Valor aproximado + Error

Error = Valor Verdadero – Valor Aproximado

En notación matemática:

Ev = 𝑥-𝑥̅
Donde Ev = Denota el valor verdadero(exacto) del error

𝑥 = representa el valor verdadero


𝑥̅ = representa el valor aproximado
Existe un problema al utilizar esta definición de error, estos es la magnitud
no nos indica que tan representativa es esta cantidad

Para resolver esta incertidumbre en la interpretación del Error se recurre a la


normalización del mismo usando el valor verdadero como referencia.
𝐸𝑟𝑟𝑜𝑟 𝑣𝑒𝑟𝑑𝑎𝑑𝑒𝑟𝑜
Error relativo fraccionario =
𝑉𝑎𝑙𝑜𝑟 𝑣𝑒𝑟𝑑𝑎𝑑𝑒𝑟𝑜

( 𝑥− ̅̅̅
𝑥)
Er =
𝑥

También el valor del error relativo se puede expresar en forma porcentual al


multiplicar por 100 el error relativo fraccionario.
( 𝑥− ̅̅̅
𝑥)
Ep = 𝑥100
𝑥
Para fines de poder comparar los errores de un cálculo contra las de otro, se
prefiere usar valores absolutos.

Ev = |𝑥-𝑥̅ |
( 𝑥− ̅̅̅
𝑥)
Er = | |
𝑥
̅̅̅
( 𝑥− 𝑥)
Ep = | |𝑥100
𝑥

Para los errores anteriores es que para ser evaluados se requiere del valor
verdadero, entonces el error se puede estimar como la diferencia entre la
aproximación previa y la aproximación actual:

a) Error aproximado

ea = xi+1 - xi
b) Error relativo fraccionario aproximado

𝑥𝑖+1 − 𝑥𝑖
er =
𝑥𝑖+1
c) Error relativo porcentual aproximado

𝑥𝑖+1 − 𝑥𝑖
ep = ( 𝑥𝑖+1
) 𝑥100
reescribiendo:

ea = |xi+1 - xi |
𝑥𝑖+1 − 𝑥𝑖
er = | |
𝑥𝑖+1

𝑥𝑖+1 − 𝑥𝑖
ep = | |𝑥100
𝑥𝑖+1

programa de chauca

𝐸 𝑉𝑎𝑙𝑜𝑟 𝑟𝑒𝑎𝑙−𝑉𝑎𝑙𝑜𝑟 𝑐𝑎𝑙 ∗ 100


𝑣𝑟 =| 𝑉𝑎𝑙𝑜𝑟 𝑟𝑒𝑎𝑙 |

Error permisible: Es; es=0.1 es=0.0001

Controlar el proceso iterativo en el cual el error aproximado sea <= al error


permisible.

𝐸𝑣𝑟 ≤ 𝑒𝑠

SERIE DE MACLAURIN
clc
clear all
format long
x=0.5;
Es=0.00001; %error permisible
vreal=exp(x);
fprintf('Valor real de exp(x) %12.8f\n',vreal)
%Algoritmo para utilizar la serie de Maclaurin
n=input('Ingrese cantidad de términos de la serie : ');
suma=1; %variable que va acumular para obtener exp(x)
facto=1;
%ciclo repetitivo for
for i=1:n-1
facto=facto*i;
y=x^i/facto;
suma=suma+y;
error=abs((vreal-suma)/vreal)*100;
if (error<Es)
fprintf('El error obtenido es %12.8f\n',error)
fprintf('El valor de exp(x) aprox %12.8f\n',suma)
break
end
end

Para obtener es= (0.5x102-n)%


Donde “n” es el número de cifras significativas(scaroborough,1960)

Para añadir al informe

1. Se tiene la serie infinita

es valida para el intervalo -1<x<1 y puede ser usada para el calculo de


logaritmos naturales

a) Determinar el valor del logaritmo natural de 1.5 usando la serie finita


con 20 terminos
b) Calcule el error relativo porcentual usando el valor del logaritmo
natural de matlab

2. Existen muchas formas para el cálculo del valor aproximado para el


cálculo del valor aproximado de π una de ellas, llamada del producto de
Wallis consiste en el producto infinito siguiente:
Calcular el valor del error relativo porcentual cuando se usan10 términos de
la serie infinita, use 8 decimales

Raíces de ecuaciones

Objetivos:

Al termino este capitulo el alumno será capaz de:

1. Calcular el valor de las raíces de una ecuación, por medio de la


aplicación de métodos cerrados y abiertos.
2. Determinar la posibilidad de convergencia al usar métodos abiertos.

Raices de
Ecuaciones

Metodos Metodos
Cerrados Abiertos

newton
Biseccion Regula Falsi Punto fijo Horner Secante
Raphson

Dentro de la formación del estudiante se ha ido calculando raíces de


ecuaciones triviales y sencillas.

Ejemplo:
La raíz cuadrática

−𝑏 ± √𝑏 2 − 4𝑎𝑐
𝑥=
2𝑎

Metodos Cerrados

Aprovechan de que una función cambia de signo en la vecindad de una raíz.

Esto es dentro de un intervalo cerrado, por lo que se necesita dos valores


iniciales

Xϵ[a,b]

Una forma de visualizar la posible raíz de una ecuación es utilizando el


método grafico, esto es para la ecuación

F(x)=0

Ejemplo: Sea la función

F(x) = sen(10x) + cos(3x) ,

Donde X esta en el rango [ 0 , 5 ]

>> fplot('sin(*x)+cos(3*x)',[0,5]),grid
Podemos apreciar que tiene 13 raices en este intervalo, a excepción del
intervalo [4 , 4.5] , que puede ser una o dos raíces adicionales.

>> fplot('sin(10*x)+cos(3*x)',[4,4.5])
Existen 2 raices entre 4.2 y 4.3

>> fplot(' ',[4,4.5]) , grid

Otro ejemplo:

Localizar las raíces gráficamente

F(x) = x2 + 2x – 4 ,[-4 , 4]

>> fplot('[x.^2+2*x-4]',[-4,4])

Otro ejemplo ; para la función anterior lo separamos en dos subfunciones


F(x)=0 --- x2 = 4 – 2x

F1(x)=x2 y F2(x) = 4 – 2x
Otro ejemplo

Visualizar la posible raíz para la función

F(x)=e-x – x X ϵ [ -2 , 2 ]
Metodo de Biseccion
Este método consiste en tomar un intervalo de valores donde al evaluar la
función ((F(x)=0) en los extremos se presenta un cambio de signo, con lo cual
se asegura que por lo menos exista una raíz dentro del intervalo.

F(x)=0 Xϵ[a,b]

A continuación se calcula el punto medio del intervalo, por lo que, de esta


manera de intervalo inicial se divide en dos nuevos intervalos mas pequeños.
Se repite el análisis del cambio de signo para desechar el subintervalo que no
contiene la raíz
𝑎+𝑏
XM = =c
2

Este método puede requerir de muchas iteraciones, para poder localizar en


que intervalo se encuentra una posible raíz por lo que esto se hace lento.

En general : si F(x) es real y continua en el inbtervalo entre [a , b] y F(a) y


F(b) tienen signos opuestos -- Ǝ al menos una raíz real entre a y b

La posición de la raíz se determina situándola en el punto medio del


subintervalo en el cual ocurre un cambio de signo.

Se ha visto en el método grafico que la función cambia de signo en la


vecindad de una raíz.

De forma general, si la f(x) es real y continua en el intervalo que va desde Xi

Hasta un Xu , y la función evaluada f(xi) y f(xu) tienen signos opuestos.

f(xi).f(xu)<0

Entonces hay al menos una raíz real entre Xi y Xu.


El motodo de la bisección también se le conoce como corte binario, de
partición de intervalos o de Bolzano.

Este método es un tipo de búsqueda incremental en el que el intervalo se


divide siempre a la mitad.

Si la función cambia de signo sobre un intervalo, se evalúa el valor de la


función en el punto medio del subintervalo, dentro del cual ocurre un
cambio de signo. Este proceso se repite hasta tener una mejor aproximación

GRAFICAMENTE.

F(x)=0 y que esta definido en [Xi,Xu] y que sea continua ---> f(Xi) y f(Xu)
deben ser signos opuestos.

F(Xu)

Solucion exacta

[ ]

F(x) f(Xi)<0 [ ]

[ ]
Procedimiento para el método de la bisección

Paso1: Elegir el valor inicial inferior Xi y superior Xu, que encierra una
raíz.
Evalua la función f(xi) y f(xu) de tal forma que la función cambie de
signo en el intervalo.
F(xi).f(xu)<0.

Paso2: Se determina una raíz aproximada Xr mediante


𝑋𝑖 + 𝑋𝑢
𝑋𝑟 =
2
Paso3: Realizar las siguientes evaluaciones para determinar en que
subintervalo esta la raíz.
Se encuentra dentro del subintervalo inferior o ixquierda, por lo tanto
hacer Xu=Xr y regrese al paso2.
b)si f(Xi).f(Xu)>0  la raíz se encuentra dentro del subintervalo
superior o derecho, por lo tanto hacer Xp=Xn y volver al paso 2.
c)Si f(Xi).f(Xr)=0 La raíz es igual a Xr y termina el calculo.
Como control del proceso iterativo podemos usar el error relativo
porcentual
Ea:

𝑋𝑟𝑛𝑢𝑒𝑣𝑜 − 𝑋𝑟𝑎𝑛𝑡𝑒𝑟𝑖𝑜𝑟
𝐸𝑎 = 𝑥100
𝑋𝑟𝑛𝑢𝑒𝑣𝑜
Es=(0.5x102-n)%
Ea<=Es
Ejemplo:
Usar el método de la bisección para calcular la raíz de f(x)=e-x-x
En el intervalo [0,1], con una aproximación de 4 cifras.
Solución:
Xi=0 y Xu=1, n=4 cifras
Es=(0.5x102-u)%
Es=0.005%
 El proceso iterativo será para Ea<=Es=0.005%
Xi=Xu
El programa principal
clear all
clc
disp('Metodo cerrado de la biseccion')
f=input('Ingrese la funcion=','s');
f=inline(f);
n=input('Ingrese cifras significativas=');
xl=input('Ingrese valor inferior del intervalo=');
xu=input('Ingrese valor superior del intervalor=');
es=0.5*10^(2-n);
ea=100;
xr=0;
i=0;
%variable contador
while ea>es
xa=xr;
xr=(xl+xu)/2; %Formula de la biseccion
ea=abs((xr-xa)/xr)*100;
r=f(xl)*f(xr);
if r<0
xu=xr;
elseif r>0
xl=xr;

end
i=i+1;
end %fin del ciclo while
fprintf('La raiz de la ecuacion:%12.5f\n',xr)
fprintf('Error aproximado:%12.10f\n',ea)
fprintf('Numero de iteraciones:%i\n',i)

2.-Metodo de la regla falsa(Regula Falsi)

F(X0)
F(Xu)

Xl
Xu X

F(Xl)
Este método consiste en unir f(xi) y f(Xu) con una línea recta, la interseccion de esta línea recta con la abcisa nos
da una raíz aproximada a la solución exacta. Tambien se le conoce como el método de interpolación lineal.

F(Xu)

Xl Xr
Xu
F(Xl)

Por semejanza de triángulos

𝑓(𝑋𝑙) 𝑓(𝑋𝑢)
=
𝑋𝑟 − 𝑋𝑙 𝑋𝑟 − 𝑋𝑢

𝑓(𝑋𝑢).(𝑋𝑙−𝑋𝑢)
Xr=Xu -
𝑓(𝑋𝑙)−𝑓(𝑋𝑢)

(−0.6321).(0−1)
Xr=1-
[1—0.6321]

0.6321
Xr=1- =0.61270
1.6321
Programa General
clear all
clc
disp('Solucion de ecuaciones no lineales')
f=input('Ingrese la funcion=','s');
f=inline(f);
disp('Por el metodo cerrado regula falsi')
n=input('Ingrese cantidad de cifras significativas=');
xl=input('Ingrese el valor del intervalo inferior=');
xu=input('Ingrese el valor del intervalo superior=');
es=0.5*10^(2-n);
ea=100;
xr=0;
i=0;
while ea>es
xa=xr;
xr=xu-(f(xu)*(xl-xu))/(f(xl)-f(xu));
r=f(xl)*f(xr);
if(r<0)
xu=xr;
ea=abs((xr-xa)/xr)*100;
elseif(r>0)
xl=xr;
ea=abs((xr-xa)/xr)*100;
end
i=i+1;
end %fin del while
fprintf('Raiz obtenida:%12.8f\n',xr)
fprintf('Error aproximado:%12.8f\n',ea)
fprintf('Numero de iteraciones:%12.0f\n',i)

3)Solucion de Ec No Lineales por métodos abiertos


-M. Newton Raphson
-M.Secante
-M.Punto Fijo
Metodo de Newton raphson.
Este es uno de los métodos mas utilizados en el campo de ingeniería.
El algoritmo se deduce de la siguiente manera.
𝑓(𝑋𝑖)
𝑋(𝑓) = 𝑋(𝑖) −
𝑓′(𝑋𝑖)
Del grafico: f’(xi)=(f(xi)-0)/Xi

Ejemplo USANDO NEWTON RAPHSON

-x
f(x)=e -x

valor inicial(semilla),x=0 del algoritmo

Xi+1=xi-(f(xi)/(f’(xi))

Para el algoritmo

i=0,1,2,3,4,5….

-x
f’(x)=-e -1, 0.005

2-n
es=(0.5*10 ) n=Cantidad de cifras significativas

Consideramos: es=0.001

-xi -xi
Xi-1=xi-(e -xi)/(-e -1)
Adjuntar tabla:

Algoritmo de computación para N.Raphson


clear all
clc
disp('Sol de una ecuacion no lineal')
disp('Metodo abierto N.Raphson')
n=input('Ingrese cifras significativas=');
xi=input('Ingrese valor inicial=');
es=(0.5*10^(2-n));
ea=100; %Error absoluto
i=0;
%Uso del ciclo while
while (ea>es)
xa=xi;
fxi=exp(-xi)-xi;
dxi=-exp(-xi)-1;
xi=xa-fxi/dxi;
ea=abs((xi-xa)/xi)*100;
i=i+1;
end
fprintf('La raiz obtenida:%12.8f/n',xi)
fprintf('Numero de iteraciones:%12.0f/n',i)
OTRA FORMA

clear all
clc
x0=0; %Valor inicial
es=0.001;
%Ciclo for
for i=1:1000
fx=exp(-x0)-x0;
dfx=-exp(-x0)-1;
x1=x0-fx/dfx; %Algoritmo de newton raphson
ea=abs((x1-x0)/x1)*100;
if(ea<es)
disp('raiz cuadrada')
disp(x1)
disp('iteraciones')
i
break
end
x0=x1;
end

METODO DE LA SECANTE

F(xi-1)

y Solucion exacta f(xi-1) –f(xi)

(Xi-1)-x1

Xi+1
𝑓(𝑋𝑖)
𝑋𝑖 + 1 = 𝑋𝑖 −
𝑓(𝑥𝑖 − 1) − 𝑓((𝑥𝑖)
𝑋𝑖 − 1 − 𝑋𝑖

𝑓(𝑥𝑖 ).(𝑋𝑖−1−𝑋𝑖)
𝑋𝑖 + 1 = 𝑋𝑖 − 𝑓(𝑋𝑖−1)−𝑓(𝑋𝑖)

Algoritmo de la secante
F(x)=e-x-x

Ejmplo:
Metodo de la secante.
F(x)=e-x-x
Xi-1=0; Xi=1
Metodo del Punto Fijo:
f(x)=0 ………………………..1
Geometrica

Si se tiene una ecuacion algebraica o transcendente cualquiera de la


forma(1).
Se puede transformar a su equivalente en
g(x)=x……………..2
Esto es al sumar x en ambos miembros de la ecuación 1.
f(x)+x=x
g(x)=x
g(x)=f(x)+x…………3
El metodo del punto fijo consiste en sustituir un valor inicial(x0)
aproximado a la raiz en el primer miembro de la ecuación 2
G(X0)=x0……………..4
X1=g(x0)……………….5
Nuevamente al sustituir x1 en el primer miembro de la ecuación 2 se
obtiene la siguiente aproximación.
X2=g(x1)
Entonces para la enésima aproximación…
Xn=g(Xn-1), n=1,2,3,4,…..
Algoritmo del método del punto fijo.
El método será convergente si la diferencia de l valor absoluto entre
los valores calculados en dos iteraciones sucesivas, es cada vez
menos a medida que “n” aumenta.
Debe cumplirse el criterio de :

LIPSCHITZ.
|g’(x)|<1
Convergencia monotómica
Convergencia oscilatoria

Divergencia monotómica
Divergencia oscilatoria
Ejemplo:
f(x)=e-x-x=0
e-x-x+x=0
e-x=x

g(x)=x

si X0=1 Valor inicial

g(x)=e-x

g’(x)=-e-x

|g’(x0)|=|-e-x0|<1

=|-e-1|<1

|-0.3678|

X(i+1)=e-xi

PROGRAMA
clear all
clc
disp('Ecuacion no lineal_punto fijo')
n=input('Cantidad de cifras
significativas:');
Xi=input('Ingrese valor inicial:');
es=(0.5*10^(2-n));
ea=100;
i=0;
while (ea>es)
xa=xi;
xi=exp(-xi);
ea=abs((xi-xa)/xi)*100;
i=i+1;
end
fprintf('raiz=%12.8f\n',xi)
Sistema de ecuaciones no lineales
Este método consiste en obtener las raíces de un conjunto de
ecuaciones simultaneas no lineales.
f(x)=0
f1(x1,x2,x3,…,xn)=0
f2(x1,x2,x3,…,xn)=0
… …
fn(x1,x2,x3,…,xn)=0
Entonces la solución de este sistema de ecuaciones
simultaneas,consiste de un conjunto de valores xi que
simultáneamente verifican todas las ecuaciones.
Ejemplo:  Sean las ecuaciones:
x2+xy=10
y+3xy2=57
Para este tipo de ecuación las dos ecuaciones tienen 2
variables lo cual podemos hacer que x1=x y x2=y
Por lo que podemos representarlo a las 2 ecuaciones como:
U(x,y)= x2+xy-10=0
V(x,y)= y+3xy2-57=0
Para solucionar este tipo de ecuaciones vamos a considerar
los métodos abiertos ;punto fijo y newton raphson.
Método punto fijo:
Este método puede modificarse para resolver 2 ecuaciones
simultaneas no lineales.
f(x)=0  x=g(x);algoritmo: xi+1=g(xi)
para un sistema de dos ecuaciones simultaneas no lineales
xi+1=g(xi,yi)
yi+1=h(xi,yi)
aplicacion:desarrolle el metodo del punto fijo para las 2
ecuaciones dadas en el ejemplo:
xi=1.5 ; yi=3.5
>> U(x,y)= x2+xy-10=0…….(1)
>>V(x,y)= y+3xy2-57=0…….(2)
De (1) despejamos x:

X=√10 − 𝑥𝑦

Xi+1=√10 − 𝑥𝑖 𝑦𝑖
De (2) despejamos y:
57−𝑦
Y=√
3𝑥

57−𝑦𝑖
Yi+1=√
3𝑥𝑖

clear all
clc
disp('metodo de ecuacciones no lineales')
n=input('ingresar numero de cifras significativas:');
x0=input('ingresar valor inicial de x= ');
y0=input('ingresar valor inicial de y= ');
es=(0.5*10^(2-n));
eax=100;
eay=100;
i=0;
%ciclo while
fprintf('\n i\t\t\t xi \t\t\t yi \n')
while (eax>es & eay>es)
xi=sqrt(10-x0*y0);
yi=sqrt((57-y0)/(3*xi));
eax=abs((xi-x0)/xi)*100;
eay=abs((yi-y0)/yi)*100;
x0=xi;
y0=yi;
i=i+1;
fprintf('%12.5f\t\t%12.5f\t\t\t%i\n',[i;xi;yi])
end

%TAREA:MODIFICAR EL PROGRAM DE TAL MANERA QUE PRESENTE 2 GRAFICOS:


%XI VS ITERACIONES
%YI VS ITERACIONES
%TAREA2:ESCIBIRLO EN FORTRAN Y SU EJECUCION
CODIGO EN FORTRAN:
PROGRAM ECUACIONES

INTEGER::N

REAL::X0,Y0,XI,YI,EAX,EAY

PRINT*,"INGRSE NUMERO DE ITERACIONES"

READ*,N

PRINT*,"INGRESE VALOR INICIAL DE X"

READ*,X0

PRINT*,"INGRESE VALOR INICIAL DE Y"

READ*,Y0

ES=0.0001

DO I=1,N

XI=SQRT(10-X0*Y0)

YI=SQRT((57-Y0)/(3*XI))

EAX=ABS((XI-X0)/XI)*100

EAY=ABS((YI-Y0)/YI)*100

IF (EAX>ES .AND. EAY>ES) THEN

X0=XI

Y0=YI

END IF

END DO

PRINT*,XI,YI

END PROGRAM ECUACIONES


METODO DE NEWTON RAPHSON

EL ALGORITMO DE N.R TAMBIEN SE PUEDE OBTENER DE LA SERIE DE TAYLOR


DE PRIMER ORDEN:

F(XI+1)=F(XI)+F’(XI)(XI+1-XI)…..(1)

DONDE:

XI=ES EL VALOR INICIAL DE LA RAIZ,Y XI+1 ES EL VALOR EN EL CUAL LA RECTA


TANGENTE INTERSECTA AL EJE X,DONDE POR DEFINICION EN LA
INTERSECCION HACE F(XI+1)=0

LA ECUACION (1) LO REORDENAMOS:

0=F(XI)+F’(XI)*(XI+1-XI)
𝐹(𝑋𝐼 )
XI+1=XI- ….(2)
𝐹′(𝑋𝐼 )

ESTE ALGORITMO ES VALIDO PARA UNA SOLA VARIABLE

ENTONCES EL ALGORITMO DE N.R PARA MULTIPLES ECUACIONES SE


OBTENDRAN EN FORMA IDENTICA.

SE DEBE TOMAR EN CUENTA LA SERIE DE TAYLOR PARA MULTIPLES


VARIABLES ESTO ES PARA TOMAR EN CUENTA EL HECHO DE QUE MAS DE
UNA VARIABLE INDEPENDIENTE CONTRIBUYE A LA DETERMINACION DE UNA
RAIZ.

PARA EL CASO DE DOS VARIABLES UNA SERIE DE TAYLOR DE PRIMER ORDEN


SE ESCRIBE PARA CADA ECUACION NO LINEAL.
𝜕𝑈𝐼 𝜕𝑈𝐼
UI+1=UI+ (XI+1-XI)+ (YI+1-YI)……(3)
𝜕𝑋 𝜕𝑌

𝜕𝑉𝐼 𝜕𝑉𝐼
VI+1=VI+ (XI+1-XI)+ (YI+1-YI)……..(4)
𝜕𝑋 𝜕𝑌
ENTONCES COMO EN EL CASO DE UNA SOLA ECUACION NO LINEAL LA RAIZ
CORRESPONDIENTE A LOS VALORES DE X Y Y,DONDE UI+1 y VI+1

SON IGUALES A CERO.

EN TAL SENTIDO LAS ECUACIONES (3) Y (4) LA REORDENAMOS DE LA


SIGUIENTE MANERA:
𝜕𝑈𝐼 𝜕𝑈𝐼 𝜕𝑈𝐼 𝜕𝑈𝐼
XI+1 + YI+1=- UI+ XI + YI ……(5)
𝜕𝑋 𝜕𝑌 𝜕𝑋 𝜕𝑌

𝜕𝑉𝐼 𝜕𝑉𝐼 𝜕𝑉𝐼 𝜕𝑉𝐼


XI+1+ YI+1=- VI+ XI + YI ………..(6)
𝜕𝑋 𝜕𝑌 𝜕𝑋 𝜕𝑌

EN LAS ECUACIONES (5) Y (6) SE CONOCEN TODOS LOS VALORES CON


SUBINDICE “I”,LAS UNICAS INCOGNITAS SON XI+1 Y YI+1  LAS 2
ECUACIONES SERAN DOS ECUACIONES LINEALES CON DOS INCOGNITAS,POR
LO QUE PODEMOS USAR MANIPULACIONES ALGEBRAICAS(REGLA DE
CRAMMER) PARA RESOLVERLO.

>>EL ALGORITMO DE N.R PARA 2 ECUACIONES NO LINEALES


SIMULTANEAMENTE ES :

𝜕𝑉𝐼 𝜕𝑈
𝑈𝐼 ∗ −𝑉𝐼∗ 𝐼
𝜕𝑌 𝜕𝑌
XI+1=X I-𝜕𝑈𝐼 𝜕𝑉𝐼 𝜕𝑈𝐼 𝜕𝑉𝐼
∗ − ∗
𝜕𝑋 𝜕𝑌 𝜕𝑌 𝜕𝑋
PARA EL EJEMPLO ANTERIOR:

clear all
clc
disp('calculo de raices de ecuaciones no
lineales')
disp('usando metodo de n.r')
n=input('ingrese numero de cifras
significativas:')
xi=input('ingrese valor inicial de x');
yi=input('ingrese valor inicial a y');
es=(0.5*10^(2-n));
eax=100;
eay=100;
i=0;
while (eax>es & eay>es)
xa=xi;
ya=yi;
ui=xi^2+xi*yi-10;
vi=yi+3*xi*(yi^2)-57;
duidx=2*xi*yi;
duidy=xi;
dvidx=3*(yi^2);
dvidy=1+6*xi*yi;
jacobi=duidx*dvidy-duidy*dvidx;
%EL ALGORITMO DE N.R PARA XI
xi=xi-(ui*dvidy-vi*duidy)/jacobi;
yi=yi-(vi*duidx-ui*dvidx)/jacobi;
eax=abs((xi-xa)/xi)*100;
eay=abs((yi-ya)/yi)*100;
i=i+1;
end
fprintf('raiz de x %12.8f\n',xi)
fprintf('raiz de y%12.8f\n',yi)
fprintf('numero de iteraciines %12.8f\n',i)
Algebra lineal numérica
1)En este capitulo vamos a encontrar los valores de:
x1,x2,x3,...,xn
que en forma simultanea satisfacen un sistema de ecuaciones
lineales.
𝑎11 𝑥1+ 𝑎12 𝑥2+ 𝑎13 + ⋯ … … … … … … … . +𝑎1𝑛 𝑥𝑛 = 𝑏1
𝑎21 𝑥1+ 𝑎22 𝑥2+ 𝑎23 + ⋯ … … … … … … … . +𝑎2𝑛 𝑥𝑛 = 𝑏2

𝑎𝑛1 𝑥1+ 𝑎𝑛2 𝑥2+ 𝑎𝑛3 + ⋯ … … … … … … … . +𝑎𝑛𝑛 𝑥𝑛 = 𝑏𝑛


Donde los 𝑎𝑖𝑗 son los coeficientes,los 𝑏𝑖 son los términos
independientes constantes y “n”es el numero de ecuaciones.
Las 𝑥𝑖 son las incognitas.
2)Matrices y vectores
°Notacion matricial:Una matriz consiste de un arreglo
rectangular de elementos representados por:
𝑎11 𝑎12 𝑎13 𝑎1𝑛
𝑎21 𝑎22 𝑎23 𝑎2𝑛
𝑎31 𝑎32 𝑎33 𝑎3𝑛
[𝐴] = .
.
.
[𝑎𝑛1 𝑎𝑛2 𝑎𝑛3 𝑎𝑛𝑛 ]

Donde:
[𝐴]=es la notación breve para la matriz
𝑎𝑖𝑗 =es el elemento individual de la matriz ubicado en la i-
esima fila y la j-esima columna.(i=fila;j=columna)
Y para la matriz [𝐴],se dice que tiene una dimensión de n por
m(nxm);es decir: n filas y m columnas.
Vector fila:
Se designa a las matrices con dimensión de n=1(fila) de tal
forma:
[𝐵]=[𝑏1 𝑏2 𝑏3 … 𝑏𝑛 ]
Vector columna:
Se designa a las matrices con dimensión columna m=1,
𝑐1
𝑐2
𝑐3
[𝐶 ]= .
.
.
[𝑐𝑛 ]
Matriz cuadrada:
Es aquella en que n=m
1 2 3
[𝐴] = [4 5 6](n * m) =(3* 3)
7 8 9

Tipos de matrices cuadradas:


a)Matriz simétrica:
𝑎𝑖𝑗 =𝑎𝑗𝑖 ∀ 𝑖, 𝑗
5 1 2 3 1 2
[𝐴] = [1 3 7] = [1 3 7]Es una matriz simétrica de
2 7 8 2 7 8
3*3
b)Matriz diagonal:Es una matriz cuadrada donde todos los
elementos fuera de la diagonal principal son iguales a cero.
𝑎11 0 0
[𝐴] = [ 0 𝑎22 0 ]
0 0 𝑎33
c)Matriz identidad:Es una matriz diagonal donde todos los
elementos en la diagonal principal son iguales a 1.

1 0 0
[𝐼] = [0 1 0]
0 0 1
d)Matriz triangular superior:Es una matriz cuadrada,donde
todos los elementos por debajo de la diagonal principal son
ceros.
𝑎11 𝑎12 𝑎13 𝑎14
0 𝑎22 𝑎23 𝑎24
[𝐴 ] = [ 𝑎34 ]
0 0 𝑎33
0 0 0 𝑎44
f)Matriz triangular inferior:

𝑎11 0 0 0
0 𝑎22 0 0
[𝐴 ] = [ ]
0 0 𝑎33 0
0 0 0 𝑎44
g)Matriz bandeada:Una matriz bandeada tiene todos los
elementos iguales acero,con excepción de una banda
centrada sobre la diagonal principal.

𝑎11 𝑎12 0 0
𝑎 𝑎 𝑎23 0
[𝐴] = [ 21 22 ]
0 𝑎32 𝑎33 𝑎34
0 0 𝑎43 𝑎44
Operaciones.
1)Suma de matrices:
[𝐴]𝑛∗𝑚 𝑦 [𝐵]𝑛∗𝑚

[𝐶 ] = [𝐴] ± [𝐵]
𝑐𝑖𝑗 = 𝑎𝑖𝑗 ± 𝑏𝑖𝑗 ; 𝑝𝑎𝑟𝑎 𝑖, 𝑗 = 1,2,3, … , 𝑛
Nota>>La suma y resta de matrices es conmutativa y
asociativa:
([𝐶 ] + [𝐴]) + [𝐵] = [𝐶 ] + ([𝐴] + [𝐵])
2)Multiplicacion de matrices:
>>Multipliacion de una matriz por un escalar 𝜆:
𝜆𝑎11 𝜆0 𝜆0
𝜆[𝐴] = [ 𝜆0 𝜆𝑎22 𝜆0 ]
𝜆0 𝜆0 𝜆𝑎33
>>Multiplicacion de dos matrices:la regla es:
[𝐶 ] = [𝐴]. [𝐵]
𝑚

𝑐𝑖𝑗 = ∑ 𝑎𝑖𝑘 𝑏𝑘𝑗


𝑘=1

Donde “m” es la dimensión columna de [𝐴] y la dimensión


fila de [𝐵],esto es el elemento 𝑐𝑖𝑗 se obtiene al sumar el
producto de elemento individuales de la i-esima fila de la
matriz [𝐴] por la j-esima columna de la segunda matriz [𝐵].
[𝐴]𝑁∗𝑀 [𝐵]𝑀∗𝐿 = [𝐶 ]𝑁∗𝐿
clear all
clc
A=input('ingrese [A]:');
B=input('ingrese [B]:');
a=size(A);
b=size(B);
n=a(1);
m1=a(2);
m2=b(1);
l=b(2);
for i=1:n
for j=1:l
if m1==m2
suma=0;
for k=1:m1
suma=suma+A(i,k)*B(k,j);
end
C(i,j)=suma;
else
disp('TAMAÑO DE MATRICES DIFERENTES')
end
end
end
C

Metodos directos para resolver sistema de ecuaciones lineales:

En forma general,podemos clasificar los métodos para resolver sistemas de


ecuaciones lineales como métodos graficos,métodos directos y métodos iterativos.

1)método de eliminación gaussiana simple:consta de dos fases

a)realiza la eliminación de las incognitas

b)se busca la solución mediante la sustitución hacia atrás

nota:la eliminación hacia delante de las incognitas reduce el conjunto de


ecuaciones a un sistema triangular superior.

Ejemplo>>

2x-y+3z=5

2x+2y+3z=7

-2x+3y+0=-3

Vamos escribirlo en notación matricial los coeficientes y ********

𝟐 −𝟏 𝟑 𝟓
[𝟐 𝟐 𝟑| 𝟕 ]
−𝟐 𝟑 𝟎 −𝟑
Entonces de acuerdo al esquema,a su vez la diagonal principal debe estar formado
“+”

−𝟏 𝟐 𝟑 𝟓 𝟏 −𝟐 −𝟑 −𝟓
[𝟐 𝟐 𝟑| 𝟕 ] *(-1) [𝟐 𝟐 𝟑 | 𝟕 ] SOLO A LA 1 FILA
𝟑 −𝟐 𝟎 −𝟑 𝟑 −𝟐 𝟎 −𝟑
−𝟏 𝟐 𝟑 −𝟓
[ 𝟎 𝟔 𝟗| 𝟏𝟕 ] f2=-2F1+F2;F3=-3F1+F3
𝟎 𝟒 𝟗 𝟏𝟐

−𝟏 𝟐 𝟑 −𝟓
[ 𝟎 𝟏 𝟑/𝟐|𝟏𝟕/𝟔]SE HIZO EL ELEMENTO A(2,2) IGUAL A 1 DIVIENDO A
𝟎 𝟒 𝟗 𝟏𝟐
TODO ENTRE 6

−𝟏 𝟐 𝟑 −𝟓
[ 𝟎 𝟏 𝟑/𝟐|𝟏𝟕/𝟔]SE OBTUVO F3=(-4F2+F3)/3
𝟎 𝟎 𝟏 𝟐/𝟗

Vous aimerez peut-être aussi