Este documento presenta diferentes operadores y estructuras de control en Scilab. Explica operadores lógicos y de comparación como >, <, ==, etc. Luego cubre bucles como for y while, así como la estructura condicional if-then-else. También muestra cómo leer y escribir archivos de datos, incluyendo el formato de los datos. Finalmente, incluye ejemplos de cómo imprimir resultados en la pantalla y archivos de texto.
Este documento presenta diferentes operadores y estructuras de control en Scilab. Explica operadores lógicos y de comparación como >, <, ==, etc. Luego cubre bucles como for y while, así como la estructura condicional if-then-else. También muestra cómo leer y escribir archivos de datos, incluyendo el formato de los datos. Finalmente, incluye ejemplos de cómo imprimir resultados en la pantalla y archivos de texto.
Este documento presenta diferentes operadores y estructuras de control en Scilab. Explica operadores lógicos y de comparación como >, <, ==, etc. Luego cubre bucles como for y while, así como la estructura condicional if-then-else. También muestra cómo leer y escribir archivos de datos, incluyendo el formato de los datos. Finalmente, incluye ejemplos de cómo imprimir resultados en la pantalla y archivos de texto.
// Operadores logicos y de comparacion 3 > 2 //mayor que 3 < 2 //menor que pause
3 <> 2 //diferente (no igual) 3 == 3 //igual
pause (2>1)&(3>1) //Operador AND (2>1) | (3>5) //Operador OR
pause
~(2<1) //Operador NOT (no) pause
// Lazos (loops) en SCILAB
// // "for" en multiples lineas // // Ejemplo 1
m=[]; for m = 1:10 a(m) = m^2 end a pause
// // "while" en varias lineas // Ejemplo 2 s = 100; while s>50 disp(s^2) s = s - 5 end pause
// Condicional // "if...then...else" // Instrucciones en lineas multiples (tambien puede efectuarse en una sola linea) // Ejemplo 3 (elseif)
// Dependiendo del valor de x imprimir x, y o z // Si x< 5 -> imprimir x // Si 5<= x < 10 -> imprimir y // Si x>= 10 -> imprimir z // Para interrumpir introducir x = 0
x= 1; y = 100; z = 400;
while x<>0 x=input('Introduzca el valor x = '); if x<5 then disp(x) elseif x>=10 then disp(z) else disp(y) end end pause
// // Ejemplo 4 "select-case" //
// Introduzca dos valores en un vector[x1 x2] // Si x1 = -1 -> y = x2 - 2 // Si x1 = 1 -> y = x2^2 // Si x1 = 2 -> y = ln(x2) // Para interrumpir apriete Enter [z]=input('Introduzca un vector [x y]= ') x1 = z(1); x2 = z(2);
while ~isempty(z) select x1 case -1 y = x2 - 2 case 1 y = x2^2 case 2 y = log(x2); end [z]=input('Introduzca un vector [x1 x2]= '); x1 = z(1); x2 = z(2); end pause
// Input-output en Scilab // Grabando variables A = [1. 2. 3.; -3. 4. 5.; 2. 4. 5.; 1. 3. 2.] b = 1:10 save('Ab.dat', A,b)
// Intente ver el contenido de 'Ab.dat' // Recuerde que .dat es un archivo en formato binario pause
clear //Limpiando memoria who
pause
load('Ab.dat') // Cargando datos del archivo 'Ab.dat' A b pause
// Archivo de salida (sin formato) print('datos1.txt',A,b) //Imprimir en un archivo de salida // Intentar abrir dicho archivo usandoo un editor de texto pause
// Creando archivos de salida // Ejemplo 5 u = file('open','datos2.txt','new') write(u,A,'(3f10.6)') //%3 veces: elemento con formato de coma flotante (10 caracteres, 6 decimales) file('close',u) //Verifique el contenito del archivo recien creado pause
//Ejemplo 6 x1 = 0:0.5:10; x2 = x1^2; B = [x1',x2'] m = file('open','datos3.txt','new') write(m,B,'(2(f10.6,2x))') //%2 veces: elemento con formato floating: 10 caracteres, 6 decimales; seguido de 2 espacios file('close',m) //Verifique el contenito del archivo recien creado pause
//Incluyendo leyenda A = 5*rand(2,3), B = rand(2,3), C =A +B u = file('open','datos4.txt','new') write(u,'Matriz A','(a)') write(u,A,'(3(f10.6,2x))') write(u,'Matriz','(a)') write(u,B,'(3(f10.6,2x))') write(u,'Matriz suma C =A +B','(a)') write(u,C,'(3(f10.6,2x))') file('close',u) //Verifique el contenido del archivo recien creado pause
//Incluyendo leyenda en la pantalla
t = [0.25:0.25:3]; d = 1/2*t.^2;
[n m] = size(d);
//Usando la funcion 'disp' for j=1:m disp('Distancia para t = '+ string(t(j)) + ' es ' + string(d(j)) ) end pause
Hola, agradecer cualquier ayuda con el comando FSOLVE.
Por ejemplo, quiero solucionar el siguiente sistema:
xy = 12 x + y = 7
Cmo escribo el cdigo?
Mi problema es bastante ms complejo que ese sistema (el mo es de 15 ecuaciones), pero con un ejemplo sencillo podr entender la idea.
Muchas gracias.
Pablo Responder
Otras secciones de LWP con contenido similar... - Cursos de Matlab - Temas de Matlab - Cdigo fuente de Matlab
0
A su nt o: RE:Sist. de ecuacion es no lineales - FSOLV E A ut or : Ral Santiago (211 interven ciones) Fe ch a: 02/09/20 07 13:57:53 U rl: http://w ww.rsm unozza.c o.nr Simplemente defines las variables simblicas
syms x y
luego pones las ecuaciones y en funcin de que variables quieres resolver, para que te lo pueda hacer si tienes ms variables qeu ecuaciones.
solve('x*y=12','x+y=5','x','y')
esta te saca dos respuestas por cada una, por tanto para verla, por ejm pon
ans.x
Luego puedes evaluar con eval, y si ests con simblico simplificar, expandir o algo por el estilo que te sirva con
expand, eval, simplify, collect, pretty, etc
Aunqeu para simblico es mejor maple.
Regresando a tu problema, como tienes el mismo numero de variables que ecuaciones puedes simplemente ponerlo as:
solve('x*y=12','x+y=5')
Como dices qeu tienes un sistema complejo, si matlab no es capaz lo que puedes es ayudarlo haciendolo por pasos, algo as
x1=solve(eq1,eq2,....,eqn,'x1')
x1=eval(x1)
y as para cada variable,
Si definitivamente no te sirva, mira maple, es mejor para resolver sistemas complejos