Está en la página 1de 29

TUTORIAL BSICO DE SCILAB

Qu es Scilab? Scilab fue desarrollado para aplicaciones de control de sistemas y procesamiento de seales. Es un formato de cdigo distribuido libremente. Scilab fue creado con tres partes distintas: un interpretador, libreras de funciones (procedimientos Scilab) y libreras de Fortran y C. no de los conceptos b!sicos de la sinta"is Scilab es su #abilidad de mane$ar matrices: con manipulaciones b!sicas como concatenacin, e"traccin o transposicin %ue son lle&adas a cabo inmediatamente tan bien como las operaciones b!sicas como suma y multiplicacin. Scilab tambi'n mane$a ob$etos m!s comple$os %ue matrices num'ricas. (or e$emplo, para aplicaciones de control se re%uiere manipular matrices racionales o polinomiales. Esto es #ec#o en Scilab manipulando listas y escribi'ndolas, lo %ue permite una representacin simblica natural de ob$etos matem!ticos complicados como funciones de transferencia. Scilab pro&ee una &ariedad de poderosas funciones para el an!lisis de sistemas no lineales. )a integracin de modelos din!micos e"plcitos a implcitos puede ser lle&ada a cabo num'ricamente. )a barra de #erramientas scicos permite una definicin gr!fica y simulacin de sistemas #bridos interconectados. E"isten facilidades de optimi*acin num'rica para la optimi*acin no lineal (incluyendo optimi*acin no diferencial), optimi*acin cuadr!tica y lineal. Scilab tiene una programacin ambiental abierta en donde la creacin de funciones y libreras de funciones est!n completamente en las manos del usuario. )as funciones son reconocidas como ob$etos de datos in Scilab y pueden ser manipulados o creados como otros ob$etos de informacin. (or e$emplo, funciones pueden ser definidas en Scilab y pasadas como una entrada o salida de argumentos de otras funciones. +dem!s, Scilab acepta caracteres %ue permiten la creacin de funciones en lnea. )as matrices de caracteres tambi'n son manupiladas como matrices ordinarias. Finalmente, Scilab es f!cilmente interfasado con Fortan o programas de C. Esto permite utili*ar pa%uetes estandari*ados y libreras en el ambiente de Scilab. )a filosofa general de Scilab es pro&eer el siguiente tipo de ambiente computacional:

,ener tipos de datos %ue sean &ariables y fle"ibles con una sinta"is natural y f!cil de usar. (ro&eer un set ra*onable de funciones %ue sir&a como base para una e"tensa &ariedad de c!lculos. ,ener un ambiente abierto de programacin en donde nue&as funciones puedan ser ad#eridas. El ob$eti&o de este tutorial es dar al usuario una introduccin a los comandos y estructuras b!sica de Scilab para %ue empiece a utili*arlo. (ara informacin o tutoriales en temas especiali*ados como control, e"isten &arios tutoriales y documentos accesibles por internet. Instalacin de Scilab en Wind !s" (uede obtenerse una &ersin lista para instalar, con interface gr!fica, de la siguiente direccin: #ttp:--....scilab.org-do.nload(ara /S 0indo.s, ba$a e instala la &ersin:
scilab-4.1.2 installer for binary version

El instalador te generar! un enlace con el smbolo de Scilab en tu escritorio, con el %ue podr!s e$ecutarlo. Int# duccin a la l$na de c %and s" +l e$ecutar Scilas, se abre una &entana con un indicador a la lnea de comandos, inicada por 1-->. + continuacin se presentar!n algunos comandos simples. ,odos los comandos son interpretados. Scilab #ace diferencia entre min2sculas y may2sculas. El car!cter 134 despu's de cada comando le indica a Scilab 56 desplegar el resultado en la lnea de comandos:
-->a=1; -->A=2; -->a+A ans = 3.

(ueden escribirse &arios comandos en una lnea, separados por 134. Sin embargo, es preferible por claridad escribir un comando por lnea. Se pueden escribir comentarios utili*ando la combinacin de caracteres 1--4:
-->//Dos comandos en la misma lnea -->c=[1 2];b=1.5 b = 1.5

(uede escribirse un commando en &arias lneas, utili*ando la combinacin de smbolos 174. Esto es 2til para frmulas muy largas. 5o est! permitido 1cortar4 el nombre de una &ariable o funcin en dos lneas.
-->//Un comando en diferentes lneas -->u=1000000*(a*sin(A))2+... --> 2000000*a*b*sin(A)*cos(A)+... --> 1000000*(b*cos(A))2 u = 81268.994

(odemos obtener una lista de las &ariable e"istentes con el comando 1.#o4:
-->who your variables are... u A %scicos_menu b a %scicos_short scicos_pal %scicos_help

%scicos_display_mode modelica_libs scicos_pal_libs %scicos_lhb_list %CmenuTypeOneVector %helps WSCI home SCIHOME CreateScilabHomeDir PWD TMPDIR MSDOS SCI guilib sparselib xdesslib percentlib utillib statslib alglib roblib soundlib metalib armalib mtlblib %F %T %inf COMPILER %gtk %gui %t %f %eps using polylib siglib intlib optlib elemlib autolib s2flib %nan $ %e

tkscilib tdcslib %z %s %pvm %io %tk %i

31767 elements out of 5000000. and 62 variables out of

9231

your global variables are...


LANGUAGE %helps demolist %browsehelp %toolboxes %toolboxes_dir using 1165 elements out of 11000. and 7 variables out of LCC

767

6bser&a %ue obtenemos la lista de las &ariables pre&iamente definidas por nosotros, 1u a b +4 $unto con un ambiente inicial compuesto de diferentes libreras y algunas &ariables especificas 1permanentes4.

Ti& s de Dat s C nstantes &#ede'inidas" Scilab pro&ee como constantes predefinidas %i, %pi, %e, y %eps. )a constante %i representa 8 , %pi es 9: ;.8<8=>?@7, %e es l n2mero de Euler e:?.@8A?A8A... y %eps es una constante %ue representa la precisin de la m!%uina (%eps es el numero m!s grande para el %ue 8B%eps=1). %inf y %nan son para 1Cnfinito4 y 15oun5umero4 respecti&amente. 6tras constantes son %t y %f %ue son para 1&erdadero (trae)4 y 1falso (false)4 respecti&amente. Estas constantes est!n protegidas y no pueden ser borradas ni modificadas por el usuario. Escala#es ( )at#ices )a estructura fundamental en Scilab son las matrices, como se &er! a continuacin. (ero antes es necesario definir %ue es un escalar para Scilab. Escala#es" )os escalares son n2meros reales o comple$os. )os &alores de los escalares pueden ser asignados a nombres de &ariable escogidos por el usuario.
--> a=5+2*%i a = 5. + 2.i --> B=-2+%i;

--> b=4-3*%i b = 4. - 3.i --> a*b ans = 26. - 7.i -->a*B ans = - 12. + i

6bser&a %ue Scilab e&al2a inmediatamente lneas %ue terminan con espacio. )as instrucciones %ue terminan con punto y coma son e&aluadas pero no se despliegan en pantalla. )at#ices" )as matrices son la estructura fundamental en Scilab" na matri* es un arreglo rectangular donde cada elemento puede locali*arse con don ndices, el n2mero de rengln y el n2mero de columna. Conocer el mane$o de matrices es fundamental para el uso eficiente de Scilab. C#eacin de una %at#i*" )a forma m!s f!cil para crear una matri* es especificando directamente sus elementos. 6bser&a %ue los elementos de cada rengln pueden separarse con espacios o con comas, y para indicar un nue&o rengln se utili*a el punto y coma. )os elementos deben especificarse dentro de par'ntesis cuadrados.
DDE+ : F8 ? <3 = @ >G + : 8. =. ?. @. <. >.

DDEH : F?,@3=,8G H : ?. =. @. 8.

na matri* tambi'n puede especificarse sobre &arias lneas:


DDEC:F8 ? ; =3 DDE? A > ;G C : 8. ?. ?. A. ;. >. =. ;.

E+t#accin de #an, s de %at#ices" )a e"traccin de rangos de matrices o submatrices es una de la operaciones mas importantes para la programacin eficiente en Scilab. Ieamos algunos e$emplos:
DDE+ : F8.=,?,@,>.?,A.; DDE?.@,=.?,;,8,A DDE8,?,;,<,=G + : 8.= ?. @. >.? A.; ?.@ =.? ;. 8. A. 8. ?. ;. <. =.

Jefinimos una matri* de ; renglones por = columnas. Si %ueremos e"traer el elemento correspondiente al primer rengln, segunda columna, utili*amos:
DDE+(8,?) ans : ?.

6bser&a %ue para acceder a los elementos de una matri* se utili*an par'ntesis normales, no cuadradosK (ara e"traer todos los elementos de la primera columna utili*amos:
DDE+(:,8) ans : 8.= ?.@ 8.

6bser&a como el smbolo 1:4 se utili*a en la posicin correspondiente al ndice del rengln, y un uno en la posicin correspondiente al ndice de la columna. Este comando puede leerse como: Regresa los elementos correspondientes a todos los renglones, primera columna. 6bser&a como el resultado es una matri* de tres renglones por una columna, o ; L 8.

(ara e"traer los elementos del tercer rengln utili*amos:


DDE+(;,:) ans : 8. ?. ;. <. =.

En este caso, el resultado es una matri* de un rengln por tres columnas, o 8 L ;, como es de esperarse. ,ambi'n podemos e"traer submatrices definidas por rangos de renglones y columnas, por e$emplo:
DDE+(?:;,8:?) ans : ?.@ =.? 8. ?.

Este comando podemos leerlo como: 1regresa la submatri* formada por los elementos correspondientes desde el segundo rengln #asta el tercer rengln, y desde la primera columna #asta la tercera columna. - #%acin de %at#ices a &a#ti# de t#as %at#ices" (odemos 1componer4 matrices a partir de otras matrices, mientras las dimensiones sean congruentes. (or e$emplo:
DDE+ : F 8 ? ;3 = @ >3 ? A @G + : 8. =. ?. ?. @. A. ;. >. @.

DDEH : F 83 =3 >G H : 8. =. >.

DDEC : F+ HG C : 8. =. ?. ?. @. A. ;. >. @. 8. =. >.

6bser&a %ue + y H tienen %ue tener el mismo n2mero de renglones para poder #acer esta composicin. Como e$ercicio, e"plica como se forma la siguiente matri* compuesta:
DDEJ : FC3 F+(;,:) H(?,8)GG J : 8. =. ?. ?. ?. @. A. A. ;. >. @. @. 8. =. >. =.

)at#ices es&eciales" Scilab tiene &arios comandos para generar algunas matrices especiales de uso com2n. 6bser&a los siguientes e$emplos: Meneracin de una matri* con todos sus elementos igual a uno:
DDEC : ones(<,;) C : 8. 8. 8. 8. 8. 8. 8. 8. 8. 8. 8. 8.

.ene#acin de una %at#i* c n t d s sus ele%ent s i,ual a *e# /


DDEJ : *eros(<,;) J : N. N. N. N. N. N. N. N. N. N. N. N.

Meneracin de una matri* cuadrada con unos en su diagonal principal y ceros fuera de ella:
-->E=eye(5,5) E = 1. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 1.

Meneracin de una matri* cuadrada con los elementos de la diagonal especificados, y ceros fuera de la diagonal principal:
DDEJ : diag( F? 8 N D8 D?G ) J : ?. N. N. N. N. N. 8. N. N. N. N. N. N. N. N. N. N. D 8. N. N. N. N. N. N. O ?.

Meneracin de una matri* cuadrada con los elementos en la diagonal deba$o de la diagonal principal especificados:
DDE) : diag( F8 ? ; <G, D8 ) ) : N. 8. N. N. N. N. N. ?. N. N. N. N. N. ;. N. N. N. N. N. <. N. N. N. N. N.

Meneracin de una matri* con n2meros aleatorios entre N y 8:


DDEP : rand(;,?) P : N.?>???Q@ N.=QQ<?<> N.<A?Q<@? N.;;?8@8> N.=>;=N>= N.=N8=;<?

O&e#aci nes c n %at#ices


T#ans&uesta de una %at#i*" )a transpuesta de una matri* (intercambiar renglones y columnas) se obtiene utili*ando el smbolo de c %illa si%&le , por e$emplo:
DDE+ : F 8 ; A3 = ? @G + : 8. =. ;. ?. A. @.

DDEH : +R H : 8. ;. A. =. ?. @.

)ulti&licacin & # un escala#" na matri* puede multiplicarse por un escalar utili*ando el smbolo 1S4. ,odos los elementos de la matri* se multiplican por el escalar, por e$emplo:
DDE H : F?, =, >3 ;, @, <G H : ?. ;. =. @. >. <.

