Вы находитесь на странице: 1из 53

Curso de Programación

Dr. Javier Lozano Marreros


Tacna - Perú
2019

1
Cálculo Numérico

Facultad: FIAG
Escuela: Ing. Civil
Año Académico: 2019
Semestre: IV

2 Dr. Javier Lozano Marreros


PROGRAMACIÓN

EN MATLAB

3 Dr. Javier Lozano M.


¿Qué es MATLAB?
 MATLAB es una de las muchas sofisticadas
herramientas de computación disponibles en el
comercio para resolver problemas de matemáticas
 MATLAB es una abreviatura de Matrix Laboratory
(LABoratorio MATricial)
 MATLAB es óptimo para cálculos matriciales.

UNJBG - Dr. Javier Lozano Marreros 4


Gráficas

Cálculo
Lenguaje de
numérico
programación
computacional
MATLAB

Toolboxes Simulink

UNJBG - Dr. Javier Lozano Marreros 5


Ventana de apertura de MATLAB

UNJBG - Dr. Javier Lozano Marreros 6


Ventana de comandos (command window)

UNJBG - Dr. Javier Lozano Marreros 7


Instrucciones a ejecutar

UNJBG - Dr. Javier Lozano Marreros 8


Editor de código

UNJBG - Dr. Javier Lozano Marreros 9


Ventana de gráficos

Curvas en el plano

UNJBG - Dr. Javier Lozano Marreros 10


Mallas en el
espacio

UNJBG - Dr. Javier Lozano Marreros 11


Curvas en el
espacio

UNJBG - Dr. Javier Lozano Marreros 12


Ventana del área de trabajo (workspace)

La ventana de trabajo le
mantiene informado de las
variables definidas conforme
ejecuta comandos en la
ventana de comandos

UNJBG - Dr. Javier Lozano Marreros 13


VARIABLES
 Las variables deben empezar con una letra; seguida de
letras, dígitos o guiones de subrayado. Los caracteres de
puntuación no son permitidos en las variables.
 Las variables son sensibles a las mayúsculas: Mecanica es
diferente de mecanica
 MATLAB reserva una lista de palabras clave que no se
pueden asignar como nombres de variable. El comando
iskeyword hace que MATLAB muestre una lista de
tales palabras reservadas
>>iskeyword
UNJBG - Dr. Javier Lozano Marreros 14
Operaciones aritméticas entre dos escalares

Operación Sintaxis algebraica Sintaxis MATLAB


Suma a+b a+b
Resta a-b a-b
Multiplicación axb a*b
División a÷b a/b
Exponenciación ab a^b
UNJBG - Dr. Javier Lozano Marreros 15
Orden de las operaciones
MATLAB sigue las reglas algebraicas estándar para el orden
de operación:
• Primero realiza los cálculos adentro de paréntesis, desde el
conjunto más interno hasta el más externo.
• A continuación, realiza operaciones de exponenciación.
• Luego realiza operaciones de multiplicación y división de
izquierda a derecha.
• Finalmente, realiza operaciones de suma y resta de
izquierda a derecha.
UNJBG - Dr. Javier Lozano Marreros 16
MATRICES (Arreglos) en MATLAB
• Las matrices se representan como filas y columnas
dentro de corchetes
• Escalar: matriz de un solo valor

A   4

4 1 2 
B   4 5 C  D 
6   3 4 
UNJBG - Dr. Javier Lozano Marreros 17
MATRICES (Arreglos) en MATLAB
Vector (Arreglo unidimensional)

VECTOR FILA:

v = [v1,v2,v3, … ,vn]

VECTOR COLUMNA:
v = [v1;v2;v3; … ;vn]

UNJBG - Dr. Javier Lozano Marreros 18


Otras formas de crear un vector
1. Con el operador dos puntos(:)
Var = [Vi: Inc: Vf]
Donde: Var: nombre de la variable
Inc: incremento
Vi: valor inicial
Vf: Valor final

2. Con la función linspace()


linspace(Vi, Vf, NE)
Donde: Vi : valor inicial
Vf : valor final
NE : número de elementos

UNJBG - Dr. Javier Lozano Marreros 19


Acceso a elementos de un vector
 Devuelve el n-ésimo elemento del vector x
x(n)
 Devuelve los elementos del vector x situados entre el a-
esimo y b-ésimo elemento, y ambos inclusive
x(a:b)
 Devuelve el primero, tercero y quinto elemento.
x([1,3,5])
 Devuelve el numero de elementos del vector.
length(x)

UNJBG - Dr. Javier Lozano Marreros 20


MATRICES

Arreglos  a11 a12 a13 



M   a21 a22 
bidimensionales a23 
 a31 a32 a33 
