Académique Documents
Professionnel Documents
Culture Documents
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
a) Inexacta o impreciso
b) Exacto e impreciso
c) Inexacto y preciso
d) Exacto y preciso
En Matlab
De acuerdo al ejemplo anterior podemos decir:
En notación matemática:
Ev = 𝑥-𝑥̅
Donde Ev = Denota el valor verdadero(exacto) del error
( 𝑥− ̅̅̅
𝑥)
Er =
𝑥
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
𝐸𝑣𝑟 ≤ 𝑒𝑠
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
Raíces de ecuaciones
Objetivos:
Raices de
Ecuaciones
Metodos Metodos
Cerrados Abiertos
newton
Biseccion Regula Falsi Punto fijo Horner Secante
Raphson
Ejemplo:
La raíz cuadrática
−𝑏 ± √𝑏 2 − 4𝑎𝑐
𝑥=
2𝑎
Metodos Cerrados
Xϵ[a,b]
F(x)=0
>> 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
Otro ejemplo:
F(x) = x2 + 2x – 4 ,[-4 , 4]
>> fplot('[x.^2+2*x-4]',[-4,4])
F1(x)=x2 y F2(x) = 4 – 2x
Otro ejemplo
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]
f(xi).f(xu)<0
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.
𝑋𝑟𝑛𝑢𝑒𝑣𝑜 − 𝑋𝑟𝑎𝑛𝑡𝑒𝑟𝑖𝑜𝑟
𝐸𝑎 = 𝑥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)
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)
𝑓(𝑋𝑙) 𝑓(𝑋𝑢)
=
𝑋𝑟 − 𝑋𝑙 𝑋𝑟 − 𝑋𝑢
𝑓(𝑋𝑢).(𝑋𝑙−𝑋𝑢)
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)
-x
f(x)=e -x
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:
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)
(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
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
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
INTEGER::N
REAL::X0,Y0,XI,YI,EAX,EAY
READ*,N
READ*,X0
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
X0=XI
Y0=YI
END IF
END DO
PRINT*,XI,YI
F(XI+1)=F(XI)+F’(XI)(XI+1-XI)…..(1)
DONDE:
0=F(XI)+F’(XI)*(XI+1-XI)
𝐹(𝑋𝐼 )
XI+1=XI- ….(2)
𝐹′(𝑋𝐼 )
𝜕𝑉𝐼 𝜕𝑉𝐼
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
𝜕𝑉𝐼 𝜕𝑈
𝑈𝐼 ∗ −𝑉𝐼∗ 𝐼
𝜕𝑌 𝜕𝑌
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
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
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:
[𝐶 ] = [𝐴]. [𝐵]
𝑚
Ejemplo>>
2x-y+3z=5
2x+2y+3z=7
-2x+3y+0=-3
𝟐 −𝟏 𝟑 𝟓
[𝟐 𝟐 𝟑| 𝟕 ]
−𝟐 𝟑 𝟎 −𝟑
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
𝟎 𝟎 𝟏 𝟐/𝟗