Kitabı oku: «Modelamiento y simulación de sistemas con Simulink», sayfa 5

Yazı tipi:

1.7.12 Funciones stem y stem3

La aplicación de las funciones stem y stem3 es precisa si fuese necesario resaltar la ubicación de los datos en secuencias discretas de cualquier gráfico bidimensional o tridimensional, respectivamente. Dichas funciones se muestran en el siguiente ejemplo, cuya resultante es la figura 1.17:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 figure (1) % <enter > Creación de figura

3 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

4 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

5 X1 = linspace (0 ,5*pi ,100) ; % <enter > Creación del vector X1

6 Y1 = cos(X1); % <enter > Creación del vector Y1

7 stem (X1 ,Y1) % <enter > Uso de la función stem bidimensional

8 ax = gca; % <enter >

9 ax.GridAlpha = 0.40; % <enter > Oscurecimiento de grillas

10 grid on % <enter > Inserción de rejillas en el gráfico

11 figure (2) % <enter > Creación de figura

12 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

13 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

14 X1 = linspace (0 ,5*pi ,100) ; % <enter > Creación del vector X1

15 Y1 = ( cos(X1)); % <enter > Creación del vector Y1

16 stem (X1 ,Y1 , ' LineStyle ' , ' -. ' , ' MarkerFaceColor ' , ' r ' , ' MarkerEdgeColor ' , ' g ' ) % <enter > Uso de la función stem bidimensional

17 ax = gca; % <enter >

18 ax. GridAlpha = 0.40; % <enter > Oscurecimiento de grillas

19 grid on % <enter > Inserción de rejillas en el gráfico

20 figure (3) % <enter > Creación de figura

21 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

22 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

23 theta = linspace (0 ,2*pi); % <enter > Creación del vector theta

24 X1 = cos( theta ); % <enter > Creación del vector X1

25 Y1 = sin( theta ); % <enter > Creación del vector Y1

26 Z1 = theta ; % <enter > Creación del vector Z1

27 stem3 (X1 ,Y1 ,Z1 , ' :*m ' ) % <enter > Uso de la función stem3 tridimensional

28 grid on % <enter > Inserción de rejillas en el gráfico

29 ax = gca; % <enter >

30 ax.GridAlpha = 0.40; % <enter > Oscurecimiento de grillas

31 figure (4) % <enter > Creación de figura

32 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

33 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

34 X1 = linspace (-pi ,pi ,40) ; % <enter > Creación del vector X1

35 Z1 = cos(X1); % <enter > Creación del vector Z1

36 stem3 (Z1 , ' Marker ' , ' s ' , ' MarkerEdgeColor ' , ' m ' , ' MarkerFaceColor ' , ' g ' ) % <enter > Uso de la función stem3 tridimensional

37 grid on % <enter > Inserción de rejillas en el gráfico

38 ax = gca; % <enter >

39 ax.GridAlpha = 0.40; % <enter > Oscurecimiento de grillas

Figura 1.17. Gráficas obtenidas mediante el uso de las funciones stem y stem3

1.7.13 Función plot3

Para la creación de trazos de líneas en tres dimensiones se utiliza la función plot3, cuyas coordenadas de ingreso pueden ser vectores o matrices. Un ejemplo demostrativo se presenta a continuación y tiene por resultante la figura 1.18:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

3 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

4 z1 = 0: pi /50:10*pi; % <enter > Creación del vector z1

5 x1 = sin(z1); % <enter > Creación del vector x1

6 y1 = cos(z1); % <enter > Creación del vector y1

7 plot3 (x1 ,y1 ,z1 , ' b ' ) % <enter > Uso de la función plot3

8 grid on % <enter > Inserción de rejillas en el gráfico

9 ax = gca; % <enter >

10 ax.GridAlpha = 0.40; % <enter > Oscurecimiento de grillas

Figura 1.18. Gráficos obtenidos mediante el uso de la función plot3

1.7.14 Funciones comet y comet3

La función comet sirve para crear gráficos animados a partir de un círculo que describe la trayectoria de los datos considerados. Las funciones comet y comet3 se aplican para gráficos en dos y tres dimensiones, respectivamente. A continuación se presenta un ejemplo para elaborar un gráfico bidimensional y para otro tridimensional, mediante el uso de dichas funciones:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 figure (1) % <enter > Creación de figura

3 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

4 xx = 0:0.01:5*pi; % <enter > Creación del vector xx

5 yy = sin (2*xx); % <enter > Creación del vector yy

6 comet (xx ,yy) % <enter > Uso de la función comet bidimensional

7 grid on % <enter > Inserción de rejillas en el gráfico

8 ax = gca; % <enter >

9 ax.GridAlpha = 0.40; % <enter > Oscurecimiento de grillas

10 figure (2) % <enter > Creación de figura

11 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

12 z1 = 0: pi /50:10* pi; % <enter > Creación del vector z1

13 x1= sin(z1); % <enter > Creación del vector x1

14 y1= cos(z1); % <enter > Creación del vector y1

15 comet3 (x1 ,y1 ,z1) % <enter > Uso de la función comet3 tridimensional

16 grid on % <enter > Inserción de rejillas en el gráfico

17 set(gca , ' GridAlpha ' ,0.40) % <enter > Oscurecimiento de grillas


Figura 1.19. Gráficos obtenidos gracias al uso de las funciones comet y comet3

1.8 PROGRAMACIÓN EN MATLAB

Un programa se define como una secuencia de instrucciones almacenadas en un script que mayormente contienen una serie de cálculos precedentes, pero en otras ocasiones no. Matlab cuenta, como en todo lenguaje de programación, con operadores, estructuras, funciones, entre otros elementos adecuados para definir la correcta secuencia de un programa.

1.8.1 Operadores relacionales

Los operadores relacionales efectúan comparaciones entre matrices de igual tamaño y sirven como operadores aritméticos en expresiones matemáticas. Por un lado, si la comparación entre matrices es falsa el resultado del cálculo será 0, por otro lado, si la comparación entre matrices es verdadera el resultado del cálculo será 1 o cualquier otro número distinto a cero. Los operadores relacionales se muestran en la tabla 1.3:

Tabla 1.3 Operadores relacionales


Operador relacionalDescripción
<Menor que
>Mayor que
<=Menor o igual que
>=Mayor o igual que
==Igual a
~=Distinto de

El siguiente ejemplo presenta aplicaciones con los operadores relacionales:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 5 > 8 % <enter > Comparaciones

3 A = 5 < 10 % <enter > Comparaciones

4 y = (6 < 10) + (7 > 8) + (5*5 = = 60/4) % <enter > Comparaciones

5 b = [15 6 9 4 11 7 14]; c = [8 20 9 2 19 7 10]; % <enter > vectores

6 d = c > = b % <enter > Comparaciones y asignación a variable

7 b = = c % <enter > Comparaciones

8 b ~ = c % <enter > Comparaciones

9 f = b-c > 0 % <enter > Comparaciones y asignación a variable

10 A = [2 9 4; -3 5 2; 6 7 -1] % <enter > Matriz

11 B = A < = 2 % <enter > Comparaciones y asignación a variable

12 r = [8 12 9 4 23 19 10] % <enter > vector

13 s = r < = 10 % <enter > Comparaciones y asignación a variable

14 t = r(s) % <enter > Valores de resultados verdaderos (1)

15 w = r(r < = 10) % <enter > Comparaciones y asignación a variable

16 3 + 4 < 16/2 % <enter > Comparaciones y operaciones extras

17 3 + (4 < 16) /2 % <enter > Comparaciones y operaciones extras

1.8.2 Operadores lógicos

Los operadores lógicos tienen por función enlazar condicionales. Los principales operadores lógicos se muestran en la tabla 1.4:

Tabla 1.4 Operadores lógicos


Operador lógicoNombreDescripción
&ANDA y B
|ORA o B
~NOTNo A

1.8.3 Orden de precedencia

Existe un orden predeterminado en la ejecución de los cálculos, en los cuales intervienen operadores relacionales, lógicos y aritméticos. El orden de precedencia un tanto más genérico, que lo visto en la tabla 1.1, se presenta en la tabla 1.5:

Tabla 1.5 Orden de precedencia más a detalle


Orden de precedenciaOperación
1Paréntesis
2Exponenciación
3Operación lógica NO (~)
4Multiplicación, división
5Suma y resta
6Operadores relacionales (>, <, >=, <=, ==, ~=)
7Operación lógica Y (&)
8Operación lógica O (|)

A continuación se presenta un ejemplo que muestra el orden de precedencia:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 x = –2; % <enter > Asignación de valor a variable

3 y = 5; % <enter > Asignación de valor a variable

4 – 5 < x < –1 % <enter > Comparación y operaciones lógicas

5 – 5 < x & x < 1 % <enter > Comparación y operaciones lógicas

6 ~(y < 7) % <enter > Comparación y operaciones lógicas

7 ~y < 7 % <enter > Comparación y operaciones lógicas

8 ~((y > = 8) |(x < –1)) % <enter > Comparación y operaciones lógicas

9 ~(y > = 8) |(x < –1) % <enter > Comparación y operaciones lógicas

1.8.4 Ejemplo. Análisis de datos