Sintaxis:
M=[a11,a12,a13;a21,a22,a23;a31,a32,a33]

En lugar de las comas se pueden utilizar espacios en blanco


UNJBG - Dr. Javier Lozano Marreros 21
1 4 3
Crea la matriz de  
3 filas y 3 columnas M   5 7 8 
 2 5 1 

>> M=[1,4,-3;5,-7,8;2,5,1]
M =
1 4 -3
5 -7 8
2 5 1
UNJBG - Dr. Javier Lozano Marreros 22
Acceso a elementos de una matriz
 A(i,j) Devuelve el elemento de la matriz A que esta
ubicado en la fila i y en la columna j.

 A(i,:) Devuelve los elementos de la i-ésima fila de


la matriz A

 A(:,j) Devuelve los elementos de la j–ésima


columna de la matriz A

UNJBG - Dr. Javier Lozano Marreros 23


MATRICES ESPECIALES
 zeros(m,n)
Crea la matriz de orden mxn, cuyos elementos son ceros.
 ones(m,n)
Crea la matriz de orden mxn, cuyos elementos son unos.
 rand(m,n)
Crea la matriz aleatoria de orden mxn
 size(A)
Devuelve el orden(tamaño) de la matriz A
 A’
Devuelve la matriz traspuesta de la matriz A
 det(A)
Devuelve la determinante de una matriz.
 inv(A)
Devuelve la matriz inversa de la matriz A
UNJBG - Dr. Javier Lozano Marreros 24
Operadores en MATLAB

Operación Sintaxis MATLAB


Suma de matrices A+B
Resta de matrices A-B
Multiplicación de matrices A*B
División de matrices A/B=A*inv(B)

UNJBG - Dr. Javier Lozano Marreros 25


Operadores en MATLAB

Operación Sintaxis MATLAB


Multiplicación punto A.*B
(elemento a elemento)
División punto (elemento a A./B=[A(i,j)/B(i,j)]
elemento)
Potencia escalar de matriz A^p

Potencia de matrices A.^B=[A(i,j)^B(i,j)]


(elemento a elemento)
UNJBG - Dr. Javier Lozano Marreros 26
Operadores relacionales Operadores
Operación Sintaxis
lógicos
MATLAB Operación Sintaxis
Menor que < MATLAB
Mayor que > Negación ~
Menor o igual <= Conjunción &
Mayor o igual >=
Igualdad == Disyunción |
Diferente ~=
UNJBG - Dr. Javier Lozano Marreros 27
Programación en MATLAB

PROGRAMAS QUE SE EJECUTAN EN LA


VENTANA DE COMANDOS

UNJBG - Dr. Javier Lozano Marreros 28


Código en MATLAB
Scripts
Un script es una secuencia de instrucciones
de MATLAB guardada en un archivo con
extensión .m

Para ejecutar el programa:


 Pulsar F5

 Escribir el nombre del archivo en el


prompt de la ventana de comandos.
UNJBG - Dr. Javier Lozano Marreros 29
Ventana de edición
Esta ventana le
permite escribir y
guardar una serie
de comandos sin
ejecutarlos

UNJBG - Dr. Javier Lozano Marreros 30


Instrucción de asignación

variable  expresion

Símbolo Código en MATLAB

d  b  4ac 2
d = b^2-4*a*c

UNJBG - Dr. Javier Lozano Marreros 31


Entrada de datos
La función input
Muestra el texto en el prompt y espera a que el usuario
ingrese un valor y presione la tecla Return

variable

variable=input('texto');
variable=input('texto','s');
UNJBG - Dr. Javier Lozano Marreros 32
Ejemplo:

N, f(x)

Código en MATLAB
N=input('Ingrese el numero de terminos: ');
txt=input('Ingrese la funcion f(x):','s');
f=inline(txt);

33 UNJBG - Dr. Javier Lozano Marreros


Salida de datos
1. La función disp
Esta función MATLAB muestra el valor de la variable x sin
imprimir el nombre de la variable

disp(x)
UNJBG - Dr. Javier Lozano Marreros 34
2. La función fprintf
Escribe una cadena de caracteres con formato.

cadena=fprintf('formato',x);
UNJBG - Dr. Javier Lozano Marreros 35
Ejemplos
Ejemplo1:
disp('Mi primer programa');
s=sqrt(b^2-4*a*c); disp(s);

Ejemplo2:
fprintf('%12.8f\n',pi)

