Está en la página 1de 16

METODOS NUMERICOS PARA CIENCIAS E INGENIERIA

METODOS NUMÉRICOS

Jorge Teófilo Chávez Estrada


Huánuco Perú – 2020
METODOS NUMERICOS PARA CIENCIAS E INGENIERIA

Al ejecutar el programa anterior aparece esta ventana en la que se muestra el grafico de la función que s
graficar usando el comando plot.

Ejemplo:
METODOS NUMERICOS PARA CIENCIAS E INGENIERIA

En el comando window se muestra los resultados de cálculos realizados con la matriz ingresada:

Programas es Matlab de :
1. Método de la bisección
2. Método de la falsa posición
3. Método de newton Raphson

1.- METODO DE LA BISECCION


syms x;
f=input('Ingrese la funciòn: ');
METODOS NUMERICOS PARA CIENCIAS E INGENIERIA

ezplot(f,[-5,5]);
xai=input('Ingrese el intervalo inferior: ');
xbi=input('Ingrese el intervalo superior: ');
tol=input('Ingrese el porcentaje de error: ');

i=1;
f1=subs(f,x,xai);
f2=subs(f,x,xbi);

ea(i)=100;
if f1*f2 < 0
xa(i)=xai; f1=subs(f,x,xa(i));
xb(i)=xbi; f2=subs(f,x,xb(i));
xr(i)=(xa(i)+xb(i))/2; f3=subs(f,x,xr(i));

fprintf('It. Xa Xr Xb Error aprox \n');


fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \n',i,xa(i),xr(i),xb(i));
while abs(ea(i)) >= tol,
if f1*f3<0
xa(i+1)=xa(i);f1=subs(f,x,xa(i+1));
xb(i+1)=xr(i);f2=subs(f,x,xb(i+1));
end
if f1*f3> 0
xa(i+1)=xr(i);f1=subs(f,x,xa(i+1));
xb(i+1)=xb(i);f2=subs(f,x,xb(i+1));
end
xr(i+1)=(xa(i+1)+xb(i+1))/2; f3=subs(f,x,xr(i+1));
ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1))*100);
fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \t %7.7f \n',...
i+1,xa(i+1),xr(i+1),xb(i+1),ea(i+1));
i=i+1;
end
else
fprintf('No existe una raíz en ese intervalo');
end

2.- METODO DE REGLA FALSA O FALSA POSICION

%regla falsa
syms x;
f=input('Ingrese la Funcion: ');
ezplot(f,[-5,5]);
xai=input('Ingrese limite inferior: ');
xbi=input('Ingrese limite superior: ');
METODOS NUMERICOS PARA CIENCIAS E INGENIERIA

tol=input('Ingrese el porcentaje de Error: ');

f1=subs(f,x,xai);
f2=subs(f,x,xbi);
i=1;
ea(1)=100;
if f1*f2 < 0
xa(1)=xai;f1=subs(f,x,xa(1));
xb(1)=xbi;f2=subs(f,x,xb(1));
xr(1)=xa(1)-f1*(xb(1)-xa(1))/(f2-f1); f3=subs(f,x,xr(1));
fprintf('It. Xa Xr Xb Error aprox \n');
fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \n',i,xa(i),xr(i),xb(i));
while abs(ea(i))>=tol,
if f1*f3 < 0
xa(i+1)=xa(i);f1=subs(f,x,xa(i+1));
xb(i+1)=xr(i);f2=subs(f,x,xb(i+1));
end
if f1*f3> 0
xa(1)=xr(i);
xb(1)=xb(i);
end
xr(i+1)=xa(i+1)-f1*(xb(i+1)-xa(i+1))/(f2-f1);
ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1)))*100;
fprintf('%2d \t %11.7f \t %11.7f \t %11.7f \t %7.3f \n',...
i+1,xa(i+1),xr(i+1),xb(i+1),ea(i+1));
i=i+1;
end
else
fprintf('No existe una raíz en ese intervalo');
end

2.- METODO DE NEWTON RAPHSON

%METODO DE NEWTON RAPHSON


clear all, clc
syms x
disp(' M E T O D O D E N E W T O N - R A P H S O N')
disp('-----------------------------------------------------------')
disp('Datos de entrada')
f = input('Función :','s');
ezplot(f,[-2,2]);
x0 = input('Aproximación inicial :');
tol= input('Tolerancia :');
disp('Datos de salida')
METODOS NUMERICOS PARA CIENCIAS E INGENIERIA

df = diff(sym(f));
f = inline(char(f));
df = inline(df);
x = x0;
e = abs(f(x));
i = 0;
fprintf('%s\t\t\t%s\t%s\n','it.','x','f(x)');
while (e>=tol)
fprintf('%d\t%7.11f\t%7.11f\n',i,x,f(x))
nwr = x - (f(x)/df(x));
e = abs(f(x));
x = nwr;
i = i+1;
end