DDEC : ?SH C : <. Q. 8N. 8<. 8A. A.

Su%a ( #esta de %at#ices" (ara %ue dos matrices puedan sumarse o restarse, tienen %ue ser del mismo orden. )a suma y resta se #acen elemento a elemento correspondiente.
DDE+ : F?, ;3 =,83 @,>G + : ?. ;.

=. @.

8. >.

DDEH : FA,?=3 ?,;@3 =,@G H : A. ?. =. ?=. ;@. @.

DDEC:+BH C : 8N. ?A. @. ;A. 8?. 8Q. DDEJ:+DH J : D Q. D ??. ;. D ;Q. ?. ?.

)ulti&licacin de %at#ices" )a multiplicacin de matrices se representa con el smbolo 1S4. Pecuerda %ue para %ue dos matrices puedan multiplicarse, deben ser conformes (el n2mero de columnas de la primera matri* tiene %ue ser igual al n2mero de columnas de la segunda matri*), y %ue la multiplicacin de matrices no es conmutati&a. El resultado tiene el mismo n2mero de renglones %ue la primer matri*, y el mismo n2mero de renglones %ue la segunda.
DEF : F?, =, >3 8, @, ?G F : ?. 8. =. @. >. ?.

DDEM : FN, =3 8N ?>3 @ ?8G M : N. =. 8N. ?>. @. ?8. DDET:FSM T : 88;. ;<<. A<. ?=N.

)ulti&licacin de %at#ices ele%ent a ele%ent " Esta es una operacin %ue 56 ES,+ JEFC5CJ+ dentro del !lgebra matricial, pero %ue es muy 2til en la solucin de algunos tipos de problemas con matrices. Se define en Scilab como la multiplicacin de los elementos correspondientes de dos matrices, y se representa con la secuencia de smbolos punto y asterisco: 1.S4. 6bser&a %ue las matrices tienen %ue ser del mismo orden, y %ue ob&iamente es conmutati&a.
DDE+ : F8 = ;3 ? @ A3 ; = <3 N ? >G + : 8. ?. ;. N. =. @. =. ?. ;. A. <. >.