Ejemplo3:
x=[-3:0.5:3]'; y=x.^2; z=[x y];
fprintf('\tX\t\tY\t\n');
fprintf('%8.4f %8.4f\n',z')
UNJBG - Dr. Javier Lozano Marreros 36
Estructuras selectivas
La estructura if

if condicion
V Condicion F
instruccion
o grupo de
Instrucciones instrucciones
end

UNJBG - Dr. Javier Lozano Marreros 37


La estructura if else

if condicion
V F
Condicion Instrucciones1
else
Instrucciones1 Instrucciones2
Instrucciones2
end

UNJBG - Dr. Javier Lozano Marreros 38


La estructura switch
switch expresión
case valor 1
Instrucciones1
Expresion case valor 2
instrucciones2
...
valor 1 valor 2 valor n-1 valor n
oterwise
Inst 1 Inst 2 Inst n-1 Inst n Instrucción cuando
no cumple ningún
caso
end
UNJBG - Dr. Javier Lozano Marreros 39
Estructuras repetitivas
La estructura for

VF = VI, I, VF
for V=VI:I:VF
Instrucciones
instrucciones
end

UNJBG - Dr. Javier Lozano Marreros 40


La estructura while

F
Condicion
while condicion
V instrucciones
end
Instrucciones

UNJBG - Dr. Javier Lozano Marreros 41


EJEMPLOS DE
PROGRAMAS
EN MATLAB

UNJBG - Dr. Javier Lozano Marreros 42


Ejemplos
Ejemplo1.
Desarrollar el diagrama de flujo y codificar el programa en
MATLAB, que calcule la suma de los n primeros términos de
la sucesión

0, 1, 1, 2, 3, 5, 8, 13, 21,

UNJBG - Dr. Javier Lozano Marreros 43


Ejemplos INICIO
n
a1 0
Ejemplo 1. a2 1
Desarrollar el diagrama de flujo y i=3,n
codificar el programa en MATLAB,
ai  ai-1+ai-2
que calcule la suma de los n
primeros términos de la sucesión s  0
i=1,n
s  s + ai
0, 1, 1, 2, 3, 5, 8, 13, 21,
s

FIN
UNJBG - Dr. Javier Lozano Marreros 44
INICIO Código en MATLAB
INICIO
n n=input(‘Ingrese n: ’);
nn
a1 0
aa1 10
2 a(1)=0;
a2 1
i=3,n a(2)=1;
i=3,n for i=3:n
 a
aaii  ai-1+a i-2 a(i)=a(i-1)+a(i-2);
i-1+ai-2
end
 00
ss 
s=0;
for i=1:n
i=1,n
i=1,n s=s+a(i);
ss 
 s ++ aaii end

ss disp(S);
FIN
FIN
UNJBG - Dr. Javier Lozano Marreros 45
Código en MATLAB

Para ejecutar

UNJBG - Dr. Javier Lozano Marreros 46


Grabar el ejemplo 1

UNJBG - Dr. Javier Lozano Marreros 47


Resultados del ejemplo 1

48 UNJBG - Dr. Javier Lozano Marreros


Inicio
Ejemplo 2.
n, x
Desarrollar el diagrama de flujo y
codificar el programa en MATLAB, P ← 1
que calcule la suma de los n F ← 1
S ← 1
primeros términos de la sucesión
i = 1,n-1

2 3 4 P ← P*x
x x x F ← F*i
1, x, , , ,
S ← S + P/F
2! 3! 4!

Fin

UNJBG - Dr. Javier Lozano Marreros 49


Código en MATLAB del ejemplo 2
Inicio
n=input(‘Ingrese n: ’);
n, x x=input(‘Ingrese x: ’);
P ← 1 P=1;
F ← 1
S ← 1
F=1;
S=1;
i = 1,n-1
for i=1:n-1
P ← P*x P=P*x;
F ← F*i
F=F*i;
S ← S + P/F
S=S+P/F;
end
S
disp(S);
Fin

UNJBG - Dr. Javier Lozano Marreros 50


Código en MATLAB del ejemplo 2

UNJBG - Dr. Javier Lozano Marreros 51


Resultados del ejemplo 2

52 UNJBG - Dr. Javier Lozano Marreros


Problema
La ecuación siguiente se emplea para calcular el nivel de oxigeno
c(mg/L) en un río aguas abajo de la descarga de un drenaje:

c  10  20  e0.15 x  e0.5 x 
Donde x es la distancia aguas abajo en kilómetros

a) Determine la distancia aguas abajo de la corriente, a la cual el nivel de


oxígeno cae hasta una lectura de 5mg/L. (Recomendación: esta dentro
de 2km de la descarga.) Encuentre la respuesta con un error de 1%.
Obsérvese que los niveles de oxígeno por debajo de los 5mg/L por lo
general son dañinos para ciertas especies de pesca deportiva, como la
trucha y el salmón.
b) Calcule la distancia aguas abajo a la cual el oxígeno se encuentra al
mínimo. ¿Cuál es la concentración en dicha ubicación?
53 Dr. Javier Lozano M.

Вам также может понравиться