SlideShare una empresa de Scribd logo
1 de 33
Descargar para leer sin conexión
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

Similar a MN01_-_Introduccion_Matlab.pdf

Similar a MN01_-_Introduccion_Matlab.pdf (20)

Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Matlab
MatlabMatlab
Matlab
 
Capitulo5
Capitulo5Capitulo5
Capitulo5
 
Matlab_basic.pptx
Matlab_basic.pptxMatlab_basic.pptx
Matlab_basic.pptx
 
Estructuras repetitivas for y while
Estructuras repetitivas for y whileEstructuras repetitivas for y while
Estructuras repetitivas for y while
 
Estructuras repetitivas for y while
Estructuras repetitivas for y whileEstructuras repetitivas for y while
Estructuras repetitivas for y while
 
Matlab teoria
Matlab teoriaMatlab teoria
Matlab teoria
 
Tutorial funciones básicas Matlab
Tutorial funciones básicas MatlabTutorial funciones básicas Matlab
Tutorial funciones básicas Matlab
 
Computacion ii cap i
Computacion ii cap iComputacion ii cap i
Computacion ii cap i
 
computacion
computacioncomputacion
computacion
 
5.instrucciones de control en java parte2
5.instrucciones de control en java parte25.instrucciones de control en java parte2
5.instrucciones de control en java parte2
 
Guia didactica programacion estructurada unidad 4
Guia didactica programacion estructurada unidad 4Guia didactica programacion estructurada unidad 4
Guia didactica programacion estructurada unidad 4
 
Javacript: expresiones e instrucciones
Javacript: expresiones e instruccionesJavacript: expresiones e instrucciones
Javacript: expresiones e instrucciones
 
Programacion matlab
Programacion matlabProgramacion matlab
Programacion matlab
 
software de ingenieria Matlab para egresados de civil
software de ingenieria Matlab para egresados de civilsoftware de ingenieria Matlab para egresados de civil
software de ingenieria Matlab para egresados de civil
 
Practica 5 simulink-5156
Practica 5 simulink-5156Practica 5 simulink-5156
Practica 5 simulink-5156
 
Curso_de_introduccion_al_matlab.ppt
Curso_de_introduccion_al_matlab.pptCurso_de_introduccion_al_matlab.ppt
Curso_de_introduccion_al_matlab.ppt
 

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