Comparacion de Comandos Entre Scilab y Matlab PDF

Title Comparacion de Comandos Entre Scilab y Matlab
Author Jorge Conde
Course Sistemas
Institution Escuela Militar de Ingeniería
Pages 12
File Size 878 KB
File Type PDF
Total Downloads 49
Total Views 255

Summary

Comparacion...


Description

NOMBRES: JORGE FABRICIO CONDE GUTIERREZ DOCENTE: ING.JAIME PEÑA MONTAÑO MATERIA: INGENIERIA DE CONTROL TEMA: COMPARACION DE MATLAB Y SCILAB SEMESTRE: 7° SEMESTRE CARRERA: ING.TELECOMUNICACIONES GESTION: II/2020

COMPARACIÓN DE COMANDOS ENTRE SCILAB Y MATLAB INSTRUCCIÓN SCILAB

INSTRUCCIÓN MATLAB

Los scripts: Por convenio, los scripts de Scilab tienen el sufijo .sce . Para ejecutar un script se usa la orden -->exec(nombre_fichero) // repite todas las instrucciones en pantalla -->exec(nombre_fichero, -1) // para que no repita las instrucciones

Los scripts: Se teclea el nombre del fichero en la línea de comandos de Matlab o se incluye dicho nombre en otro fichero *.m.

Las funciones Scilab responden al siguiente formato de escritura: function [argumentos de salida] = nombre(argumentos de entrada) // comentarios // ... instrucciones (normalmente terminadas por ; para evitar eco en pantalla) ... endfunction 3. OBJETOS Y SINTAXIS BÁSICOS

Para las funciones se escribe primero la palabra function, seguida por los valores de salida (entre corchetes [ ] y separados por comas si hay más de uno), el signo igual (=) y el nombre de la función seguido de los argumentos (entre paréntesis ( ) y separados por comas): function [a,b,c] = nombre_función (x,y,z)

Algunas constantes numéricas están predefinidas. Sus nombres comienzan por el símbolo %. En particular %pi es el número π, %e es el número e, %i es la unidad imaginaria, %eps es la precisión de la máquina, %inf es el infinitomáquina Lo que se escribe en cualquier línea detrás de // es considerado como comentario 3.1 Constantes y operadores aritméticos Reales: 8.01 -5.2 .056 1.4e+5 0.23E-2 -.567d-21 8.003D-12 Complejos: 1+2*%i Booleanos: %t %f Caracteres (entre apóstrofes o comillas): ’esto es una cadena de caracteres’ “string“ Operadores aritméticos: + - * / ^ Operadores de comparación: == ~= (ó ) < > = Operadores lógicos: & | ~

Las variables son sensibles a las mayúsculas, deben comenzar siempre con una letra, no pueden contener espacios en blanco y pueden nombrarse hasta con 63 caracteres (en versiones anteriores no permitía tantos caracteres). Si se nombra una variable con más de 63 caracteres truncará el nombre de dicha variable.

La principal diferencia es el signo %previo al nombre de la variable 3.2 Funciones elementales

Trigonométricas

3.4 Variables

Algunas funciones elementales:

En Scilab las variables no son nunca declaradas: su tipo y su tamaño cambian de forma dinámica de acuerdo con los valores que le son asignados.

Matlab almacena el último resultado obtenido en la variable ans. Tecleando clear podemos borrar todas las variables del espacio de trabajo, pero no borra lo de las demás ventanas, es decir, no desaparece lo que hay escrito en la ventana de comandos. Tecleando clc borramos lo que hay en la ventana de comandos pero no borra las variables de la memoria del espacio de trabajo.

Son similares en las dos aplicaciones

4. MATRICES Como ya se ha dicho, las matrices bidimensionales de números reales o complejos son los objetos básicos con los que trabaja Scilab. Los vectores y escalares son casos particulares de matrices.

MATRICES Para crear un vector introducimos los valores deseados separados por espacios (o comas) todo ello entre corchetes []. Si lo que queremos es crear una matriz lo hacemos de forma análoga pero separando las filas con puntos y comas (;). A = [1 2 3; 4 5 6] % es una matriz con 2 filas y 3 columnas