DDEH : FN N ?=3 @ 8 ?3 ? 8 ;3 @ ? 8G H : N. @. ?. @. N. 8. 8. ?. ?=. ?. ;. 8.

DDEC : + .S H C : N. N. @=. 8<. @. 8Q. Q. =. 8?. N. <. >.

DDEJ : H .S + J : N. N. @=. 8<. @. 8Q. Q. =. 8?. N. <. >.

0ect #es" n caso especial muy importante de matrices en Scilab son los &ectores, %ue se mane$an como una matri* de un solo rengln (&ector rengln) o de una sola columna (&ector columna). )os elementos de un &ector pueden accederse utili*ando solo un ndice. 6bser&a los siguientes e$emplos:
DDEL : F8 = @ >GR -- Iector columna L : 8. =. @. >. DDEL(;) ans : @. DDEU : F? < Q AG -- Iector rengln U : ?. <. Q. A.

DDEU(<) ans : A.

0ect #es c n c %& nentes e1uies&aciad s" )os &ectores e%uiespaciados se utili*an frecuentemente para e&aluar funciones, por lo %ue Scilab pro&ee una forma muy con&eniente de formarlos. (or e$emplo, para formar un &ector con elementos del N al 8N en inter&alos de 8 podemos usar:

DDEL:N:8N L : N. 8. ?. ;. <. =. Q. @. A. >. 8N.

