Title: First Basic Scilab Tutorial. How to generate 2D curves on Scilab.
Summary: In this tutorial i'll try to explain you how to use the Scilab's functions: plot and subplot and which are their features to generate 2D mathematical functions on scilab in order to apply these knowlegdes in future tutorials even more interesting and advanced that i want to make for you all.
Language: Spanish
Cómo generar funciones matemáticas 2D en Scilab utilizando las funciones plot y subplot.
Te mostraré cuál es la sintaxis de cada función y las diferentes formas de utilizarlas. También veremos un ejemplo detallado de cuáles son sus efectos y cómo utilizarlas para graficar curvas en dos dimensiones.
¿Qué necesitas?
Necesitarás haber descargado con anterioridad la versión más reciente: Scilab 6.0.0, la cual puedes obtener gratis y de forma segura desde este enlace.
Es bueno que ya hayas tenido algún tipo de experiencia con otro(s) lenguaje(s) de programación. No necesariamente debes haber programado en Scilab.
Dificultad de este tutorial:
Básico
¡Comencemos!
Función plot
La función plot se utiliza para generar gráficos de curvas en dos dimensiones, es decir, en el plano. Es similar a la función del mismo nombre en Matlab, no obstante, existen diferencias en cuanto a la sintaxis que mejoran su implementación.
Para poder utilizar la función plot, veamos primero su sintaxis:
plot(x,y,<LineSpec>,<GlobalProperty>)
Los argumentos x e y pueden ser vectores o matrices, para los fines de este tutorial, consideraremos que son vectores, no obstante, recuerda que con el comando
help <comando o palabra reservada>
puedes encontrar todas las especificaciones de cualquier función en Scilab o equivalente de Matlab.
Al utilizar plot(x, y) estaremos 'graficando' y versus x. La graficación se realiza punto a punto por lo que es vital que x e y tengan la misma cantidad de elementos.El argumento LineSpec se refiere a los diferentes estilos o adornos que podemos agregarle a nuestras curvas, como por ejemplo, color, estilo de trazo, marcadores, etc. Todas las posibilidades están disponibles en la ayuda de Scilab.
El argumento GlobalProperty es similar al anterior pero tiene prioridad sobre él.
Ejemplo función plot
Vamos a realizar tres gráficas de funciones dependientes del 'tiempo' en una misma figura, utilizando la función plot. A cada curva la personalizaremos usando LineSpec.
Código Scilab
t1=0:0.1:20; //Elementos desde el 0 a 20 en pasos de 0.1
f1=exp(-0.1.*(t1-6)); //función 1
f2=sin(t1); //función 2
f3=2*cos(t1); //función 3
plot(t1,f1,'m', t1,f2,'c-o',t1,f3,'k--') //Graficar
1- Primero necesitamos la base de tiempo, para lo que declaramos un vector que va del 0 al 20 en pasos de 0.1, es decir, 0, 0.1, 0.2, 0.3,...,19.9, 20. Por lo tanto el vector t1 contiene 201 elementos. Algo muy fácil de verificar, también, con la función size( )
de Scilab.
2- Luego declaramos nuestras tres funciones, teniendo en cuenta que para multiplicar vectores elemento a elemento se debe usar el operador .*
3- Utilizamos la función plot para poder generar al mismo tiempo las tres funciones. Primero se coloca la base de tiempo (la variable independiente) y luego el nombre de la función o incluso se puede colocar la función directamente. Inmediatamente después de eso es posible colocar los argumentos opcional para personalizar las curvas. En este ejemplo solo hemos colocado color y estilo de trazo. Al utilizar el string 'm'
se refiere al color Magenta, al usar 'c-o'
estamos indicando que la curva será color cyan y su trazo serán guiones seguidos por círculos, el orden de colocación de los caracteres no genera alguna ambigüedad. Si no se coloca ningún argumento opcional, se generará una curva azul con trazo uniforme.
4- Ejecuta el programa en tu computadora.
Con el comando help
puedes documentarte sobre las multiples opciones de LineSpec.
Resultados
Función subplot
Si deseas generar más de una figura en la misma ventana, subplot ofrece una sintaxis que permite colocar cuantos gráficos como desees.
Sintaxis:
subplot(m,n,p)
o bien
subplot(mnp)
Subplot genera una ventana con *m *por *n *elementos donde el tercer argumento representa a la p-ésima posición donde se quiere colocar una figura.
Ejemplo función subplot
Realizaremos cuatro gráficas por separado y las ubicaremos en la misma ventana.
Código Scilab
t1=0:0.1:20; // Escala de tiempo t1
t2=0:1:20;// Escala de tiempo t2
f1=sin(t1) //función 1
f2=sin(t2); //función 2
f3=exp(-t1/5).*cos(2*%pi*t1); //función 3
subplot(2,2,1) //Ventana de 2x2, posición 1
plot(t1,f1); //Sin argumentos opcionales
subplot(2,2,2)//Posición 2
plot(t2,f2)
subplot(2,2,3)//Posición 3
plot(t1,f3,'m-')
subplot(2,2,4)//Posición 4
plot(t1, tanh(t1/5),'-.g') // Colocamos directamente la función tanh()
1- Declaramos los vectores de tiempo como en el ejemplo anterior. Esta vez declaramos dos vectores diferentes para ilustrar lo que sucede al usar escalas de tiempo con diferentes frecuencias de muestreo.
2- Declaramos las funciones que queremos graficar. Para utilizar la constante 'Pi' se usa el comando %pi
.
3- Para generar las figuras, primero se debe llamar a la función subplot y definir cuáles serán sus dimensiones, así como el número de la posición donde queremos que aparezca la primera figura. Es importante que recuerdes que primero debes llamar a subplot y luego a plot.
4- Ejecuta el programa.
Resultados
Si te ha ayudado o has aprendido con este tutorial, no olvides darle a upvote y dejar tus comentarios.
Posted on Utopian.io - Rewarding Open Source Contributors
This is the best post on Steemit. I gave you a vote now, ya heard?
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hey @miguelangel2801 I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Thank you!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit