7/25/2019 Anlisis Numrico-I Parcial
1/41
ANALISIS NUMERICO CON MATLAB
ANALISIS NUMERICO
Ing. Jacinto Daniel Pinto
5 de junio de 2016
Ing. Jacinto Daniel Pinto UTH
http://find/7/25/2019 Anlisis Numrico-I Parcial
2/41
ANALISIS NUMERICO CON MATLAB
Forma de Evaluar
1 Primer parcial:1 Examen 10 %2 Tareas en clase y tareas para llevar 10 %
2 Segundo parcial:
1 Examen 15 %
2 Tareas en clase y tareas para llevar 20 %3 Tercer parcial:
1 Examen 15 %2 Tareas en clase y tareas para llevar 15 %3 Proyecto 15 %
Nota: El proyecto describe un evento fsico real en el cual hay una seriede datos tomados experimentalmente. El evento fsico estudiado debe seranalizado con un modelo matematico y poder predecir la serie de datosutilizando MATLAB.
Ing. Jacinto Daniel Pinto UTH
http://goforward/http://find/http://goback/7/25/2019 Anlisis Numrico-I Parcial
3/41
7/25/2019 Anlisis Numrico-I Parcial
4/41
ANALISIS NUMERICO CON MATLAB
MATLAB
1 Los archivos de disco que contienen instrucciones de MATLAB sellaman archivos-M. Esto es as porque siempre tienen una extencionde .mcomo la ultima parte de su nombre de archivo.
2 Un archivo M consiste de una secuencia de instrucciones normales deMATLAB, que probablemente incluyen referencias a otros archivosM. Un archivo M se puede llamar a s mismo recursivamente. Puedescrear archivos-M utilizando un editor de texto o procesador depalabras.
Ing. Jacinto Daniel Pinto UTH
A A S S M CO CO MA A
http://find/7/25/2019 Anlisis Numrico-I Parcial
5/41
ANALISIS NUMERICO CON MATLAB
Mi Primer Programa en Matlab
% script de Bienvenida
disp(Hola Alumnos)
Ing. Jacinto Daniel Pinto UTH
ANALISIS NUMERICO CON MATLAB
http://find/http://goback/7/25/2019 Anlisis Numrico-I Parcial
6/41
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
http://find/7/25/2019 Anlisis Numrico-I Parcial
7/41
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
7/25/2019 Anlisis Numrico-I Parcial
8/41
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 condicion se cumple
Ing. Jacinto Daniel Pinto UTH
ANALISIS NUMERICO CON MATLAB
http://find/7/25/2019 Anlisis Numrico-I Parcial
9/41
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
http://find/7/25/2019 Anlisis Numrico-I Parcial
10/41
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 elresultado utilizando cuatro cifras despues 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 numeros 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 despues 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 numeros negativos pero que se calculara
el logaritmo del valor absoluto proporcionado.
Imprima el resultado.
Ing. Jacinto Daniel Pinto UTH
ANALISIS NUMERICO CON MATLAB
http://find/http://goback/7/25/2019 Anlisis Numrico-I Parcial
11/41
Sentencia if elseif
% Este Script le indicara el piso en el cual esta su aulax=input(Ingrese el numero de aula que aparece en su forma);
if x
7/25/2019 Anlisis Numrico-I Parcial
12/41
Ejercicio
Elabore un Script .m que tenga como entrada un caracter seguido
de un numero.
En donde el caracter indica el edificio de la Universidad.
a = Edificio de Ingeniera.
b = Edificio de Asignaturas Generales.
c = Edificio de la Salud.
d = Edificio de AdministracionY 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 caracter,
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
http://find/7/25/2019 Anlisis Numrico-I Parcial
13/41
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
7/25/2019 Anlisis Numrico-I Parcial
14/41
while
case 2
disp(A usted le toca en el Edificio de Matematicas);
if aula
7/25/2019 Anlisis Numrico-I Parcial
15/41
while
case 3
disp(A usted le toca en el Edificio de Ciencias Sociales);
if aula
7/25/2019 Anlisis Numrico-I Parcial
16/41
while
case 4disp(A usted le toca en el Edificio de Ciencias de la Salud)
if aula
7/25/2019 Anlisis Numrico-I Parcial
17/41
for while
MATLAB como en la mayora de los lenguajes de programacion, proporcio-
na sentencias denominadas iterativas que permiten realizar una tarea unay otra vez hasta que se cumpla una determinada condicion, dicha tareaviene definida por un conjunto de sentencias agrupadas en un bloque. Lassentencias 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
http://find/http://goback/7/25/2019 Anlisis Numrico-I Parcial
18/41
Metodo de biseccion
En matematicas, el metodo de biseccion es un algoritmo de busqueda de
races que trabaja dividiendo el intervalo a la mitad y seleccionando elsubintervalo que tiene la raz.Si f es una funcion continua sobre el intervalo [a, b] y si f(a) f(b) < 0,entonces fdebe tener un cero en (a, b). Dado quef(a)f(b)< 0, la funcioncambia 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 funcion
Ing. Jacinto Daniel Pinto UTH
ANALISIS NUMERICO CON MATLAB
http://find/http://goback/7/25/2019 Anlisis Numrico-I Parcial
19/41
Metodo de biseccion
Primero se calcula el punto medio del intervalo c = (a+b)/2 ; despues seaverigua s f(a)f(c)< 0. Si lo es, entonces ftiene un cero en [a, c].A continuacion se renombra a c como b y se comienza una vez mas con elnuevo 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 comoa.En ambos casos se ha generado un nuevo intervalo que contiene un cero def, y el proceso puede repetirse.Para detener el metodo de biseccion y dar una aproximacion del cero deuna funcion 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
http://find/7/25/2019 Anlisis Numrico-I Parcial
20/41
Metodo de Newton
1 En analisis numerico, el metodo de Newton (conocido tambien comoel metodo de Newton-Raphson o el metodo de Newton-Fourier) es unalgoritmo eficiente para encontrar aproximaciones de los ceros oraces de una funcion real.
2 Tambien puede ser usado para encontrar el maximo o mnimo de unafuncion, encontrando los ceros de su primera derivada.
xn+1 =xn f(xn)
f(xn) (1)
Ing. Jacinto Daniel Pinto UTH
ANALISIS NUMERICO CON MATLAB
http://find/7/25/2019 Anlisis Numrico-I Parcial
21/41
Metodo de la secante
1 En analisis numerico el metodo de la secante es un metodo paraencontrar los ceros de una funcion de forma iterativa.
2 Es una variacion del metodo de Newton Raphson donde en vez decalcular la derivada de la funcion, se aproxima la pendiente a la recta
que une la funcion evaluada en el punto de estudio y en el punto dela iteracion anterior. Este metodo es conveniente cuando derivar lafuncion y evaluarla es demasiado complejo, por lo que el metodo deNewton no resulta atractivo.
xn+1 =xn
xnx
n1
f(xn)f(xn1) f(xn) (2)
Ing. Jacinto Daniel Pinto UTH
ANALISIS NUMERICO CON MATLAB
http://find/7/25/2019 Anlisis Numrico-I Parcial
22/41
fzero
La funcion fzero puede encontrar la raz de una ecuacion trascendentef(x) = 0. Su sintaxis es: fzero(f uncion, x0)Dondefunciones el nombre de la funcion cuyas races queremos determinary 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
G fi M l b
http://find/7/25/2019 Anlisis Numrico-I Parcial
23/41
Graficos en Matlab
1 Una de las funciones mas importantes en Matlab es la funcion plot.
Plot tambien parece ser una de las mas sencillas funciones paraaprender a usar. La sintaxis basica de la funcion es escribir elsiguiente comando en la ventana de comandos del Matlab o en unarchivo-m.
2 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
G fi M l b S b l
http://find/7/25/2019 Anlisis Numrico-I Parcial
24/41
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)
subplot(2,2,2)
plot(x,z)
subplot(2,2,3)
plot(x,w)
Ing. Jacinto Daniel Pinto UTH
ANALISIS NUMERICO CON MATLAB
G fi M tl b S b l t
http://find/7/25/2019 Anlisis Numrico-I Parcial
25/41
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 tiempo (seg.))Ing. Jacinto Daniel Pinto UTH
ANALISIS NUMERICO CON MATLAB
Aj t d C
http://find/7/25/2019 Anlisis Numrico-I Parcial
26/41
Ajuste de Curvas
Suponga que tiene una serie de datos tabulados y requiere estudiar alguna
relacion 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
l t 3D
http://find/http://goback/7/25/2019 Anlisis Numrico-I Parcial
27/41
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
http://find/http://goback/7/25/2019 Anlisis Numrico-I Parcial
28/41
Mesh
La funcion mesh dibuja superficies 3D a partir de matrices. El comandomesh(Z) dibuja los valores de la matriz Z sobre sus coordenadas. Los valoresde 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
http://goforward/http://find/http://goback/7/25/2019 Anlisis Numrico-I Parcial
29/41
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
http://find/7/25/2019 Anlisis Numrico-I Parcial
30/41
ANALISIS NUMERICO CON MATLAB
Surfc
7/25/2019 Anlisis Numrico-I Parcial
31/41
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
http://find/7/25/2019 Anlisis Numrico-I Parcial
32/41
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
http://find/7/25/2019 Anlisis Numrico-I Parcial
33/41
Waterfall
El comando waterfall hace visualizar la superficie como una malla unidi-reccional.)
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
http://find/7/25/2019 Anlisis Numrico-I Parcial
34/41
ANALISIS NUMERICO CON MATLAB
contour3
7/25/2019 Anlisis Numrico-I Parcial
35/41
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 NUM
ERICO CON MATLAB
Sphere
http://find/7/25/2019 Anlisis Numrico-I Parcial
36/41
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 NUM
ERICO CON MATLAB
Cylinder
http://find/7/25/2019 Anlisis Numrico-I Parcial
37/41
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 NUM
ERICO CON MATLAB
Cylinder
http://find/7/25/2019 Anlisis Numrico-I Parcial
38/41
y
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 NUM
ERICO CON MATLAB
TAREA2 Ajuste de Curvas
http://find/7/25/2019 Anlisis Numrico-I Parcial
39/41
j
Ver archivo: Tarea2 Analisis numerico.doc
Ing. Jacinto Daniel Pinto UTH
ANALISIS NUM
ERICO CON MATLAB
Tarea3
http://find/7/25/2019 Anlisis Numrico-I Parcial
40/41
Tarea 3 Hacer un Script que modele la cada libre de un cuerpo. El scriptdebe tener como parametros de entrada:
1 La posicion inicial vertical del cuerpo y0.
2 La velocidad inicial proporcionada al cuerpo v0.
El script debe mostrar los graficos de posicion vrs tiempo, velocidad vrstiempo y aceleracion vrs tiempo.
Ing. Jacinto Daniel Pinto UTH
ANALISIS NUM
ERICO CON MATLAB
http://find/7/25/2019 Anlisis Numrico-I Parcial
41/41
Ing. Jacinto Daniel Pinto UTH
http://find/Top Related