a=[1,2,3,4;5,6,7,8;9,10,11,12] // matriz 3x4 Otras órdenes para crear matrices son: -->v1=a:h:b // crea un vector fila de números desde a hasta un número c b, con incrementos de h -->v2=a:b // como el anterior, con paso h=1 -->v3=v2’ // matriz traspuesta (conjugada si es compleja) -->v4=v2.’ // matriz traspuesta sin conjugar

Algunas funciones para generar matrices zeros (n) crea una matriz cuadrada n x n de ceros. zeros (m,n) crea una matriz m x n de ceros. ones (n) crea una matriz cuadrada n x n de unos. ones (m,n) crea una matriz m x n de unos. rand (n) crea una matriz cuadrada n x n de números aleatorios con distribución uniforme (0,1). rand (m,n) crea una matriz m x n de números aleatorios con distribución uniforme (0,1). randn (n) crea una matriz cuadrada n x n de números aleatorios con distribución normal (0,1). randn (m,n) crea una matriz m x n de números aleatorios con distribución normal (0,1). eye (n) crea una matriz cuadrada n x n de unos en la diagonal y ceros el resto. eye (m,n) crea una matriz m x n de unos en la diagonal y ceros el resto. magic (n) crea una matriz cuadrada n x n de enteros de modo que sumen lo mismo las filas y las

Algunas funciones para generar matrices:

Las operaciones con matrices son similares salvo un par de diferencias relacionadas con las transpuestas. 4.2 Manipulación de matrices: operadores y funciones Los operadores aritméticos representan las correspondientes operaciones matriciales siempre que tengan sentido. Cuando van precedidos de un punto deben entenderse en el sentido de que la

columnas. hilb (n) crea una matriz cuadrada n x n de Hilbert, es decir, los elementos (i,j) responden a la expresión (1/(i+j-1)). invhilb (n) crea una matriz cuadrada n x n que es la inversa de la matriz de Hilbert.

operación se efectúa "elemento a elemento".

4.3 Manipulación de los elementos de una matriz. Extracción, inserción y eliminación

Esta operación se realiza de manera similar en los dos lenguajes

Para acceder a los elementos de una matriz necesitamos dar dos valores, el primero indica la fila y el segundo la columna. >> A = [1 2 3; 4 5 6]; >> A (2,1) % elemento de la matriz que está en la fila 2 y en la columna 1 ans = 4 Si queremos que escriba toda una fila usaremos los dos puntos para indicar que queremos todos los elementos. >> A (2,:) % escribe la segunda fila de la matriz ans = 456 Matlab tiene además otra forma de identificar cada elemento de una matriz, de modo que podemosacceder a un elemento de una matriz indicando sólo un valor y no dos, pero debemos saber que el orden elegido por Matlab es por columnas así los elementos de la matriz A serían denominados: A(1) A(3) A(5) A(2) A(4) A(6)

6. POLINOMIOS -->p=poly(a,"x") siendo a una matriz cuadrada nxn es el polinomio caracterísitco de la matriz a, con variable simbólica x -->a=companion(p) donde p es un polinomio es la matriz "compañera" de p, también, llamada de Frobenius, es decir la matriz cuyo polinomio característico es p. -->p=poly(v,"x","roots") siendo v un vector numérico es el polinomio, con variable simbólica x, cuyas raíces son las componentes de v -->p=poly(v,"s","coeff") siendo v un vector numérico es el polinomio, con variable simbólica s, cuyos coeficientes son las componentes del vector v (en orden de menor a mayor grado) -->t=poly(0,"t") -->p=1+t-4*t^2+%pi*t^5 define t como un símbolo que permite definir otros polinomios con variable t mediante su expresión algebraica. -->roots(p) calcula las raíces del polinomio p

Un polinomio se representa por un vector fila con sus coeficientes en orden descendiente, no debemos olvidar colocar los términos con coeficiente nulo. Así por ejemplo si queremos indicar el polinomio 5x4 + 2x2 – x + 7 escribiríamos [5 0 2 -1 7]. Para encontrar las raíces de un polinomio p usaremos la función roots (p) Si conocemos las raíces de un polinomio es posible construir el polinomio asociado mediante la función poly (r). Matlab trabaja con los polinomios como vectores fila y con las raíces como vectores columnas. Otras características:

