Anda di halaman 1dari 41

ANALISIS

NUMERICO
CON MATLAB

ANALISIS
NUMERICO
Ing. Jacinto Daniel Pinto

5 de junio de 2016

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Forma de Evaluar

Primer parcial:
1
2

Segundo parcial:
1
2

Examen 10 %
Tareas en clase y tareas para llevar 10 %
Examen 15 %
Tareas en clase y tareas para llevar 20 %

Tercer parcial:
1
2
3

Examen 15 %
Tareas en clase y tareas para llevar 15 %
Proyecto 15 %

Nota: El proyecto describe un evento fsico real en el cual hay una serie
de datos tomados experimentalmente. El evento fsico estudiado debe ser
analizado con un modelo matem
atico y poder predecir la serie de datos
utilizando MATLAB.

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

MATLAB

1 MatLab es un programa interactivo para computaci


on numerica y
visualizaci
on de datos. Es ampliamente usado por Ingenieros, posee
adem
as una extraordinaria versatilidad y capacidad para resolver
problemas en matem
atica aplicada, fsica, qumica, ingeniera, finanzas
y muchas otras aplicaciones.
2 MatLab emplea matrices porque con ellas se puede describir infinidad
de cosas de una forma altamente flexible y matem
aticamente eficiente.
Una matriz de pixeles puede ser una imagen o una pelcula. Una matriz
de fluctuaciones de una se
nal puede ser un sonido o una voz humana. Y
tal vez m
as significativamente, una matriz puede describir una relacion
lineal entre los componentes de un modelo matem
atico.

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

MATLAB

Los archivos de disco que contienen instrucciones de MATLAB se


llaman archivos-M. Esto es as porque siempre tienen una extencion
de .mcomo la u
ltima parte de su nombre de archivo.

Un archivo M consiste de una secuencia de instrucciones normales de


MATLAB, que probablemente incluyen referencias a otros archivos
M. Un archivo M se puede llamar a s mismo recursivamente. Puedes
crear archivos-M utilizando un editor de texto
o procesador de
palabras.

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Mi Primer Programa en Matlab

% script de Bienvenida
disp(Hola Alumnos)

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Sentencia if

% Script para imprimir la raiz cuadrada de un numero


num = input (Por favor Ingrese un numero)
if num < 0
num=0
end
fprintf(La raiz cuadrada de %.5f is % .5f\n,num,sqrt(num))

%input es el parametro de entrada


% .xf donde x es la cantidad de cifras despues del punto

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Sentencia if

% script para imprimir la raiz cuadrada de un numero


