Entradas

Mostrando entradas de julio, 2024

Creando Pseudo-Objetos con tlist

En primer lugar voy a crear un  Pseudo-Objeto Escalar, utilizando el comando tlist (lo voy a llamar TEscalar):  nombrevariable = tlist(["TEscalar", "Valor", "Unid", "Alias"]) Los strings que componen el tlist, intentan ser descriptivos: El primer string "TEscalar" es el nombre que le he dado a este objeto.  En "Valor" se archivará el valor numérico del escalar En "Unid" un string con sus unidades; o un un array de strings de 2x1; el primero de ellos será el prefijo (basado en el sistema internacional) y el segundo string la unidad del escalar En "Alias" se puede almacenar un string con un nombre descriptivo del escalar  Para hacerlo más robusto he preparado una función (como si fuera un constructor de clase) para crear estos TEscalares, el código es: function this = escalar_new(varargin) // v1.2 Quitar UdPref de la entrada de datos // Crea un pseudo-objeto TEscalar // type(TEscalar)= 16; typ...

Cálculo simbólico con polinomios

Scilab es un programa de cálculo numérico, y no realiza operaciones simbólicas; pero existe una excepción y es con los polinomios Revisando el  problema  de simplificar una fracción de polinomios, me encontraba que no obtenía el mismo resultado, no conseguía ver las fracciones simples. Supongo que algo ha cambiado con la nuevas versiones de Scilab, y por eso no obtenía lo mismo. Al final he descubierto que el comando pfss puede aplicarse a varios tipos de datos, y que simplemente aplicándolo al polinomio obtenía las fracciones simples.  \[\frac{B(s)}{A(s)}=\frac{2s^{3}+5s^{2}+3s+6}{s^{3}+6s^{2}+11s+6}\] El código para realizarlo sería (he añadido diversa líneas, para visualizar el contenido de cada elemento): printf("\n Descomponer en fracciones simples una división de polinomios \n\n"); s=%s; // s=poly(0,'s'); // equivalente disp("definir s como polinomio s=poly(0,''s'') ",s,) num=2*s^3+5*s^2+3*s+6; den=s^3+6*s^2+11*s+6; gp=num/den; di...