Chapter3rev1 Ok
Chapter3rev1 Ok
Chapter3rev1 Ok
METODOS NUMERICOS_Mecatronica_NRC_16305_Clave_IE126
1
Chapter Objectives
• Aprender a crear archivos M bien documentados en la
ventana de edición e invocarlos desde la ventana de
comandos.
• Comprender en qué se diferencian los archivos de función y
de script.
• Comprender cómo incorporar comentarios de ayuda en
funciones.
• Saber cómo configurar archivos M para que soliciten
información a los usuarios de forma interactiva y muestren
resultados en la ventana de comandos.
• Comprender el papel de las subfunciones y cómo se accede
a ellas.
• Saber cómo crear y recuperar archivos de datos.
2
Objectives (cont)
• Aprender a escribir archivos M claros y bien documentados
mediante el empleo de construcciones de programación
estructuradas para implementar la lógica y la repetición.
• Reconociendo la diferencia entre if ... elseif y switch
construcciones.
• Reconociendo la diferencia entre las estructuras for ... end y
while.
• Comprender qué se entiende por vectorización y por qué es
beneficiosa.
• Saber cómo animar gráficos de MATLAB.
• Comprender cómo se pueden emplear funciones anónimas
para pasar funciones de función a archivos M de funciones.
3
M-files
4
Function Files
5
6
7
function c = adder(a,b) >> d = adder(x,y)
x = 88 the result will be
a x =88
c=a+b a=1
c=5
>> x = 1; y = 4; c = 8 d =5
c=
8
>> c, x, a
Undefined function or variable
'a'.
Error in ScopeScript (line 6)
c, x, a
8
3.1.4 Global Variables
9
10
11
3.2 INPUT-OUTPUT
12
The fprintf Function.
13
3.2.1 Creating and Accessing
Files
14
3.3 STRUCTURED PROGRAMMING
3.3.1 Decisions
15
Relational Operators
• From Table 3.2: Summary of relational
operators in MATLAB:
Example Operator Relationship
x == 0 == Equal
unit ~= ‘m’ ~= Not equal
a<0 < Less than
s>t > Greater than
3.9 <= a/3 <= Less than or equal to
r >= 0 >= Greater than or equal to
16
Logical Operators
~x (Not): true if x is false (or zero); false
otherwise
x & y (And): true if both x and y are true (or
non-zero)
x | y (Or): true if either x or y are true (or non-
zero)
Examplo a = −1, b = 2, x = 1, y = 'b',
17
The if...else Structure
18
The switch Structure
19
Variable Argument List %t=12;m=68.1;cd=0.25
%v = freefall(t, m, cd)
20
for Loops
• One common way to use a for…end structure
is:
22
The while Structure The while...break Structure.
23
Animation
• Dos formas de animar gráficos en MATLAB:
28
3.4 NESTING AND INDENTATION
29
3.5 PASSING FUNCTIONS TO M-FILES
3.5.1 Anonymous Functions
30
31
Primer Caso
Segundo Caso
32
Segundo Caso otro ejemplo
33
3.5.3 Passing Parameters
>>funcavg_3(vel,0,12,60,100,0.28)
34
>>vel = @(t,m,cd) sqrt(9.81*m/cd)*tanh(sqrt(9.81*cd/m)*t);
>>funcavg_3(vel,0,12,60,68.1,0.25)
>>funcavg_3(@(t) vel(t,68.1,0.25),0,12,60)
35