Si %ueremos %ue es espaciamiento entre los elementos sea de N.=, introducimos el comando:
L : column 8 to ?N N. >. N.= >.= 8. 8.= ?. ?.= ;. ;.= <. <.= =. =.= Q. Q.= @. @.= A. A.=

column ?8 8N.

El siguiente comando genera un &ector columna de ? a ; con espaciamientos de :N.?: DDEU:(?:N.?:;)R U : ?. ?.? ?.< ?.Q ?.A ;.

-unci nes en Scilab )as funciones son otro de los componentes fundamentales de Scilab. E"isten cientos de funciones predefinidas, y el usuario puede definir sus propias funciones f!cilmente. (or e$emplo, algunas de las mas utili*adas son: log(), sin(), cos(), tan(), asin, acos, atan, e"p(), abs(), s%rt(). +lgo muy importante %ue debes recordar es %ue la mayora de las funciones matem!ticas en Scilab aplican tanto a n2mero reales como comple$os. E$emplos:
DDEsin(N.=) ans : N.<@><?== DDEc:s%rt(D>) c : ;.i DDEe"p(D;.?) ans : N.N<N@Q?? DDElog(8N) ans : ?.;N?=A=8

6bser&a %ue en el 2ltimo e$emplo, la funcin 1log()4 obtiene el logaritmo natural de un n2mero.

