You are on page 1of 6

===

// Programacion con Scilab


//=======================================================================
===================

// 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

You might also like