num= input(Ingrese un numero :);
% s
el numero ingresado es negativo, utilice el valor absoluto
if num<0
disp(Nota, se utilizo el valor absoluto)
num=abs(num);
end
fprintf(La raiz cuadrada de %.1f es %.2f\n,num,sqrt(num)

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Sentencia if else

% script para imprimir la raiz de un valor


num = input(Ingrese un numero: ) ;
if num >0
y=sqrt(num);
fprintf(\n la raiz cuadrada de %f es %f. \n,num,y);
else
beep
disp(El numero debe ser positivo)
end
%beep produce un sonido cuando esa condici
on se cumple

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Sentencia if else

% script para imprimir la raiz de un valor


num = input(Ingrese un numero: ) ;
if num >0
y=sqrt(num);
fprintf(\n la raiz cuadrada de %f es %f. \n,num,y);
else
z=abs(num);
p=sqrt(z);
beep
fprintf(\n la raiz cuadrada del valor absoluto de
%f es %f. \n,num,p);
end

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Ejercicios
Elabore un Script .m que tenga como entrada un numero y que
calcule el logaritmo natural de ese numero y que imprima el
resultado utilizando cuatro cifras despu
es del punto. En caso
que el numero proporcionado sea un valor negativo que imprima
un mensaje recordandole al usuario que no existe el logaritmo
de n
umeros negativos.

Elabore un Script .m que tenga como entrada un numero y que


calcule el logaritmo natural de ese numero y que imprima el
resultado utilizando tres cifras despu
es del punto. En caso
que el numero proporcionado sea un valor negativo que
imprima un mensaje recordandole al usuario que no existe
el logaritmo de n
umeros negativos pero que se calculara
el logaritmo del valor absoluto proporcionado.
Imprima el resultado.

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Sentencia if elseif
% Este Script le indicara el piso en el cual esta su aula
x=input(Ingrese el numero de aula que aparece en su forma);
if x<100
disp(El aula que consulto se encuentra en el Primer Piso);
elseif x<200
disp(El aula que consulto se encuentra en el Segundo Piso);
elseif x<300
disp(El aula que consulto se encuentra en el tercer Piso);
else
disp(El aula que usted consulto es un laboratorio);
end

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Ejercicio
Elabore un Script .m que tenga como entrada un car
acter seguido
de un numero.
En donde el car
acter indica el edificio de la Universidad.
a = Edificio de Ingenier
a.
b = Edificio de Asignaturas Generales.
c = Edificio de la Salud.
d = Edificio de Administraci
on
Y el numero indica el piso del edificio.
S
es numero es menor que 100 \ Primer piso.
S
es numero es menor que 200 \ Segundo piso.
S
es numero es menor que 300 \ Tercer piso.
S
el valor de entrada no satisface la entrada de car
acter,
la de numero
o ambas que imprima un mensaje al estudiante
que debe avocarse a las oficinas de registro.

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

while

%Script para saber en que edificio y piso esta su aula


letra = menu (Elija la letra del aula que desea consultar
,a,b,c,d);
aula = input(Ingrese el numero de su aula: );
switch letra
case 1
disp(A usted le toca en el Edificio de Ingenieria);
if aula <= 100
disp(El aula que consulta se encuentra en el primer piso);
elseif aula <= 200
disp(El aula que consulta se encuentra en el segundo piso)
elseif aula <= 300
disp(El aula que consulta se encuentra en el tercer piso);
else
disp(Consulte en Registro su aula);
end

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

while

case 2
disp(A usted le toca en el Edificio de Matematicas);
if aula <= 100
disp(El aula que consulta se encuentra en el primer piso
elseif aula <= 200
disp(El aula que consulta se encuentra en el segundo piso
elseif aula <= 300
disp(El aula que consulta se encuentra en el tercer piso
else
disp(Consulte en Registro su aula);
end

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

while

case 3
disp(A usted le toca en el Edificio de Ciencias Sociales);
if aula <= 100
disp(El aula que consulta se encuentra en el primer piso)
elseif aula <= 200
disp(El aula que consulta se encuentra en el segundo piso
elseif aula <= 300
disp(El aula que consulta se encuentra en el tercer piso
else
disp(Consulte en Registro su aula);
end

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

while

case 4
disp(A usted le toca en el Edificio de Ciencias de la Salud);
if aula <= 100
disp(El aula que consulta se encuentra en el primer piso)
elseif aula <= 200
disp(El aula que consulta se encuentra en el segundo piso
elseif aula <= 300
disp(El aula que consulta se encuentra en el tercer piso
else
disp(Consulte en Registro su aula);
end
otherwise
disp(La letra que usted a ingresado no corresponde a nin
end

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

for while
MATLAB como en la mayora de los lenguajes de programacion, proporciona sentencias denominadas iterativas que permiten realizar una tarea una
y otra vez hasta que se cumpla una determinada condicion, dicha tarea
viene definida por un conjunto de sentencias agrupadas en un bloque. Las
sentencias iterativas son for, while.
% Este escript calcula el factorial de un numero proporcionado
n= input (Ingrese el numero para el cual desea
saber el factorial);
resultado=1;
for k=1:n
resultado=k*resultado;
end
fprintf(El factorial de %i es %i\n,n,resultado)

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Metodo de biseccion
En matem
aticas, el metodo de bisecci
on es un algoritmo de b
usqueda de
races que trabaja dividiendo el intervalo a la mitad y seleccionando el
subintervalo que tiene la raz.
Si f es una funci
on continua sobre el intervalo [a, b] y si f (a) f (b) < 0,
entonces f debe tener un cero en (a, b). Dado que f (a)f (b) < 0, la funcion
cambia de signo en el intervalo [a, b] y por lo tanto tiene por lo menos un
cero en el intervalo.

Figura 1: Raices de una funci


on

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Metodo de biseccion

Primero se calcula el punto medio del intervalo c = (a + b)/2 ; despues se


averigua s f (a)f (c) < 0. Si lo es, entonces f tiene un cero en [a, c].
A continuaci
on se renombra a c como b y se comienza una vez mas con el
nuevo intervalo [a, b], cuya longitud es igual a la mitad del intervalo original.
S f (a)f (c) > 0 , entonces f (c)f (b) < 0 y en este caso se renombra c como
a.
En ambos casos se ha generado un nuevo intervalo que contiene un cero de
f , y el proceso puede repetirse.
Para detener el metodo de bisecci
on y dar una aproximacion del cero de
una funci
on se pueden usar varios criterios (llamados criterios de parada).
Uno de los criterios de parada consiste en examinar si |f (cn)| <  , donde
 es una tolerancia previamente establecida.

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Metodo de Newton

En an
alisis numerico, el metodo de Newton (conocido tambien como
el metodo de Newton-Raphson o el metodo de Newton-Fourier) es un
algoritmo eficiente para encontrar aproximaciones de los ceros o
races de una funci
on real.

Tambien puede ser usado para encontrar el m


aximo o mnimo de una
funci
on, encontrando los ceros de su primera derivada.
xn+1 = xn

Ing. Jacinto Daniel Pinto

UTH

f (xn )
f 0 (xn )

(1)

ANALISIS
NUMERICO
CON MATLAB

Metodo de la secante

En an
alisis numerico el metodo de la secante es un metodo para
encontrar los ceros de una funci
on de forma iterativa.

Es una variaci
on del metodo de Newton Raphson donde en vez de
calcular la derivada de la funci
on, se aproxima la pendiente a la recta
que une la funci
on evaluada en el punto de estudio y en el punto de
la iteraci
on anterior. Este metodo es conveniente cuando derivar la
funci
on y evaluarla es demasiado complejo, por lo que el metodo de
Newton no resulta atractivo.
xn+1 = xn

xn xn1
f (xn )
f (xn ) f (xn1 )

Ing. Jacinto Daniel Pinto

UTH

(2)

ANALISIS
NUMERICO
CON MATLAB

fzero

La funci
on f zero puede encontrar la raz de una ecuacion trascendente
f (x) = 0. Su sintaxis es: f zero(f uncion, x0)
Donde f uncion es el nombre de la funci
on cuyas races queremos determinar
y x0 puede ser un valor cercano a la raz es decir, una primera aproximacion.
>>
>>
>>
>>

clear
x=0:0.1:10;
f = @(x)x.*sin(x)-1;
z = fzero(f,1)

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Graficos en Matlab
1

Una de las funciones m


as importantes en Matlab es la funcion plot.
Plot tambien parece ser una de las m
as sencillas funciones para
aprender a usar. La sintaxis b
asica de la funci
on es escribir el
siguiente comando en la ventana de comandos del Matlab o en un
archivo-m.

plot(x,y)
x = 0:0.1:100;
y = x.*sin(x)-1;
plot(x,y)

x = linspace(0,2*pi,50);
y = sin(x);
z = cos(x);
plot(x,y,r, x,z,gx)

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Graficos en Matlab Subplot

x
y
z
w

=
=
=
=

linspace(0,2*pi,50);
sin(x);
cos(x);
x.^2;

subplot(2,2,1)
plot(x,y)
subplot(2,2,2)
plot(x,z)
subplot(2,2,3)
plot(x,w)

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Graficos en Matlab Subplot


x = linspace(0,2*pi,50);
y = sin(x);
z = cos(x);
w = x.^2;
subplot(2,2,1)
plot(x,y)
title(Grafico 1)
xlabel(Unidades de x tiempo (seg.))
ylabel(Unidades de y longitud (mts.))
subplot(2,2,2)
plot(x,z)
title(Grafico 2)
xlabel(Unidades de x tiempo (seg.))
ylabel(Unidades de y longitud (mts.))
grid
subplot(2,2,3)
plot(x,w)
title(Grafico 3)
xlabel(Unidades
de x tiempoUTH
(seg.))
Ing. Jacinto Daniel Pinto

ANALISIS
NUMERICO
CON MATLAB

Ajuste de Curvas
Suponga que tiene una serie de datos tabulados y requiere estudiar alguna
relaci
on entre ellos.

tiempos = [ 1.1
2.1
3.1
4.1
5.1
6.1
7.1
8.1
9.1
10.1];
posiciones = [ 12
22
32
42
61
62
72
82
92
102];
plot( tiempos, posiciones, o );
polyfit(tiempos,posiciones,1) %polyfit(xi,yi,k), donde k es
el grado del polinomio que queremos obtener.
hold on
x=0:0.1:11;
y=A*x+B
plot (x,y) % Los valores de A y B son los de polyfit

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

plot 3D

t = 0:pi/50:10*pi;
x = sin(t);
z = cos(t);
plot3(x,z,t)

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Mesh

La funci
on mesh dibuja superficies 3D a partir de matrices. El comando
mesh(Z) dibuja los valores de la matriz Z sobre sus coordenadas. Los valores
de Z se muestran como la altura sobre la rejilla xy.
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
figure
mesh(Z)

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Meshc

[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
figure
meshc(Z)

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Surf

Dibuja una superficie compuesta de parches de colores que dependen de la


magnitud z.
[x,y] = meshgrid([-2:.2:2]);
Z = x.*exp(-x.^2-y.^2);
surf(x,y,Z,gradient(Z))
colorbar

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Surfc

[x,y] = meshgrid([-2:.2:2]);
Z = x.*exp(-x.^2-y.^2);
surfc(x,y,Z,gradient(Z))
colorbar

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Surfc

[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
surf(X,Y,Z,FaceColor,red,EdgeColor,none)
camlight left;
lighting phong

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Waterfall

El comando waterfall hace visualizar la superficie como una malla unidireccional.)


x = -10:0.5:10;
y =x;
[X,Y] = meshgrid (x,y);
Z = sin (sqrt (X .^2 + Y .^2)) ./ sqrt (X .^ 2 + Y .^ 2 + 0.1);
waterfall(X,Y,Z);

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

contour

x = linspace(-2*pi,2*pi);
y = linspace(0,4*pi);
[X,Y] = meshgrid(x,y);
Z = sin(X)+cos(Y);
figure
contour(X,Y,Z)

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

contour3

x = -2:0.25:2;
[X,Y] = meshgrid(x);
Z = X.*exp(-X.^2-Y.^2);
contour3(X,Y,Z,30)

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Sphere

[x,y,z] = sphere;
figure
surf(x,y,z)
hold on
surf(x+3,y-2,z) % Centrada en: (3,-2,0)
surf(x,y+1,z-3) % Centrada en: (0,1,-3)
title(Esferas Varias)
xlabel(Este es el eje x)
ylabel(Este es el eje y)
zlabel(Este es el eje z)

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Cylinder

t = 0:pi/10:2*pi;
figure
[X,Y,Z] = cylinder(2+cos(t));
surf(X,Y,Z)
axis square

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Cylinder

t = 0:0.1:2*pi;
r = sin(2*t);
[x,y,z] = cylinder(r);
surf(x,y,z);

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

TAREA2 Ajuste de Curvas

Ver archivo: Tarea2 Analisis numerico.doc

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Tarea3

Tarea 3 Hacer un Script que modele la cada libre de un cuerpo. El script


debe tener como par
ametros de entrada:
1

La posici
on inicial vertical del cuerpo y0 .

La velocidad inicial proporcionada al cuerpo v0 .

El script debe mostrar los gr


aficos de posici
on vrs tiempo, velocidad vrs
tiempo y aceleraci
on vrs tiempo.

Ing. Jacinto Daniel Pinto

UTH

ANALISIS
NUMERICO
CON MATLAB

Ing. Jacinto Daniel Pinto

UTH

Anda mungkin juga menyukai