PRACTICA N°1
PROGRAMA PARA CALCULATR EL FACTORIAL DE IN NUMERO
n= input('ingrese un numero:');
i=1;
fact=1;
if n>=0
while i<=n
fact=fact*i;
i=i+1;
end
disp(fact);
else
disp('es negativo')
end

PRACTICA N° 2

PROGRAMA PARA CALCULAR LOS 100 PRIMEROS NUMEROS PRIMOS


%programa para calcular los 100 primeros numeros primos
n=100;
cp=1;
num=3;
while(cp<=n)
i=2;
nd=0;
while(i<=num)
METODOS NUMERICOS PARA CIENCIAS E INGENIERIA

if rem(num,i)==0
nd=nd+1;
end
i=i+1;
end
if nd==1
cp=cp+1;
disp(num);
end
num=num+1;
end

FUNCIONES TRIGONOMÉTRICAS EN MATLAB


Las funciones trigonométricas están incorporadas en la librería de matlab
METODOS NUMERICOS PARA CIENCIAS E INGENIERIA

Nota: los ángulos deben estar expresados en radianes.

Ejemplos:
1.- Calcular el sen, cos tan, ctg, sec ,csc de los ángulos notables mas conocidos:
Código:
clc;
syms x;
y=input('ingrese la funcion: ');
c=input('ingrese la cantidad de angulos');
i=0;
while i<c;
r=input ('ingrese el angulo: ');
u=(r*pi)/180;
p=subs(y,x,u);
i=i+1;
disp(p);
METODOS NUMERICOS PARA CIENCIAS E INGENIERIA

end
t=0:360;
y1=sind(t);y2=cosd(t);y3=tand(t);y4=cotd(t);y5=secd(t);y6=cscd(t);
subplot(3,2,1);plot(t,y1);title('seno');
subplot(3,2,2);plot(t,y2);title('cos');
subplot(3,2,3);plot(t,y3);title('tan');
subplot(3,2,4);plot(t,y4);title('cot');
subplot(3,2,5);plot(t,y5);title('sec');
subplot(3,2,6);plot(t,y6);title('csc');

Este programa pide la función y los ángulos de los cuales se quiere hallar esa función ingresada y realiza
gráficas de todas las funciones trigonométricas.

2. Graficar las siguientes funciones:


Y1=sin(3πx)/ex
Y1=cos(3πx)/ex
0<x<3π
Código:
y='(sin(3*pi*x))/exp(x)';
x=0:3*pi;
fplot(y,[0,3*pi]);
hold on;
z='(cos(3*pi*x))/exp(x)';
fplot(z,[0,3*pi],'r-');
hold on;
METODOS NUMERICOS PARA CIENCIAS E INGENIERIA

3. Obtener la solución del sistema de ecuaciones:


3x+2y-z=1
5x+y+3y=-2
3y-4z=3
A=input('ingrese los coeficientes de las variables en forma de matriz: ');
B=input('ingrese las los números después del igual');
d=det(A);
disp(d);
ab=[A B];
c=rref(ab);
disp(c);
Este programa permite resolver cualquier sistema de ecuaciones
xlabel(string) Establece la cadena string como etiqueta del eje x de la grafica
ylabel(string) Establece la cadena string como etiqueta del eje y de la grafica

Meshgrid:

La función mesh dibuja super cies 3D a partir de matrices. El comando mesh(Z) dibuja los valores de la m
sobre sus coordenadas. Los valores de Z se muestran como la altura sobre la rejilla xy.
ejemplo:
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
mesh(Z);
METODOS NUMERICOS PARA CIENCIAS E INGENIERIA

[X,Y] = meshgrid(-2:.2:2, -2:.2:2);


Z = X .* exp(-X.^2 - Y.^2);
surf(X,Y,Z)

Surf
k = 5;
n = 2^k-1;
[x,y,z] = sphere(n);
c = hadamard(2^k);
surf(x,y,z,c);
colormap([1 1 0; 0 1 1])
axis equal
METODOS NUMERICOS PARA CIENCIAS E INGENIERIA

Surfc: aparte de dibujar la superficie dibuja las curvas de nivel


[X,Y,Z] = peaks(30);
surfc(X,Y,Z)
colormap hsv
axis([-3 3 -3 3 -10 5])

Shading
METODOS NUMERICOS PARA CIENCIAS E INGENIERIA