(uede encontrarse informacin sobre lo %ue #ace una funcin con el comando #elp, por e$emplo:
DDE#elp log

+bre una p!gina con documentacin de esta funcin:


)ast update : +pril 8>>; l , D natural logarit#m

Calling Sequence
y=log(x)

Parameters
x

: constant &ector or constant matri"

Description
log(x) logm .

is t#e VelementD.iseV logarit#m. y(i,j)=log(x(i,j)) . For matri" logarit#m see

Examples
exp(log([1,%i,-1,-%i]))

See Also
exp

, logm , ieee ,

A&licacin de 'unci nes a l s ele%ent s de una %at#i*" na caracterstica distinti&a de pa%uetes como Scilab, /atlab, y 6cta&e, es %ue es muy f!cil aplicar una funcin escalar a todos los elementos de una matri*. Hasta con pasar la matri* como argumento a la funcin. Esto se &e claramente en el siguiente e$emplo:
DDE+ : F > 8Q3 ?= ;QG + : >. 8Q. ?=. ;Q. DDEH : s%rt(+) H : ;. =. <. Q.

6bser&a como se aplic la funcin 1s%rt()4, ra* cuadrada, a cada elemento de la matri* +. -unci nes es&eciales &a#a %at#ices. E"isten &arias funciones definidas especialmente para matrices. +lgunas de las mas 2tiles son: Dete#%inante de una %at#i*" El determinante de una matri* cuadrada se obtiene utili*ando la funcin in&.
DDE+ : F8 @ >3 ? = <3 ; ? AG + : 8. ?. ;. @. =. ?. >. <. A.

DDEdet(+) ans : D >=.

23%e# de c ndicin de una %at#i*" El n2mero de condicin de una matri* es un escalar positi&o. Si el n2mero es muy cercano a cero, la matri* es mal condicionada, y el c!lculo de la in&ersa puede ser errneo por errores de redondeo. El n2mero de condicin es una medida mas confiable %ue el determinante para e&aluar la importancia de lo errores de redeondeo. Se obtiene con la funcin 1cond()4. (or e$emplo, para la matri* anterior:
DDEcond(+) ans : >.8;A;==?

)a matri* est! bien condicionada y el c!lculo de la in&ersa es confiable. In4e#sa de una %at#i*" )a in&ersa de una matri* cuadrada (si e"iste y la matri* es bien condicionada) pude obtenerse con la funcin 1in&()4. (ara la matri* del e$emplo anterior:
DDEin&(+) ans : D N.;;QA<?8 N.< N.8@A><@< N.N<?8N=; N.? D N.8<@;QA< N.88=@A>= D N.? N.N><@;QA

6bser&a %ue en este caso, la funcin regresa una matri*.

En Scilab, una funcin pude regresar una matri* o un &ector. ,mbi'n pude regresar mas de un resultado. n e$emplo muy 2til es la funcin 1si*e()4, %ue nos sir&e para determinar el orden de una matri*. 6bser&a los siguientes e$emplos:
H : 8. ?. ;. =. @. =. ?. ;. >. <. A. ?.

DDEsi*e(H) ans : <. ;.

DDEFreng,colsG:si*e(H) cols : ;. reng : <.

De'inicin de -unci nes & # el Usua#i


