Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pregrado Guia 2 1 PDF
Pregrado Guia 2 1 PDF
A los archivos que contienen códigos de MATLAB se les llama archivos-M (M-
files) y tienen la extensión .m. que son Scripts y Funciones.
1. Control de flujo
Al proceso de toma de decisiones se le llama control del flujo.
Antes de ponerse a escribir el programa, sobre todo si es un poco largo o
complejo, es útil trazar un esquema, en lenguaje corriente, de lo que se quiere
hacer. A eso se le denomina un diagrama de flujo. Si lo que se pretende está
claro, escribir el programa se reduce a traducir el diagrama de flujo del
castellano al lenguaje de MATLAB.
Veamos un caso simple. Construyamos el diagrama de flujo de un programa
que escoja un número al azar del 0 al 9 y nos pida que lo adivinemos. Una
vez escogido el número, el programa debe informar si hemos acertado o no.
El diagrama de flujo correspondiente es:
UNCP – FACULTAD DE INGENIERÍA MECÁNICA
MG. ARTURO HUBER GAMARRA MORENO
3. Condicionales
Condicional Simple
Si se desea ejecutar un conjunto de instrucciones en el caso de que se
cumpla una condición, usaremos una estructura if.
Dependiendo de una condición, el programa decide el curso que seguirá
La manera más sencilla de usarla es la siguiente:
if condicion lógica
ordenes de Matlab
UNCP – FACULTAD DE INGENIERÍA MECÁNICA
MG. ARTURO HUBER GAMARRA MORENO
end
El resultado de una condición permite tomar una decisión, es decir, si la
condición es verdadera se ejecutan determinadas sentencias. El diagrama de
flujo se ramifica:
if (condición)
sentencias
end
Condicional if
Condicional Doble
Existe la posibilidad de ejecutar ciertas sentencias si la condición es
verdadera, y otras diferentes si la condición es falsa.
Usando A partir del caso anterior se observa la necesidad de introducir una
alternativa cuando no se cumpla la condición. Esto se hace mediante el
comando else. La estructura habitual para este comando es:
Diagrama de flujo Sintaxis en Matlab
if (condición)
sentencias A
else
sentencias B
end
Condicional if - else
0 Domingo
1 Lunes
2 Martes
3 Miércoles
4 Jueves
5 Viernes
6 Sábado
4. Bucles
Los bucles permiten repetir las mismas o análogas operaciones sobre datos
distintos.
La sentencia for
UNCP – FACULTAD DE INGENIERÍA MECÁNICA
MG. ARTURO HUBER GAMARRA MORENO
5. Funciones
También pueden programarse funciones. La primera instrucción de un fichero
que contenga una función de nombre fun debe ser:
function[argumentos de salida]=fun(argumentos de entrada)
Es conveniente que el fichero que contenga la función se llame como ella; así,
la función anterior debería guardarse en el fichero fun.m.
Ejemplo: Si se desea programar una función que calcule, mediante el
algoritmo de Euclides, el máximo común divisor de dos números naturales,
basta escribir un fichero euclides.m cuyo contenido sea:
function m=euclides(a,b)
% Cálculo del máximo común divisor de dos números
% naturales mediante el algoritmo de Euclides
if a<b
c=b;
b=a;
a=c;
UNCP – FACULTAD DE INGENIERÍA MECÁNICA
MG. ARTURO HUBER GAMARRA MORENO
end
while b>0
c=rem(a,b);
a=b;
b=c;
end
m=a;
Si, una vez escrito el fichero anterior, en el espacio de trabajo o en un
programa se escribe la instrucción
mcd=euclides(33,121)
>>x=15;
>>mcd=euclides(x,3);
>>x
x =
15
6. Ejercicios resueltos
Ejecución
>> par(8)
ans =
>> par(9)
UNCP – FACULTAD DE INGENIERÍA MECÁNICA
MG. ARTURO HUBER GAMARRA MORENO
ans =
ans =
>> natural(-3)
ans =
>> natural(3.8)
ans =
i=i+1;
x(i)=r*cos(fi2);
y(i)=r*sin(fi2);
end
plot(x,y,'o')
Ejecución
>> circunferencia1(6,15)
ans =
Columns 1 through 12
Columns 13 through 24
Column 25
6.0000
7. ERRORES
Los errores numéricos se generan con el uso de aproximaciones para
representar cantidades y/o operaciones. Esto da lugar a dos tipos de errores:
de truncamiento y de redondeo
Los errores de truncamiento, resultan de representar aproximadamente un
procedimiento matemático exacto. Por ejemplo, en la solución numérica al
problema del objeto en caída libre, usamos una aproximación al proceso de
derivación, el cual es un procedimiento matemático exacto.
UNCP – FACULTAD DE INGENIERÍA MECÁNICA
MG. ARTURO HUBER GAMARRA MORENO
𝒅𝒚 𝒗(𝒕𝒊+𝟏 ) − 𝒗(𝒕𝒊 )
=
𝒅𝒙 𝒕𝒊+𝟏 − 𝒕𝒊
Esto genera errores de truncamiento durante el
procedimiento.
Los errores de redondeo resultan de representar aproximadamente números
que son exactos. Por ejemplo, aún en la "solución exacta" al problema del
objeto en caída libre, los resultados impresos en la tabla de velocidades no
son totalmente exactos puesto que el numero e es un número irracional y por
lo tanto su extensión decimal es infinita y no periódica lo que nos impide
escribirlo de forma completamente exacta. Usando 5 decimales, tenemos:
𝒆 = 𝟐. 𝟕𝟏𝟖𝟐𝟖
Esto genera errores de redondeo durante los cálculos.
EV = 20,000-19,999 = 1cm
EV = 10 - 9 = 1cm
error absoluto
Er
valor verdadero
Esto es:
valor verdadero valor aproximado
Er
valor verdadero
Y también se define el error relativo porcentual, como sigue:
Iˆr E r 100%
Es decir,
valor verdadero valor aproximado
Iˆr 100%
valor verdadero
De hecho el error que más usamos es este último, ya que nos da una idea en
tanto por ciento del error que se está cometiendo.
Por ejemplo, en el caso de la varilla el error relativo porcentual es:
1
Iˆr 100% 0.005
20000
Mientras que en el caso del clavo, el error relativo porcentual es:
1
Iˆr 100% 10
10
Podemos observar, que el error relativo porcentual refleja mejor la gravedad o
no gravedad del error que se está cometiendo. Es claro, que en el caso de la
varilla no es trascendente ya que representa solamente un 0.005% con
respecto al valor verdadero, mientras que en el caso del clavo, el error si es
representativo ya que es del 10% del valor verdadero.
Finalmente, mencionaremos que un proceso de aproximación puede
detenerse cuando el valor absoluto del error relativo porcentual es menor que
una cierta cota, fijada de antemano.
Sin embargo, todavía tenemos un pequeño defecto en nuestro análisis del
error. Los métodos numéricos se aplican en realidad, a problemas que no se
pueden resolver analíticamente; en nuestro ejemplo del cuerpo en caída libre,
en realidad no es necesario aplicar ningún método numérico, puesto que
conocemos la solución exacta del problema. Por lo tanto, en una situación
real, desconoceremos el valor verdadero de la solución al problema; luego
entonces estaremos imposibilitados de calcular el error relativo porcentual.
La forma de resolver este problema es pensar que para obtener una cierta
aproximación a un valor, tuvimos que haber obtenido una aproximación
anterior al mismo valor. Una vez calculada la nueva aproximación
procedemos a calcular otra aproximación al mismo valor y así sucesivamente.
Si el método realmente converge a un resultado (que esperamos sea a la
UNCP – FACULTAD DE INGENIERÍA MECÁNICA
MG. ARTURO HUBER GAMARRA MORENO
ˆ
Solución: Primero calculamos el valor de I s como sigue:
Iˆa 0.005%
En el primer paso, tenemos simplemente un término:
1
e 1
0!
En el segundo paso, tenemos la suma de dos términos:
1 1
e 2
0 ! 1!
Aquí, podemos calcular el primer error aproximado:
actual previa 2 1
Iˆa 100% 100% 50%
actual 2
UNCP – FACULTAD DE INGENIERÍA MECÁNICA
MG. ARTURO HUBER GAMARRA MORENO
1 1
2 2 50%
3 2.5 20%
4 2.666666667 6.25%
5 2.708333333 1.54%
6 2.716666667 0.307%
7 2.718055556 0.051%
8 2.718253968 0.007%
9 2.718278770 0.0009%
Iˆ
Que en realidad tiene 8 cifras significativas. La cota impuesta por S , nos asegura
que tendremos almenos n cifras significativas; en este ejemplo, obtuvimos 4 cifras
significativas más.
8. Ejercicios propuestos
1) Elabore una aplicación que calcule el factorial de “n” con opciones para
verificar si “n” es un entero y si éste es o no negativo.
2) Escriba el programa correspondiente en MATLAB si se desea sumar todos
los elementos aij de una matriz n x m, si esto se puede hacer realizando la
suma:
UNCP – FACULTAD DE INGENIERÍA MECÁNICA
MG. ARTURO HUBER GAMARRA MORENO
n m
suma a
i 1 j 1
ij
ax2 bx c 0
están dadas por:
b b 2 4ac
x1, 2
2a