7. RESOLUCIÓN DE ECUACIONES NO LINEALES Scilab dispone de la función fsolve, cuya utilización más sencilla es: -->x=fsolve(x0,fun) -->[x,val]=fsolve(x0,fun)

x = fsolve(fun,x0) comienza en x0 y trata de resolver las ecuaciones fun(x) = 0, una matriz de ceros. x = fsolve(fun,x0,options) resuelve las ecuaciones con las opciones de optimización especificadas en options. Utilice optimoptions para establecer estas opciones.

Los dos lenguajes cuentan con la misma función fsolve x = fsolve(problem) resuelve problem, donde problem es una estructura descrita en Argumentos de entrada. Cree la estructura problem exportando un problema desde la aplicación de optimización, como se describe en Exportar su trabajo. [x,fval] = fsolve(___), para cualquier sintaxis, devuelve el valor de la función objetiva fun en la solución x. [x,fval,exitflag,output] = fsolve(___) Además, devuelve un valor exitflag que describe la condición de salida de fsolvey una estructura output con información sobre el proceso de optimización. [x,fval,exitflag,output,jacobian] = fsolve(___) Devuelve el jacobiano de fun en la solución x.

8. CÁLCULO DE INTEGRALES DEFINIDAS Para calcular la integral definida de una función de una variable Scilab dispone de la función: -->intg(a,b,f) donde f debe ser una función de la forma y=f(t) y a y b son los límites de integración Para integrales dobles: -->int2d(X,Y,f) Para integrales triples: -->int3d(X,Y,Z,f)

q = integral(fun,xmin,xmax) integra de forma numérica la función fun de xmin a xmax mediante la cuadratura adaptativa global y las tolerancias de error predeterminadas. q = integral(fun,xmin,xmax,Name,Value) especifica opciones adicionales con uno o más argumentos de par Name,Value. Por ejemplo, especifique 'WayPoints' seguido de un vector de números reales o complejos para indicar los puntos específicos que debe utilizar el integrador. Para integrales dobles: q = integral2(fun,xmin,xmax,ymin,ymax) q = integral2(fun,xmin,xmax,ymin,ymax,Name,Value) Para integrales triples: q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax) q = integral3(fun,xmin,xmax,ymin,ymax,zmin,zmax,Name,Value)

9. RESOLUCIÓN DE ECUACIONES DIFERENCIALES Para resolver problemas de valor inicial relativos a (sistemas de) ecuaciones diferenciales ordinarias Scilab dispone de la funcion ode . 10. REPRESENTACIONES GRÁFICAS CON SCILAB 9.1 Curvas planas El comando básico de Scilab para dibujar curvas planas es plot2d. -->polarplot(theta,rho) // con esta función se grafican en coordenadas polares -->plot2d2(x,y) es similar a plot2d, pero dibuja una función constante a trozos (escalonada) -->plot2d3(x,y) es similar a plot2d, pero dibuja una función utilizando líneas verticales -->plot2d4(x,y) es similar a plot2d, pero dibuja una curva utilizando puntas de flecha

10. REPRESENTACIONES GRÁFICAS CON MATLAB La orden plot genera una gráfica. Los argumentos deben ser vectores de la misma longitud. Ejemplo: >> x = [-2 -1 0 1 2 3]; y = [4 1 0 1 4 9]; >> plot (x,y) Una ventana gráfica se puede dividir en m particiones horizontales y en n verticales, de modo que cada subventana tiene sus propios ejes, y para hacer esto vamos a usar subplot (m,n,p) donde p indica la subdivisión que se convierte en activa. >> x = 1:360; y1 = sind (x); y2 = cosd (x); y3 = exp (x); y4 = exp (-x); >> subplot (2,2,1), plot (x,y1), title ('seno') >> subplot (2,2,2), plot (x,y2), title ('coseno') >> subplot (2,2,3), plot (x,y3), title ('exponencial')

(por ejemplo para señalar la dirección de una trayectoria)

>> subplot (2,2,4), plot (x,y4), title ('-exponencial')

-->fplot2d(x,f) donde x es un vector y f es el nombre de una función Scilab, dibuja la curva que pasa por los puntos (xi,f(xi)). La función debe responder a la forma [y]=f(x). 9.2 Curvas en el espacio -->param3d(x,y,z) donde x , y , z son tres vectores de la misma dimensión, dibuja la curva que pasa por los puntos (xi,yi,zi)