Es posible definir funciones directamente en la lnea de comandos de Scilab, pero es mas recomendable #acerlo abriendo el editor en la barra de opciones (recuerda %ue puedes guardar el arc#i&o creado con tus funciones para reutili*arlo). Ieamos un e$emplo para crear una funcin %ue obtenga la ra* c2bica de un n2mero. function r = cubica(x) // Funcion para calcular la raiz cubica r = exp(1. /!. " log(x))# endfunction na &e* creada nuestra funcin, la 1cargamos4 a Scilab con la opcin 1)oad into Scilab4 dentro de 1E"ecute4 en el editor. )a funcin esta lista para usarse: DDEcubica(?@) ans : ;. DDE+ : F?@ A Q<G + : ?@. A. Q<.

DDEcubica(+) ans : ;. ?. <.

6bser&a %ue si utili*amos nuesta funcin con una matri*, Wla aplica a cada uno de los elementos de 'staK

Iamos a anali*ar uno por uno los elementos de nuestra funcin: function r = cubica(x) Este es el encabe*ado de nuestra funcin. )a palabra reser&ada 1function indica %ue se esta declarando una funcin. )a &airable r4 es representa la salida o resultado de la funcn, en este caso tenemos un escalar. El nombre puede ser cual%uier nombre &!lido. El signo igual se utili*a para indicar la asignacin de nuestra funcin. )a palabra 1cubica4 es el nombre con el cual &amos a llamar nuestra funcin. (uede ser cual%uier nombre &!lido. Elpar!metro 1x4 representa el argumento de nuestra funcin. na funcin puede tener mas de un argumento. // Funcion para calcular la raiz cubica Esta lnea es un comentario. Es importante incluir comentarios para facilitar el uso de la funcin. +dem!s este comentario aparecer! autom!ticamente en la documentacin de la funcin si se busca con el comando4#elp cubica4. 5o deben incluirse caracteres especiales en el comentario, como acentos, ya %ue la documentacin autom!tica no los permite. r = exp(1. /!. " log(x))# Esta lnea asigna a la &ariable de salida el &alor de la ra* c2bica de lo %ue se le pase a la funcin como argumento. Es necesario %ue en alguna parte de nuesta funcin se le asigne &alor a la &ariable o &ariables de salida. endfunction Esta lnea seala el final de la declaracin de la funcin.

Enseguida &amos a declarar una funcin %ue reciba como par!metro el radio de un crculo, y regrese el &alor del permetro y del !rea. function $p,a% = circulo(r) // Regresa el perimetro del circulo de radio r en p, // & el area en a. p = ' " (pi " r# a = (pi " r " r# endfunction IMPORTANTE Es muy importante dejar al menos una lnea en blanco al final del archi o! ya "ue el interpretador de #cilab lo re"uiere$ Jespu's de cargar la funcin en Scilab, podemos utili*arla:
DDEFperimetro,areaG : circulo(;) area : ?A.?@<;;< perimetro : 8A.A<>==Q

6bser&a %ue si llamamos la funcin sola, regresa el &alor de salida de la 2ltima &ariable %ue se declar en el encabe*ado:
DDEcirculo(;) ans : 8A.A<>==Q

+#ora &amos a modificar la funcin crculo para %ue entregue el permetro y el !rea como componentes de un &ector: function ) = circulo(r) // Regresa el perimetro & el area del circulo de radio r. // )(1) = perimetro. )(') = area. )(1) = ' " (pi " r# )(') = (pi " r " r# endfunction

+l e$ecutar la funcin obtenemos el resultado en un &ector columna:


DDEcirculo(;) ans : 8A.A<>==Q ?A.?@<;;<

)t d s 2u%#ic s
Scilab incluye funciones preDprogramadas para di&ersos m'todos num'ricos. En seguida presentamos algunos de los mas utili*ados. S lucin de siste%as de ecuaci nes lineales" Pesol&er sistemas de ecuaciones lineales es muy sencillo con Scilab. )a me$or forma de mostrarlo es con un e$emplo: Pesol&er el sistema:
= x8 ? x ? = x; + ? x < = x= = 8? ? x8 + 8? x ? = x; + ? x < = x= = ? < x8 + x ? = x; + ?? x < = x= = 8 ; x8 + ? x ? = x; + ? x < A x= = = ; x8 + ? x ? + 8= x; + ; x < ?8x= = =

(rimero capturamos la matri* de coeficientes del sistema en forma matricial en Scilab:


DDE+:F= D? D= ? D=3 ? 8? D= ? D=3 < 8 D= ?? D=3 ; ? D= ? DA3 ; ? 8= ; D?8G + : =. D ?. D =. ?. 8?. D =. <. 8. D =. ?. D =. ?. D =. ??. D =.

;. ;.

?. D =. ?. D A. ?. 8=. ;. D ?8.

+#ora el &ector de t'rminos independientes como un &ector columna:


DDEb : F8? D? D8 = =GR b : 8?. D ?. D 8. =. =.

)a solucin se obtiene como pre multiplicando el &ector de t'rminos independientes por la in&ersa de la matri* de coeficientes:
DDEL : in&(+) S b L : ?.<>A=QN@ D N.<Q<=><8 N.N=<N@@> D N.<==;A?A N.N<A8Q@;

Comprobacin:
DDE+SL ans : 8?. D ?. D 8. =. =.

6tra forma (mas eficiente para sistemas grandes) es utili*ando el comando 1X4:

DDEL : + X b L : ?.<>A=QN@ D N.<Q<=><8 N.N=<N@@> D N.<==;A?A N.N<A8Q@;

S lucin nu%#ica de inte,#ales de'inidas" (ara e&aluar una integra definida num'ricamente e"isten &arias opciones. Iamos a utili*ar la funcin predefinida 1intg()4. Empe*amos utili*ando el comando #elp para saber mas detalles de esta funcin: intg D definite integral Calling Se%uence F&,errG:intg(a,b,f F,ea F,erG) (arameters a,b : real numbers f : e"ternal (function or list or string) ea, er : real numbers ea : absolute error re%uired on t#e result. Jefault &alue: 8.dD8< er : relati&e error re%uired on t#e result. Jefault &alue: 8.dDA err : estimated absolute error on t#e result. )os par!metos entre par'ntesis cuadrados son opcionales.

Iamos a &er como se aplicara esta funcin si se desea e&aluar num'ricamente la siguiente integral:
?

x sen(;N x ) dx x ? 8( ) ?

(rimero debemos programar la funcin en el editor de Scilab:


function y : f(") y : " S sin(;NS") - s%rt( 8 D ( (" - (?SYpi) )Z? ) )3 endfunction

na &e* cargada la funcin en Scilab, utili*amos la funcin 1integ()4:


DDEF&,errorG:intg(N,?SYpi,f) error : <.Q?=JDN> & : D ?.=<;?=>Q

El &alor de la integral fue asignado a 1&4, y a la &ariable 1error4 se le asign el estimado del error del resultado. S lucin nu%#ica de ecuaci nes n lineales" En Silab podemos utili*ar la funcin [fsol&e()\ para encontrar las races reales de una ecuacin no lineal, o de un sistema de ecuaciones no lineales. Ieamos como se utili*a con &arios e$emplos simples: Jeseamos encontrar una ra* real de la ecuacin:
x? ex = N

(rimero programamos la funcin usando el editor de Scilab y la cargamos: function y = f(x) y = x^2 - exp(x^2); endfunction
RECUERDA DEJAR AL MENOS UNA LINEA EN BLANCO AL FINAL DEL ARCHIVO!

+#ora la pasamos como par!metro a 1fsol&e()4:


-->x=fsolve(1.0,f) x = - 0.0002122

6bser&a %ue fsol&e re%uiere una apro"imacin inicial de la ra*, en este caso utili*amos 8.N. +#ora utli*aremos la funcin [fsol&e\ para encontrar una ra* del siguiente sistema de ecuciones no lineales:
x? &? + = = N A 8Q
& ? =sen( x ) = N

(rimero programamos la funcin en el editor de Scilab, utili*ando un &ector para los par!metros de entrada, y un &ector de salida para las funciones e&aluadas: function F = Fx&(*) x = *(1)# & = *(')# F(1) = x"x/+ , &"&/1- ./# F(') = &"& . /"sin(x)# endfunction +#ora podemos pasar la funcin como par!metro a fsol&e() :

-->fsolve([1.0,1.0]',Fxy) ans = 6.3177262 - 0.4155362

6bser&a como tu&imos %ue pasar un &ector con dos condiciones iniciales. El resultado es un &ector, donde el primer elemento correspode al &alor de ", y el segundo al &alor a y, respetando el orden en %ue los asignamos al declarar la funcin. )a funcin 1fsol&e( )4 tiene &arias opciones, las cuales puedes e"plorar utili*ando el comando #elp.

También podría gustarte