Se presenta un ejemplo de cierta cantidad de probetas sometidas al ensayo de rotura, de las cuales se ha obtenido su resistencia (f'c) ’ después de los 28 días de curado:


Figura 1.20. Prueba de rotura de probeta

Se requiere emplear operadores relacionales y lógicos para determinar el número de probetas que alcanzaron una resistencia superior a 33 MPa y el número de probetas que alcanzaron una resistencia entre 30 y 40 MPa.

Tabla 1.6

Resistencias a la comprensión de probetas de concreto a los 28 días


Solución. El uso de operadores lógicos y relacionales utilizados en el desarrollo de este ejemplo se muestran en la siguiente secuencia:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 D = [30.7 32.5 34.7 37.5 32.5 40.3 33.7 30.4 26.9 31 40 44.8 34.6 33.9 38.1 33.2 36.7]

3 Dencima33 =D > = 33

4 NpruebasDencima33 = sum( Dencima33 )

5 Dentre30y40 = (D > = 30) & (D < = 40)

6 NpruebasTentre30y40 = sum( Dentre30y40 )

1.8.5 Estructuras de programación y sentencias de control

Las estructuras de programación y sentencias de control consideradas en este ítem constituyen la base fundamental de la correcta operatividad de los programas desarrollados pertenecientes a los capítulos que involucran el análisis de sistemas de uno y varios grados de libertad, por lo que se le recomienda al lector poner especial atención a estos tipos de estructuras y sentencias. A continuación se describe cada una de las estructuras de programación y sentencias de control con su respectivo ejemplo explícito, con la finalidad de garantizar una adecuada comprensión del tema.

1.8.5.1 Estructura ifelseifelseend

En una primera etapa su mecanismo consiste en evaluar la expresión condicional de if, y si la expresión condicional es verdadera se ejecuta un grupo de instrucciones; si dicha expresión es falsa se ejecutan las instrucciones de elseif y else. También es posible añadir más expresiones condicionales y sus respectivas instrucciones mediante elseif dentro del bloque if.

La sintaxis más básica de la estructura ifelseifelseend se ilustra en la figura 1.21:

Figura 1.21. Estructura de programación if- elseif - else - end

Ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 x =10; % Asignación de valor numérico a la variable x

3 minVal =2; % Asignación de valor numérico a la variable minVal

4 maxVal =6; % Asignación de valor numérico a la variable maxVal

5 % Inicio de la estructura de programación if - elseif - else - end

6 if (x > = minVal ) & (x < = maxVal )

7 disp ( ' El valor está dentro del rango especificado. ' )

8 elseif (x > maxVal)

9 disp (' El valor excede el valor máximo.')

10 else

11 disp (' El valor está debajo del valor mínimo.')

12 end

13 % Fin de la estructura de programación if - elseif - else - end

1.8.5.2 Estructura forend

Su mecanismo consiste en ejecutar un grupo de instrucciones el número de veces que se especifique. También es posible ejecutar un grupo de instrucciones ubicadas en el índice de la estructura for – end.

La sintaxis más básica de la estructura forend se ilustra en la figura 1.22:

Figura 1.22. Estructura de programación for-end

Ejemplos:

1 clc, clear all , close all % <enter > Funciones de limpieza

2 N = input ( ' Ingresar entero positivo < 15: ' ); % Asignación de valor numérico a la variable N

3 Matr = zeros (N,N); % Creación de una matriz de ceros de N x N

4 % Inicio de la estructura de programación for - end

5 for r = 1:N

6 Matr (r ,1:N) = ((r -1)*N+1):r*N;

7 end

8 % Fin de la estructura de programación for - end

9 disp ( Matr ) % Uso de la función disp para mostrar resultados

1 clc , clear all , close all % <enter > Funciones de limpieza

2 s = 10; % Asignación de valor numérico a la variable s

3 H = zeros (s); % Creación de una matriz de ceros de orden s x s

4 % Inicio de la estructura de programación for - end

5 for c = 1:s

6 for r = 1:s

7 H(r,c) = 1/( r+c -1);

8 end

9 end

10 % Fin de la estructura de programación for - end

1 clc , clear all , close all % <enter > Funciones de limpieza

2 E = [2 3]; % Vector E

3 I = [3 4]; % Vector I

4 K = [1 2]; % Vector K

5 P = [7 8]; % Vector P

6 M = [2 9]; % Vector M

7 X = [7 8]; % Vector X

8 Y = [2 9]; % Vector Y

9 % Inicio de la estructura de programación for - end

10 for i = 1:2

11 H(:,:,i) = [E(i)*I(i)*K(i) E(i)-I(i)*P(i); E(i)^2 I(i)*M(i)^2; X(i)^2+Y(i)^2 X(i)^2-Y(i)^2];

12 end

13 % Fin de la estructura de programación for - end

1.8.5.3 Estructura switchcaseotherwiseend

Su mecanismo consiste en evaluar la primera expresión condicional en switch, para luego evaluar la segunda expresión condicional en case y ejecutar un grupo de instrucciones en el caso de que se cumpla la expresión condicional en case; habiendo la posibilidad de ejecutar el grupo de instrucciones de otherwise en el caso de que no se cumpla ninguna de las expresiones condicionales en los case (casos).

La sintaxis de la estructura switch – case – otherwise – end se ilustra en la figura 1.23:

Figura 1.23. Estructura de programación switch-case-otherwise-end

Ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 n = input ( ' Ingresar un número : ' ); % Ingreso de un valor numérico

3 % Inicio de la estructura de programación switch - case - otherwise - end

4 switch n

5 case 1

6 disp ( ' positivo ' )

7 otherwise

8 disp ( ' otro valor ' )

9 end

10 % Fin de la estructura de programación switch - case - otherwise - end

1.8.5.4 Estructura whileend

Prácticamente genera un bucle, el cual repetirá el desarrollo de un grupo de instrucciones mientras la expresión condicional en while continúe siendo verdadera.

La sintaxis más básica de la estructura while – end se ilustra en la figura 1.24:

Figura 1.24. Estructura de programación while-end

Ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 n = 10; % Asignación de valor numérico a n

3 f = n; % Asignación de valor numérico a f

4 % Inicio de la estructura de programación while - end

5 while n >1

6 n = n -1;

7 F = f*n;

8 end

9 % Fin de la estructura de programación while – end

10 disp ([ ' n! = ' num2str (f)]) % Uso de la función de salida disp

1.8.5.5 Sentencia break

La sentencia de control break consiste en finalizar la ejecución de un proceso iterativo dentro de una estructura de programación, como while-end.

La sintaxis de la sentencia de control break se ilustra en la figura 1.25:

Figura 1.25. Sentencia de control break

Ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 limit = 0.8; % Asignación de valor a la variable limit

3 s = 0; % Asignación de valor a la variable s

4 % Inicio de la estructura de programación while - end

5 while 1

6 tmp= rand;

7 % Inicio de la estructura de programación if - end

8 if tmp > limit

9 break

10 end

11 % Fin de la estructura de programación if - end

12 S = s+tmp;

13 end

14 % Fin de la estructura de programación while - end

1.8.5.6 Sentencia continue

La sentencia de control continue consiste en continuar la ejecución de un proceso iterativo o condicional dentro de una estructura de programación, como for-end.

La sintaxis de la sentencia de control continue se ilustra en la figura 1.26:

Figura 1.26. Sentencia de control continue

Ejemplo:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 % Inicio de la estructura de programación for - end

3 for n = 1:50

4 % Inicio de la estructura de programación if - end

5 if mod(n ,7)

6 continue

7 end

8 % Fin de la estructura de programación if - end

9 calc1 = num2str (n);

10 disp ([ ' Divisible por 7: ' calc1 ])

11 end

12 % Fin de la estructura de programación for - end

1.9 POLINOMIOS

Los polinomios son expresiones matemáticas aplicables a muchos campos de la ingeniería. La representación de un polinomio en Matlab se hace mediante un vector fila, en el cual se especifica los coeficientes del polinomio completo; es decir, también los coeficientes cero de los monomios no existentes.

1.9.1 Operadores relacionales

La expresión 1.32 muestra la representación de un polinomio completo; cuyos coeficientes an,an–-,…a1,a0 son números reales y n es un número positivo que representa el orden del polinomio.


1.9.2 Ejemplo. Cálculo de un polinomio

En este ejemplo se pretende calcular el valor de f(10) del polinomio de la expresión 1.33 y obtener la gráfica del polinomio en el dominio –1.5≤x≤8.5.


Solución:

1 clc , clear all , close all % <enter > Funciones de limpieza

2 set(gcf , ' Color ' , ' w ' ); % <enter > Establece color blanco en el fondo

3 set(gca , ' Color ' , ' w ' ); % <enter > Establece color blanco en el gráfico

4 f = [1 1 –20.60 30.40 –12.02 –76.85 36.44] % <enter > Representación del polinomio

5 res = polyval (f ,10) % <enter > Uso de la función polyval f (10)

6 x = –1.5:0.05:8.5; % <enter > Creación del vector x

7 y = polyval (f,x) % <enter > Uso de la función polyval f(x)

8 plot (x,y, ' Color ' ,rand (3 ,1) , ' LineWidth ' ,2) % <enter > Trazo x vs y

9 xlabel ( ' Eje X ' , ' FontSize ' ,20, ' FontName ' , ' Century ' ) % <enter > Rotulo X

10 ylabel ( ' Eje Y ' , ' FontSize ' ,20, ' FontName ' , ' Century ' ) % <enter > Rotulo Y

11 grid on % <enter > Creación de cuadrículas

12 set(gca , ' GridAlpha ' ,0.40); % <enter > Oscurecimiento de cuadrículas

13 grid minor % <enter > Muestra cuadrículas menores


Figura 1.27. Representación gráfica del polinomio de ejemplo anterior

Türler ve etiketler

Yaş sınırı:
0+
Hacim:
599 s. 649 illüstrasyon
ISBN:
9789972455339
Telif hakkı:
Bookwire
İndirme biçimi:
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre
Metin
Ortalama puan 0, 0 oylamaya göre