shading flat
shading faceted
shading interp
shading(axes_handle,...)
cart 2 pol(x,y); (x,y,z)
transformación de coordenadas cartesianas a cilíndricas
pol 2cart(x,y);(x,y,z)
transformación de coordenadas cilíndricas a cartesianas
Otros commandos:
getframe
movie(m,n,fps)

DERIVADA EN MATLAB
Sintaxis:
Diferenciación Diff(expr)
Diferenciación Diff(expr,v)
Diferenciación Diff(expr, sym (‘v’)
Diferenciación Diff(expr,n)
Diferenciación Diff(expr,v,n)
Diferenciación Diff(expr,n,v)

Ejemplos:
1. syms x
diff(sin(x^2))
el resultado es:
ans =2*x*cos(x^2)
2. syms t
diff(t^6,6)
el resultado es:
ans =720
3. syms x t
diff(sin(x*t^2), t)
el resultado es:
ans =2*t*x*cos(t^2*x)

INTEGRAL EN MATLAB
Integral int (expr)
Integral int (expr,var, name, value)
Integral int (expr, var, a, b)
Integral int (expr, var, a, b, name, value)
METODOS NUMERICOS PARA CIENCIAS E INGENIERIA

Ejemplos:
1. syms x
int(-2*x/(1 + x^2)^2)
el resultado es:
ans =1/(x^2 + 1)
2. syms x z
int(x/(1 + z^2), z)
el resultado es:
ans =x*atan(z)
3. syms x
int(x*log(1 + x), 0, 1)
el resultado es:
ans =¼
4. syms x t
int(2*x, sin(t), 1)
el resultado es: ans =cos(t)^2

SERIE DE TAYLOR
Taylor taylor (f)
Taylor taylor (f, name, value)
Taylor taylor (f,v)
Taylor taylor (f, v, name, value)
Taylor taylor (f, v, a)
Taylor taylor (f, v, a, name, value)

Ejemplos:
1. syms x
taylor(exp(x))
taylor(sin(x))
taylor(cos(x))
ans =x^5/120 + x^4/24 + x^3/6 + x^2/2 + x + 1
ans =x^5/120 - x^3/6 + x
ans =x^4/24 - x^2/2 + 1
2. syms x
taylor(log(x), x, 'ExpansionPoint', 1)
ans =x - (x - 1)^2/2 + (x - 1)^3/3 - (x - 1)^4/4 + (x - 1)^5/5 – 1
3. taylor(acot(x), x, 1)

ans =pi/4 - x/2 + (x - 1)^2/4 - (x - 1)^3/12 + (x - 1)^5/40 + 1/2


4. syms x
f = sin(x)/x;
t6 = taylor(f)
t6 =x^4/120 - x^2/6 + 1
METODOS NUMERICOS PARA CIENCIAS E INGENIERIA

EL MÉTODO DE BISECCIÓN
Cuando se aplicaron las técnicas gráficas en el ejemplo 5.1, se observó (figura 5.1) que f(x) cambió
de signo a ambos lados de la raíz. En general, si f(x) es real y continúa en el intervalo que va desde
xl hasta xu y f(xl) y f(xu) tienen signos opuestos, es decir,
f(xl) f(xu) < 0

entonces hay al menos una raíz real entre xl y xu.

Los métodos de búsqueda incremental aprovechan esta característica localizando un intervalo en el


que la función cambie de signo. Entonces, la localización del cambio de signo (y, en consecuencia,
de la raíz) se logra con más exactitud al dividir el intervalo en varios sub-intervalos. Se investiga
cada uno de estos sub-intervalos para encontrar el cambio de signo. El proceso se repite y la
aproximación a la raíz mejora cada vez más en la medida que los sub-intervalos se dividen en
intervalos cada vez más pequeños. Volveremos al tema de búsquedas incrementales en la sección
5.4.

Paso 1: Elija valores iniciales inferior, xl, y superior, xu, que encierren
la raíz, de forma tal que la función cambie de signo en el intervalo.
Esto se verifica comprobando que f(xl) f(xu) < 0.
Paso 2: Una aproximación de la raíz xr se determina mediante:
xlu+
xr = x
——– 2
Paso 3: Realice las siguientes evaluaciones para determinar en qué
subintervalo está la raíz:
Si f(xl)f(xr) < 0, entonces la raíz se encuentra dentro del subintervalo
inferior o izquierdo. Por lo tanto, haga xu = xr y vuelva al paso 2.
Si f(xl)f(xr) > 0, entonces la raíz se encuentra dentro del subintervalo
superior o derecho. Por lo tanto, haga xl = xr y vuelva al paso 2.
Si f(xl)f(xr) = 0, la raíz es igual a xr; termina el cálculo.
METODOS NUMERICOS PARA CIENCIAS E INGENIERIA

También podría gustarte