También podemos crear gráficas en 3 dimensiones, se trata de extender la orden de plot (2-D) a plot3 (3-D) donde el formato será igual pero los datos estarán en tripletes:

-->param3d1(x,y,z) es similar a param3d pero permite dibujar varias curvas. Aquí, x , y , z son tres matrices de la misma dimensión cuyas columnas determinan las distintas curvas. -->param3d1(x,y,list(z,colors)) donde colors en un vector de números enteros, dibuja la i-ésima curva del color definido por el i-ésimo elemento de colors 9.3 Superficies plot3d, fplot3d, plot3d1, fplot3d1 -->plot3d(x,y,z) dibuja la superficie definida por la función z=f(x,y). x : vector de dimensión n y : vector de dimensión m z : matriz de dimensión nxm x e y contienen las coordenadas de los puntos de la malla rectangular sobre la que se dibuja la función z contiene los valores de la función en los nodos: z(i,j)=f( x(i), y(j)) Para construir la matriz z a partir de los vectores x e y puede ser util la función -->[xm,ym]=ndgrid(x,y) que construye dos matrices xm e ym de dimensión nxm tales que el nodo (i,j) de la malla tiene las coordenadas (xm(i,j),ym(i,j)). Con ayuda de estas matrices los valores de la función f(x,y) pueden calcularse mediante: -->z=f(xm,ym)

Matlab contiene un conjunto de funciones gráficas 3D para crear superficies, contornos, y variaciones, así como especializaciones de esas formas básicas • Una superficie se define por la expresión Matlab 11 • Una superficie se define por la expresión z = f x, y ( ) donde x e y son las coordenadas en el plano-xy y z es la altura resultante surf – dibuja una superficie compuesta de parches de colores que dependen de la magnitud z mesh – dibuja parches de superficies blancas que se definen por su contorno. Los colores de las líneas de los parches se determinan por la magnitud de z. Superficie de malla: La orden [X,Y]=meshgrid(x,y) crea una matriz X cuyas filas son copias del vector x y una matriz Y cuyas columnas son copias del vector y. Para generar la gráfica de malla se usa la orden mesh(X,Y,Z), mesh acepta un argumento opcional para controlar los colores. También puede tomar una matriz simple como argumento: mesh(Z).

grayplot, Sgrayplot, fgrayplot, Sfgrayplot -->grayplot(x,y,z) // con valores de z -->fgrayplot(x,y,f) // con nombre de función -->Sgrayplot(x,y,z) // suavizado, con valores -->Sfgrayplot(x,y,f) // suavizado, con función representación plana de una función z=f(x,y) usando colores. x : vector de dimensión n y : vector de dimensión m z : matriz de dimensión nxm : z(i,j)=f(x(i),y(j)) f : función externa del tipo z=f(x,y) Sgrayplot y Sfgrayplot hacen lo mismo que las anteriores pero con "suavizado", es decir, el color en cada faceta se interpola, en lugar de ser constante contour, contour2d, contourf Este grupo de funciones sirve para dibujar curvas de nivel de una superficie -->contour(x,y,z,nz) -->contour2d(x,y,z,nz) -->contourf(x,y,z,nz) x : vector de dimensión n y : vector de dimensión m z : matriz de dimensión nxm : z(i,j)=f(x(i),y(j)) nz : si es un numero entero, se dibujan nz curvas de nivel regularmente espaciadas; si nz es un vector numérico se dibujan las curvas de nivel correspondientes a los valores contenidos en nz champ, champ1 Estas dos funciones sirven para representar un campo de vectores en el plano XY -->champ(x,y,fx,fy) // intensidad = longitud flechas -->champ1(x,y,fx,fy) // intensidad = color flechas representación del campo de vectores x : vector de dimensión n y : vector de dimensión m fx : matriz de dimensión nxm : primera comp. campo fy : matriz de dimensión nxm : segunda comp. campo

Las gráficas de contorno en 2-D y 3-D se generan usando respectivamente las funciones contour y contour3. >> contour (X,Y,Z) % dibuja las líneas de contorno La función pcolor transforma la altura a un conjunto de colores. >> colorbar % añade la barra de color a la figura actual...


Similar Free PDFs