SlideShare una empresa de Scribd logo
CM3207 - METODOS NUMERICOS PARA INGENIERIA
INTRODUCCION A MATLAB
• Es un software de amplio uso en ingeniería.
• Permite realizar funciones desde las más básicas
como operaciones aritméticas hasta
programaciones que realicen una combinación de
operaciones específicas (conocidas también como
“scripts”).
• Permite graficar, crear y manipular vectores y
matrices, abrir, crear y modificar archivos externos,
etc.
¿Qué es Matlab?
Entorno de trabajo
Acá se pueden
ingresar paso a
paso cálculos,
información de
variables,
instrucciones, etc.
Acá se observan los archivos
que son accesados por el
programa
Acá se obsesrvan
las variables
declaradas y sus
valores, datos
creados por las
funciones, etc.
En la pestaña “Home” se puede hacer “click” en el botón
“New Script” y aparecerá el Editor. Es acá en donde se pueden
crear funciones específicas que desee el usuario.
* = multiplica
/ = divide
+ = suma
- = resta
x = b asigna a x el valor de b.
Ej: x=2
clear all – borra todas las
variables almacenadas
x^b – eleva x al valor de b
De igual manera:
power(x,b): x^b. Ej:
power(2,3)=8
pi = 3.14….
sin(x): función seno, igual para
cos(x), tan(x), atan(x), etc.
log(x) = ln(x)
log10(x) = logaritmo base 10
exp(x): e^x
sqrt(x): raíz cuadrada de x
abs(x): valor absoluto de x
Ctrl + C: finaliza ejecución de
script
tic…..toc: calcula tiempo
transcurrido entre el tic y el
toc (no usar cputime)
Comandos básicos
https://www.mathworks.com/help/
matlab/ref/cputime.html
• Vectores se declaran con una serie de números: v = [2
7 6], siempre con paréntesis cuadrados.
• Matrices se separan en filas con “;”: M = [1 5 9; 4 3 7; 6
6 1]
• Se puede solicitar o asignar un elemento específico de
un vector o matriz:
u = v(2) devuelve u = 7, v = M(3,2) devuelve v = 6
v(1) = 3 cambia el primer elemento de v a “3”, y
devuelve que ahora v = [3 7 6]
Vectores y matrices
• Se pueden declarar variables simbólicas para evaluar
funciones o para calcular derivadas. Por ejemplo: syms
x declara a x como variable.
• Luego se puede declarar una función de x, por ejemplo:
f = 3*x^2 (OJO: es necesario el signo de multiplicación)
• Se puede calcular la derivada: c=diff(f,x,1), el uno indica
que es la 1ra derivada. Resultado: c = 6*x
• Se puede evaluar la función: g=subs(f,x,4), evaluar f con
x = 4. Resultado: g = 48
• Se puede evaluar una función simbólica con todos los
valores de un vector y el resultado también será un
vector. Ej: g = subs(f,x,v) devuelve g = [ 243, 147, 108].
Variables simbólicas
• Igual se pueden declarar variables simbólicas, antes de
hacerlo se debe correr la siguiente línea: pkg load
symbolic.
• Octave no permite mezclar escalares y simbólicas en un
mismo vector, gráfico, etc. Hay dos soluciones:
1) Convertir la simbólica a escalar con el comando
double, que la convierte a un escalar almacenado con
doble precisión (queda sujeto a errores de redondeo,
mientras las simbólicas son exactas), también funciona si
Octave tarda demasiado resolviendo el problema o se
queda sin memoria.
2) En un número, se puede evaluar la función en
cualquier número: g=subs(f,x,4), multiplicar por cero y
sumarle el número de interés, que queda almacenado
como simbólica.
Variables simbólicas en Octave
• Para crear un gráfico, se necesitan vectores con los
valores a graficar. Ej: plot(x,y)
• Se puede crear un vector de números separados
regularmente: x = -5:1:5 crea x = (-5 -4 -3 -2 -1 0 1 2
3 4 5)
• Se puede graficar la función
f = x^2: plot(x,x.^2). El punto
Indica que se eleva cada elemento
de x al cuadrado y no el vector
como tal.
Gráficos
-5 -4 -3 -2 -1 0 1 2 3 4 5
0
5
10
15
20
25
• Otra forma de hacerlo:
clear all (para borrar lo almacenado hasta ahora)
u = -5:1:5 (crea u = [-5 -4 -3 -2 -1 0 1 2 3 4 5])
syms x
f = x^2
y = subs(f,x,u) (crea y = [ 25, 16, 9, 4, 1, 0, 1, 4, 9, 16, 25])
plot(u,y)
• Permiten generar una serie de instrucciones
enlazadas mediante condiciones y/o ciclos, de
manera que no deban ser ingresadas manualmente
por el usuario.
• Los scripts se crean y se corren con el botón “Run”
• Las funciones se declaran como tal y se pueden
correr desde la ventana de comandos:
function[variables a devolver]=nombre(información solicitada al usuario)
Instrucciones
end
Scripts o funciones de Matlab
• Las funciones se guardan en un archivo cuyo nombre
debe ser igual al nombre de la función, y no debe
contener espacios ni llamarse igual que otras
funciones de Matlab
• La información al usuario se puede solicitar también
mediante un “input” y se dejan los paréntesis
derechos vacíos. Ej: a = input('digite el valor de a: ')
• Se puede utilizar el signo “%” para escribir
comentarios o marcar líneas que temporalmente van
a ser ignoradas (También se puede hacer/deshacer
en bloque con el botón en el Editor)
• Un “;” al final de una línea evita que el resultado de
esa operación se muestre en la ventana de
comandos al ejecutar la función o script
Las funciones se corren de varias maneras:
• En el Command Window escribiendo toda la línea
inicial incluyendo los paréntesis cuadrados:
[variables a devolver]=nombre(información solicitada
al usuario)
• Esto es importante pues le indica que los valores
entre los paréntesis cuadrados deben ser
almacenados en el “Workspace” para uso futuro en
cálculos o funciones posteriores.
• Si se corren desde el botón “Run” Matlab no
reconoce que debe almacenar esas variables.
• Una manera de evitar el uso de los []’s, es el
comando assignin('base','variable',valor), este le
indica a Matlab que guarde el valor en la variable
indicada en el “workspace” llamado 'base' que es el
que se ve en la ventana de Matlab.
• Es el condicional más sencillo, ejecuta instrucciones
si se cumple una condición específica:
if (acá se indica la condición)
Instrucciones a ejecutarse si se cumple la condición;
end
Condicionales y ciclos - IF
x = input('Digite el valor de x: ');
d = mod(x,2); %calcula el residuo de dividir x por 2
if d==0; %si el residuo es cero
disp('El valor es par’)
end
Es decir, si se ingresa un valor par (ej: 4) va a
devolver el mensaje de que es par, de lo contrario, si
se ingresa un valor impar no devuelve mensaje.
Ejemplo 1
• Ejecuta una instrucción adicional si no se cumple la
condición especificada:
if (acá se indica la condición)
Instrucciones a ejecutarse si se cumple la condición;
else
Instrucciones a ejecutarse si no se cumple la condición;
end
Condicionales y ciclos – IF ELSE
x = input('Digite el valor de x: ');
d = mod(x,2); %calcula el residuo de dividir x por 2
if d==0; %si el residuo es igual a cero
disp('El valor es par')
else
disp('El valor es impar')
end
Es decir, va a devolver un mensaje ya sea indicando que
es par, o de lo contrario, devuelve un mensaje indicando
que es impar.
Ejemplo 2
• Permite añadir varias condiciones y además ejecuta una
instrucción adicional si no se cumple ninguna de ellas:
if (acá se indica la condición)
Instrucciones a ejecutarse si se cumple la condición;
elseif (acá se indica la condición 2)
Instrucciones a ejecutarse si se cumple la condición 2;
elseif (acá se indica la condición 3)
Instrucciones a ejecutarse si se cumple la condición 3;
else
Instrucciones a ejecutarse si no se cumple ninguna condición;
end
Condicionales y ciclos – IF ELSE anidados
• Ejecuta repetidamente una serie de instrucciones
siempre que se cumpla una condición específica:
while (acá se indica la condición)
Instrucciones a ejecutarse si se cumple la condición;
end
• Normalmente se debe incluir una instrucción previa de
manera que la condición se cumpla y el programa entre
al ciclo. Por ejemplo, si la condición es que x sea menor
a 10, se debe asegurar primero que x sea al menos 9, de
lo contrario el ciclo no se ejecutará
Condicionales y ciclos – WHILE
x = input('Digite un valor menor a 10: ')
while x<10 %mientras sea menor a 10 ejecutará la instrucción
x = x + 1
end
Observe que no se puso un punto y coma al final de la
instrucción, por lo que el resultado de la suma se mostrará en
la ventana de comando cada ves que se repita el ciclo.
Debería llegar hasta x=10, pues en el momento en que x=9,
aún ingresará al ciclo y le sumará 1, mostrando x=10, luego no
ingresará al ciclo de nuevo
Ejemplo 3
• Ejecuta una serie de instrucciones utilizando una
variable que toma valores indicados en el rango de la
condición, con un incremento específico entre cada
uno:
for (acá se indica el rango de valores y el incremento)
Instrucciones a ejecutarse a cada valor;
end
• Se utiliza cuando ya se conoce la cantidad de veces que
se debe repetir la instrucción o cuando conozco el
rango completo que debo utilizar
Condicionales y ciclos – FOR
a = input('Digite el valor valor inicial: ');
b = input('Digite el valor valor final: ');
for (y = a:b) %aplicar a valores desde x hasta y
x = y
end
De nuevo, no se puso un punto y coma al final de la
instrucción, por lo que el resultado se mostrará en la ventana
de comando cada vez que se repita el ciclo. Debería iniciar en
x=a y llegar hasta x=b, aumentado de uno en uno pues no se
indicó el incremento.
Ejemplo 4
También se puede indicar el incremento a utilizar entre los
valores del rango:
a = input('Digite el valor valor inicial: ');
b = input('Digite el valor valor final: ');
for (y=a:0.5:b) %aplicar a valores desde x hasta y, con un
incremento de 0.5
x = y
end
El resultado se mostrará en la ventana de comando cada vez
que se repita el ciclo. Debería iniciar en x=a y llegar hasta x=b
con un aumento entre valores de 0.5.
Ejemplo 5
• Tanto el FOR como el WHILE pueden ser utilizados para generar
el gráfico de x^2:
a = input('Digite el valor valor inicial: ');
b = input('Digite el valor valor final: ');
c = input('Digite el valor del incremento para el eje x: ');
n = 1; %en este caso debemos utilizar un contador que vaya
aumentando para indicar la posición en los vectores
for (d = a:c:b)
x(n) = d;
y(n) = d^2;
n = n + 1;
end
plot(x,y)
Ejemplo 6
• Tanto el FOR como el WHILE pueden ser utilizados para generar
el gráfico de x^2:
a = input('Digite el valor valor inicial: ');
b = input('Digite el valor valor final: ');
c = input('Digite el valor del incremento para el eje x: ‘);
n = 1;
while a<b %NOTA: no va a graficar el punto b
x(n) = a;
y(n) = a^2;
a = a + c;
n = n + 1;
end
plot(x,y)
Ejemplo 7
• Normalmente durante un ciclo se recalcula el valor
de la variable de interés.
• En algunos casos se requiere comparar el valor
anterior con el valor nuevo, por ejemplo en el
cálculo del error de métodos iterativos.
• Se acostumbra crear una variable que almacene el
valor anterior, por ejemplo, xant almacena el valor
anterior de x, y de esa manera puedo calcular en
cuanto aumentó el valor de un ciclo al otro:
diferencia = x - xant
Variables auxiliares o temporales
• Otra forma de hacerlo es almacenar los valores de x
en un vector durante el ciclo, la diferencia luego se
calcula entre una posición del vector y la anterior:
Ejemplo, si se creó el vector u = [x1 , x2, x3] tengo
que u(3) – u(2) = x3 – x2
• A la hora de solicitar funciones como información al
usuario dentro de un script, se deben realizar algunos
cambios para que Matlab reconozca la función:
syms x
f=input('Ingrese f(x)= ')
f=symfun(f,x); %=> para que Matlab la reconozca como
función con x como variable
• A la hora de realizar operaciones como evaluar o
derivar la función, la variable debe ir entre comilla:
ej: fa=subs(f,'x',a)
Funciones simbólicas en los scripts
• Matlab, como cualquier programa, puede sufrir por
errores de redondeo, por ejemplo, el siguiente
script falla en entrar al ciclo si x = 0.1 debido a estos
problemas:
x=0
dx=0.01
while x<=0.1
x=x+dx;
if x==0.1
disp('Todo bien')
end
end
Errores de redondeo
• En este script “mejorado” se puede observar porqué:
x=0
dx=0.01
while x<=0.1
x=x+dx;
if round(x,10)==0.1
a=sprintf('%20.18fn',0.1)
b=sprintf('%20.18fn',x)
disp('Todo bien')
end
end
• En ves del redondeo, se puede usar una tolerancia al
comparar números
• Otro ejemplo: correr el ejemplo 6 con intervalo de [1,
10] y c = 0.3, quitar el “;” de la 1ra línea del “for”
• El comando clear all es muy importante
• Al darse algún error durante la ejecución de un script,
alguna variable puede quedar almacenada
• Aún al corregir el error y correr de nuevo la función, en
ocasiones Matlab falla en recalcular o almacenar las
variables, por lo que se puede presentar un nuevo error
• Por esta razón, de ser posible siempre se debe incluir el
comando en los scripts de ser posible (Cuidado en
funciones anidadas o subprogramas)
• Ejemplo: correr dos veces el Ejemplo 6 sin usar clear all
en medio, cambiando el rango de las variables
Clear all
• Las programaciones deben hacerse siguiendo el
procedimiento que se especifica.
• Matlab hace muchas de las cosas que vemos en el
curso (p.e: tiene programada una solución de
Taylor o puede resolver sistemas de ecuaciones
mediante división de matrices).
• Sin embargo, la idea general es programarlas de
una manera que permita entender lo que el
software realiza para obtener esas soluciones y
anticiparse a posibles problemas.
Respecto a las programaciones del curso
MN01_-_Introduccion_Matlab.pdf

Más contenido relacionado

PPTX
Presentación de matlab electromagnetismo ...
PPTX
Clase 10
PDF
Matlab
PDF
Matlab (1)
PDF
Intro algoritmos, como programar 2025.pdf
PDF
Matlabteoria 130808215706-phpapp01
PDF
Matlabteoria 130808215706-phpapp01
PDF
Matlab1
Presentación de matlab electromagnetismo ...
Clase 10
Matlab
Matlab (1)
Intro algoritmos, como programar 2025.pdf
Matlabteoria 130808215706-phpapp01
Matlabteoria 130808215706-phpapp01
Matlab1

Similar a MN01_-_Introduccion_Matlab.pdf (20)

PDF
Intro_Matlab_1.pdf
PPT
Matlab
PPT
Matlab
PPT
Matlab
PPT
Matlab
PDF
Capitulo5
PPTX
Matlab_basic.pptx
PPTX
Estructuras repetitivas for y while
PPTX
Estructuras repetitivas for y while
PDF
Matlab teoria
PPTX
Tutorial funciones básicas Matlab
PPTX
Computacion ii cap i
PPTX
computacion
PDF
5.instrucciones de control en java parte2
PDF
Guia didactica programacion estructurada unidad 4
PPTX
Javacript: expresiones e instrucciones
PDF
Programacion matlab
PPTX
software de ingenieria Matlab para egresados de civil
PDF
Practica 5 simulink-5156
Intro_Matlab_1.pdf
Matlab
Matlab
Matlab
Matlab
Capitulo5
Matlab_basic.pptx
Estructuras repetitivas for y while
Estructuras repetitivas for y while
Matlab teoria
Tutorial funciones básicas Matlab
Computacion ii cap i
computacion
5.instrucciones de control en java parte2
Guia didactica programacion estructurada unidad 4
Javacript: expresiones e instrucciones
Programacion matlab
software de ingenieria Matlab para egresados de civil
Practica 5 simulink-5156
Publicidad

Último (11)

PPTX
Conceptos basicos de Base de Datos y sus propiedades
PPTX
Implementación equipo monitor12.08.25.pptx
PPTX
Fundamentos de Python - Curso de Python dia 1
PPTX
Derechos_de_Autor_y_Creative_Commons.pptx
PPTX
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
PPTX
sistemas de informacion.................
PDF
Su punto de partida en la IA: Microsoft 365 Copilot Chat
PPTX
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
PDF
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
DOCX
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
Conceptos basicos de Base de Datos y sus propiedades
Implementación equipo monitor12.08.25.pptx
Fundamentos de Python - Curso de Python dia 1
Derechos_de_Autor_y_Creative_Commons.pptx
ORIGEN DE LA IA - GRADO 1102 INTELIGENCIA
sistemas de informacion.................
Su punto de partida en la IA: Microsoft 365 Copilot Chat
Tratará sobre Grafos_y_Arboles_Presentacion.pptx
AutoCAD Herramientas para el futuro, Juan Fandiño
Clase 3 - Presentación visual (Insertando objetos visuales) POWER POINT.pdf
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
Publicidad

MN01_-_Introduccion_Matlab.pdf

  • 1. CM3207 - METODOS NUMERICOS PARA INGENIERIA INTRODUCCION A MATLAB
  • 2. • Es un software de amplio uso en ingeniería. • Permite realizar funciones desde las más básicas como operaciones aritméticas hasta programaciones que realicen una combinación de operaciones específicas (conocidas también como “scripts”). • Permite graficar, crear y manipular vectores y matrices, abrir, crear y modificar archivos externos, etc. ¿Qué es Matlab?
  • 3. Entorno de trabajo Acá se pueden ingresar paso a paso cálculos, información de variables, instrucciones, etc. Acá se observan los archivos que son accesados por el programa Acá se obsesrvan las variables declaradas y sus valores, datos creados por las funciones, etc.
  • 4. En la pestaña “Home” se puede hacer “click” en el botón “New Script” y aparecerá el Editor. Es acá en donde se pueden crear funciones específicas que desee el usuario.
  • 5. * = multiplica / = divide + = suma - = resta x = b asigna a x el valor de b. Ej: x=2 clear all – borra todas las variables almacenadas x^b – eleva x al valor de b De igual manera: power(x,b): x^b. Ej: power(2,3)=8 pi = 3.14…. sin(x): función seno, igual para cos(x), tan(x), atan(x), etc. log(x) = ln(x) log10(x) = logaritmo base 10 exp(x): e^x sqrt(x): raíz cuadrada de x abs(x): valor absoluto de x Ctrl + C: finaliza ejecución de script tic…..toc: calcula tiempo transcurrido entre el tic y el toc (no usar cputime) Comandos básicos https://www.mathworks.com/help/ matlab/ref/cputime.html
  • 6. • Vectores se declaran con una serie de números: v = [2 7 6], siempre con paréntesis cuadrados. • Matrices se separan en filas con “;”: M = [1 5 9; 4 3 7; 6 6 1] • Se puede solicitar o asignar un elemento específico de un vector o matriz: u = v(2) devuelve u = 7, v = M(3,2) devuelve v = 6 v(1) = 3 cambia el primer elemento de v a “3”, y devuelve que ahora v = [3 7 6] Vectores y matrices
  • 7. • Se pueden declarar variables simbólicas para evaluar funciones o para calcular derivadas. Por ejemplo: syms x declara a x como variable. • Luego se puede declarar una función de x, por ejemplo: f = 3*x^2 (OJO: es necesario el signo de multiplicación) • Se puede calcular la derivada: c=diff(f,x,1), el uno indica que es la 1ra derivada. Resultado: c = 6*x • Se puede evaluar la función: g=subs(f,x,4), evaluar f con x = 4. Resultado: g = 48 • Se puede evaluar una función simbólica con todos los valores de un vector y el resultado también será un vector. Ej: g = subs(f,x,v) devuelve g = [ 243, 147, 108]. Variables simbólicas
  • 8. • Igual se pueden declarar variables simbólicas, antes de hacerlo se debe correr la siguiente línea: pkg load symbolic. • Octave no permite mezclar escalares y simbólicas en un mismo vector, gráfico, etc. Hay dos soluciones: 1) Convertir la simbólica a escalar con el comando double, que la convierte a un escalar almacenado con doble precisión (queda sujeto a errores de redondeo, mientras las simbólicas son exactas), también funciona si Octave tarda demasiado resolviendo el problema o se queda sin memoria. 2) En un número, se puede evaluar la función en cualquier número: g=subs(f,x,4), multiplicar por cero y sumarle el número de interés, que queda almacenado como simbólica. Variables simbólicas en Octave
  • 9. • Para crear un gráfico, se necesitan vectores con los valores a graficar. Ej: plot(x,y) • Se puede crear un vector de números separados regularmente: x = -5:1:5 crea x = (-5 -4 -3 -2 -1 0 1 2 3 4 5) • Se puede graficar la función f = x^2: plot(x,x.^2). El punto Indica que se eleva cada elemento de x al cuadrado y no el vector como tal. Gráficos -5 -4 -3 -2 -1 0 1 2 3 4 5 0 5 10 15 20 25
  • 10. • Otra forma de hacerlo: clear all (para borrar lo almacenado hasta ahora) u = -5:1:5 (crea u = [-5 -4 -3 -2 -1 0 1 2 3 4 5]) syms x f = x^2 y = subs(f,x,u) (crea y = [ 25, 16, 9, 4, 1, 0, 1, 4, 9, 16, 25]) plot(u,y)
  • 11. • Permiten generar una serie de instrucciones enlazadas mediante condiciones y/o ciclos, de manera que no deban ser ingresadas manualmente por el usuario. • Los scripts se crean y se corren con el botón “Run” • Las funciones se declaran como tal y se pueden correr desde la ventana de comandos: function[variables a devolver]=nombre(información solicitada al usuario) Instrucciones end Scripts o funciones de Matlab
  • 12. • Las funciones se guardan en un archivo cuyo nombre debe ser igual al nombre de la función, y no debe contener espacios ni llamarse igual que otras funciones de Matlab • La información al usuario se puede solicitar también mediante un “input” y se dejan los paréntesis derechos vacíos. Ej: a = input('digite el valor de a: ') • Se puede utilizar el signo “%” para escribir comentarios o marcar líneas que temporalmente van a ser ignoradas (También se puede hacer/deshacer en bloque con el botón en el Editor) • Un “;” al final de una línea evita que el resultado de esa operación se muestre en la ventana de comandos al ejecutar la función o script
  • 13. Las funciones se corren de varias maneras: • En el Command Window escribiendo toda la línea inicial incluyendo los paréntesis cuadrados: [variables a devolver]=nombre(información solicitada al usuario) • Esto es importante pues le indica que los valores entre los paréntesis cuadrados deben ser almacenados en el “Workspace” para uso futuro en cálculos o funciones posteriores. • Si se corren desde el botón “Run” Matlab no reconoce que debe almacenar esas variables. • Una manera de evitar el uso de los []’s, es el comando assignin('base','variable',valor), este le indica a Matlab que guarde el valor en la variable indicada en el “workspace” llamado 'base' que es el que se ve en la ventana de Matlab.
  • 14. • Es el condicional más sencillo, ejecuta instrucciones si se cumple una condición específica: if (acá se indica la condición) Instrucciones a ejecutarse si se cumple la condición; end Condicionales y ciclos - IF
  • 15. x = input('Digite el valor de x: '); d = mod(x,2); %calcula el residuo de dividir x por 2 if d==0; %si el residuo es cero disp('El valor es par’) end Es decir, si se ingresa un valor par (ej: 4) va a devolver el mensaje de que es par, de lo contrario, si se ingresa un valor impar no devuelve mensaje. Ejemplo 1
  • 16. • Ejecuta una instrucción adicional si no se cumple la condición especificada: if (acá se indica la condición) Instrucciones a ejecutarse si se cumple la condición; else Instrucciones a ejecutarse si no se cumple la condición; end Condicionales y ciclos – IF ELSE
  • 17. x = input('Digite el valor de x: '); d = mod(x,2); %calcula el residuo de dividir x por 2 if d==0; %si el residuo es igual a cero disp('El valor es par') else disp('El valor es impar') end Es decir, va a devolver un mensaje ya sea indicando que es par, o de lo contrario, devuelve un mensaje indicando que es impar. Ejemplo 2
  • 18. • Permite añadir varias condiciones y además ejecuta una instrucción adicional si no se cumple ninguna de ellas: if (acá se indica la condición) Instrucciones a ejecutarse si se cumple la condición; elseif (acá se indica la condición 2) Instrucciones a ejecutarse si se cumple la condición 2; elseif (acá se indica la condición 3) Instrucciones a ejecutarse si se cumple la condición 3; else Instrucciones a ejecutarse si no se cumple ninguna condición; end Condicionales y ciclos – IF ELSE anidados
  • 19. • Ejecuta repetidamente una serie de instrucciones siempre que se cumpla una condición específica: while (acá se indica la condición) Instrucciones a ejecutarse si se cumple la condición; end • Normalmente se debe incluir una instrucción previa de manera que la condición se cumpla y el programa entre al ciclo. Por ejemplo, si la condición es que x sea menor a 10, se debe asegurar primero que x sea al menos 9, de lo contrario el ciclo no se ejecutará Condicionales y ciclos – WHILE
  • 20. x = input('Digite un valor menor a 10: ') while x<10 %mientras sea menor a 10 ejecutará la instrucción x = x + 1 end Observe que no se puso un punto y coma al final de la instrucción, por lo que el resultado de la suma se mostrará en la ventana de comando cada ves que se repita el ciclo. Debería llegar hasta x=10, pues en el momento en que x=9, aún ingresará al ciclo y le sumará 1, mostrando x=10, luego no ingresará al ciclo de nuevo Ejemplo 3
  • 21. • Ejecuta una serie de instrucciones utilizando una variable que toma valores indicados en el rango de la condición, con un incremento específico entre cada uno: for (acá se indica el rango de valores y el incremento) Instrucciones a ejecutarse a cada valor; end • Se utiliza cuando ya se conoce la cantidad de veces que se debe repetir la instrucción o cuando conozco el rango completo que debo utilizar Condicionales y ciclos – FOR
  • 22. a = input('Digite el valor valor inicial: '); b = input('Digite el valor valor final: '); for (y = a:b) %aplicar a valores desde x hasta y x = y end De nuevo, no se puso un punto y coma al final de la instrucción, por lo que el resultado se mostrará en la ventana de comando cada vez que se repita el ciclo. Debería iniciar en x=a y llegar hasta x=b, aumentado de uno en uno pues no se indicó el incremento. Ejemplo 4
  • 23. También se puede indicar el incremento a utilizar entre los valores del rango: a = input('Digite el valor valor inicial: '); b = input('Digite el valor valor final: '); for (y=a:0.5:b) %aplicar a valores desde x hasta y, con un incremento de 0.5 x = y end El resultado se mostrará en la ventana de comando cada vez que se repita el ciclo. Debería iniciar en x=a y llegar hasta x=b con un aumento entre valores de 0.5. Ejemplo 5
  • 24. • Tanto el FOR como el WHILE pueden ser utilizados para generar el gráfico de x^2: a = input('Digite el valor valor inicial: '); b = input('Digite el valor valor final: '); c = input('Digite el valor del incremento para el eje x: '); n = 1; %en este caso debemos utilizar un contador que vaya aumentando para indicar la posición en los vectores for (d = a:c:b) x(n) = d; y(n) = d^2; n = n + 1; end plot(x,y) Ejemplo 6
  • 25. • Tanto el FOR como el WHILE pueden ser utilizados para generar el gráfico de x^2: a = input('Digite el valor valor inicial: '); b = input('Digite el valor valor final: '); c = input('Digite el valor del incremento para el eje x: ‘); n = 1; while a<b %NOTA: no va a graficar el punto b x(n) = a; y(n) = a^2; a = a + c; n = n + 1; end plot(x,y) Ejemplo 7
  • 26. • Normalmente durante un ciclo se recalcula el valor de la variable de interés. • En algunos casos se requiere comparar el valor anterior con el valor nuevo, por ejemplo en el cálculo del error de métodos iterativos. • Se acostumbra crear una variable que almacene el valor anterior, por ejemplo, xant almacena el valor anterior de x, y de esa manera puedo calcular en cuanto aumentó el valor de un ciclo al otro: diferencia = x - xant Variables auxiliares o temporales
  • 27. • Otra forma de hacerlo es almacenar los valores de x en un vector durante el ciclo, la diferencia luego se calcula entre una posición del vector y la anterior: Ejemplo, si se creó el vector u = [x1 , x2, x3] tengo que u(3) – u(2) = x3 – x2
  • 28. • A la hora de solicitar funciones como información al usuario dentro de un script, se deben realizar algunos cambios para que Matlab reconozca la función: syms x f=input('Ingrese f(x)= ') f=symfun(f,x); %=> para que Matlab la reconozca como función con x como variable • A la hora de realizar operaciones como evaluar o derivar la función, la variable debe ir entre comilla: ej: fa=subs(f,'x',a) Funciones simbólicas en los scripts
  • 29. • Matlab, como cualquier programa, puede sufrir por errores de redondeo, por ejemplo, el siguiente script falla en entrar al ciclo si x = 0.1 debido a estos problemas: x=0 dx=0.01 while x<=0.1 x=x+dx; if x==0.1 disp('Todo bien') end end Errores de redondeo
  • 30. • En este script “mejorado” se puede observar porqué: x=0 dx=0.01 while x<=0.1 x=x+dx; if round(x,10)==0.1 a=sprintf('%20.18fn',0.1) b=sprintf('%20.18fn',x) disp('Todo bien') end end • En ves del redondeo, se puede usar una tolerancia al comparar números • Otro ejemplo: correr el ejemplo 6 con intervalo de [1, 10] y c = 0.3, quitar el “;” de la 1ra línea del “for”
  • 31. • El comando clear all es muy importante • Al darse algún error durante la ejecución de un script, alguna variable puede quedar almacenada • Aún al corregir el error y correr de nuevo la función, en ocasiones Matlab falla en recalcular o almacenar las variables, por lo que se puede presentar un nuevo error • Por esta razón, de ser posible siempre se debe incluir el comando en los scripts de ser posible (Cuidado en funciones anidadas o subprogramas) • Ejemplo: correr dos veces el Ejemplo 6 sin usar clear all en medio, cambiando el rango de las variables Clear all
  • 32. • Las programaciones deben hacerse siguiendo el procedimiento que se especifica. • Matlab hace muchas de las cosas que vemos en el curso (p.e: tiene programada una solución de Taylor o puede resolver sistemas de ecuaciones mediante división de matrices). • Sin embargo, la idea general es programarlas de una manera que permita entender lo que el software realiza para obtener esas soluciones y anticiparse a posibles problemas. Respecto a las programaciones del curso