CURSO DE SCILAB DE SCILA… · ¿QUÉ ES SCILAB? •Scilab es un lenguaje de programación de alto...

46
CURSO DE SCILAB INTRODUCCIÓN PRIMERA PARTE

Transcript of CURSO DE SCILAB DE SCILA… · ¿QUÉ ES SCILAB? •Scilab es un lenguaje de programación de alto...

CURSO DE SCILAB

INTRODUCCIÓN

PRIMERA PARTE

CONTENIDO

• El programa

• Entornos de Trabajo

• Uso del Help

• Operaciones con Vectores y Matrices

• Operaciones con Funciones

• Graficación

• Programación

• Debugger

¿QUÉ ES SCILAB?

• Scilab es un lenguaje de programación de altonivel para cálculo científico, interactivo de libreuso y disponible en múltiples sistemas operativosdesarrollado por Institut National de Rechercheen Informatique et Automatique y ÉcoleNationale des Ponts et Chaussées desde 1990..

• Scilab fue creado para hacer cálculos numéricosaunque también ofrece la posibilidad de haceralgunos cálculos simbólicos.

• Posee cientos de funciones matemáticas y laposibilidad de integrar programas en loslenguajes más usados (FORTRAN, Java y C y C++ ).

• Scilab es un sistema abierto, el usuario puededefinir nuevos tipos de datos y operaciones.

• Scilab viene con numerosas herramientas:Gráficos 2-D y 3-D, animación, Álgebra lineal,matrices dispersas, Polinomios y funcionesracionales, Simulación, Xcos: simulador pordiagramas de bloque, Control clásico, robusto,optimización LMI, Optimización diferenciable y nodiferenciable, Tratamiento de señales, Grafos yredes.

• Scilab paralelo empleando PVM, Estadísticas,Interfaz con el cálculo simbólico (Maple, MuPAD),Interfaz con TCL/TK.

¿POR QUÉ SCILAB?

• Calidad científica

• Potencia

• Flexibilidad

• Facilidad de uso

• Interactividad

• Transparencia

• Gráficos

ELEMENTOS BÁSICOS DEL ESCRITORIO

• Command Windows: Donde se ejecutan todas las instrucciones yprogramas. Se escribe la instrucción o el nombre del programa y se daa Enter.

• Help (también se puede usar desde comand windows)

• Workspace: Para ver las variables que se están usando y susdimensiones (si son matrices)

• Los elementos básicos del SCILAB, comocualquier otro lenguaje de programación, son:

– Constantes

– Variables

– Operaciones

– Expresiones

– Funciones.

CONSTANTES OVARIABLES PREFIJADAS

• ans Nombre de la variable por defecto usado en los resultados

• %pi Número • %e Constante de Napier (número de Euler)• %eps El más pequeño de los números que al sumarle 1

da un número en coma flotante mayor que 1• %inf Infinito• %nan Indefinido• %i Unidad de los imaginario

VARIABLES

• Números enteros: 2 35 -48

• Números reales: 2. -35.2 48.45• Máximo de 16 cifras significativas

• Utilizando la letra “e” a continuación de un número con punto decimal.

• Números complejos: 2+3*%i

OPERACIONES CON ESCALARES

v+k adición o suma

v-k sustracción o resta

v*k multiplicación

v/k divide por k cada elemento de v

k./v divide k por cada elemento de v

v.^k potenciación cada componente de v esta elevado a k

k.^v potenciación k elevado cada componente de v

>> (10+5*(4)^(1/2))/(1-(2^(-3/2)-0.5^1.5))

ans =

20

Resolver

Ejercicio

102472

2341768.4210

205.021

45105.123

21

65

514

1010*987.9

10*876.510*8.9

OPERACIONES CON ESCALARES

Calcule el volumen de una esfera de cinco metros de radio:

>> r = 5;

>> A = (4*%pi*r ^ 2)/3

A =

104.7198

OPERACIONES CON ESCALARES

COMANDO DE LA FUNCIÓN DESCRIPCIÓN

sqrt(x) Raíz Cuadrada

abs(z) Valor Absoluto o Módulo

conj(z) Conjugado de un complejo

real(z) Parte real de Z

imag(z) Parte imaginaria de Z

exp(x) Función Exponencial (base “e”)

sin(x) – cos(x) – tan(x) Funciones Trigonométricas

log(x) Logaritmo Neperiano (base “e”)

log10(x) Logaritmo Natural (base 10)

ALGUNAS FUNCIONES TIPICAS USADAS EN ESCALARES

COMANDO DE LA FUNCIÓN DESCRIPCIÓN

Log2(x) Logaritmo base 2

asin(x) – acos(x) – atan(x) Función Trigonométricas Inversas

sinh(x) – cosh(x) – tanh(x) Funciones Trigonométricas Hiperbólicas

asinh(x) – acosh(x) – atanh(x) Funciones Hiperbólicas Inversas

ALGUNAS FUNCIONES TIPICAS USADAS EN ESCALARES

Hallar el valor de X en el triángulo rectángulo que tienehipotenusa igual a 50 y el ángulo opuesto al cateto es de 30º

50

30º

>> h = 50;

>> Teta= 30*%pi/180;

>> X = 50*sin(Teta)

X =

25.0000

NOTEN QUE SE REALIZO UNA CONVERSIÓN DEGRADOS A RADIANES. ESTO NECESARIO PARAEFECTOS DEL CÁLCULO. SCILAB ESTABLECE COMOCRITARIO EL USO DE RADIANES EN EL ARGUMENTODE LAS FUNCIONES TRIGONOMETRICAS.

X

En un triangulo rectángulo para el cual se conoce que uno de suscatetos tiene 10 cm y la hipotenusa de 15 cm. Encuentre elángulo que se forma entre ellos.

15Alfa

>> Alfa = (180/%pi)*acos(10/15)

Alfa =

48.189710

Encuentre el módulo, la parte real, la parte imaginaria y el ángulo del número complejo mostrado a continuación.

>> a = 3+4*%i;

>> A = abs(a), R = real(a), I = imag(a)

A =

5

R =

3

I =

4

>> Teta= (180/%pi)*atan (I/R)

Teta =

53.1301

» function y=f(x); y=36/(8+exp(-x)); endfunction

» f(15)

ans =

4.4999998

ALGUNAS VERSIONES MODERNAS DE SCILABRECOMIENDAN USAR EL COMANDOfuncprot(0)EN VEZ DE endfunction

POLINOMIOS

• Para definir un polinomio se puede utilizar elcomando poly.

• Este comando permite construir un polinomio de dosformas distintas, ello dependerá de si se conocen loscoeficientes del polinomio (coeff) o por otro lado sise conocen las raíces (roots)

Hallar el valor de x que cumpla con la ecuación:

0523 2 xx

» polinomio = poly([5 2 3],’x’,’coeff’)

polinomio =

2

5 + 2x + 3x

» pd_poli = derivat(polinomio)

ans =

2 + 6x

» horner(pd_poli,-3)

ans =

- 16.

OTROS COMANDOS

• DISP este comando sirve para imprimir en pantalla alguna información como textos o datos.

» horner(pd_poli,-3)

ans =

- 16. » disp(horner(pd_poli,-3))

- 16.

» disp('Ingeniería Eléctrica')

Ingeniería Eléctrica

VECTORES Y MATRICES

» A=[1 3 5; 6 9 2; 4 8 7]

A =

1 3 5

6 9 2

4 8 7

» det(A)

ans =

5

» A^2+3*A

ans =

42 79 61

86 142 68

92 164 106

Vectores fila:Los elementos de una misma fila están separados por blancos o comas (,).

» vf =[2 3 4]

Vectores columna:Los elementos de una misma columna están separados por intro o por caracteres

punto y coma (;).

» vc =[2;3;4;7;9;8]

La dimensión de un vector se obtiene por el comando length (nombre del vector)

VECTORES

VECTOR RESULTADO

Vector Fila

» f = [3 5 1 7]

O bien,

» f = [3,5,1,7]

f =

3 5 1 7

Vector Columna

» c = [3;5;1;7]

O bien,

» c = [3

5

1

7]

c =

3

5

1

7

OPERACIONES ENTRE VECTORES

v+w adición o suma

v-w sustracción o resta

v.*w multiplicación cada elemento de v por el correspondiente de w

v./w divide cada elemento de v por el correspondiente de w

v.^w potenciación cada componente de v esta elevado al correspondiente de w

OPERACIONES ENTRE VECTORES

COMANDO DE LA FUNCIÓN DESCRIPCIÓN

sum(v) suma

prod(v) Producto

max(v) Valor máximo de las componentes de un vector , lo mismo para min(v) valor mínimo

GENERACIÓN DE VECTORES

• Especificando el incremento de sus componentesX=XI:ΔX:XF;

• Especificando su dimensión linspace(a,b,n) si seomite n toma 100 por defecto; el incremento es k=(b-a)/(n-1)

• Con componentes logarítmicamente espaciadaslogspace(a,b,n) genera un vector fila de n puntoslogarítmicamente espaciados entre 10a y 10b. Si se omite elvalor de n se toma 50

Vectores con elementos igualmente espaciados:

X= XI:ΔX:XF

XI = Límite Inferior

XF = Límite Superior

ΔX = Paso o Incremento (espacio entre elementos)

» x = 1:0.5:3

x =

1.0000 1.5000 2.0000 2.5000 3.0000

Vectores con N elementos igualmente espaciados:

X= linspace(XI,XF,N)

XI = Límite Inferior

XF = Límite Superior

N= Número de elementos de X

» x = linspace(0,1,5)

x =

0 0.2500 0.5000 0.7500 1.0000

Vectores fila de Ceros de tamaño n

Vectores columna de Ceros de tamaño n

» vc = zeros(4,1)

vc =

0

0

0

0

» vf = zeros(1,4)

vf =

0 0 0 0

MATRICES

La definición de una matriz se hace por filas.

• Una fila se separa de la siguiente por medio de punto y coma o por medio decambio de línea.

• Los elementos de una misma fila se separan por medio de espacios en blanco o pormedio de comas.

» A=[1 2 3; 4 5 6; 7 8 9]

A =

1 2 3

4 5 6

7 8 9

MATRICES

» M = [2 3 4; 7 8 9;11 12 13; -1 0 1]

» M = [2,3,4; 7,8,9 ; 11,12,13 ; -1,0,1]

» M = [2 3 4

7 8 9

11 12 13

-1 0 1]

M =

2 3 4

7 8 9

11 12 13

-1 0 1

TIPOS ESPECIALES DE MATRICES EJEMPLO

Matriz de UNOS de mxn: ones(m,n) » ones(2,3)

ans =

1 1 1

1 1 1

Matriz de CEROS de mxn: zeros(m,n) » zeros(3,2)

ans =

0 0

0 0

0 0

Matriz Aleatoria de mxn: rand(m,n) » rand(2,2)

ans =

0.9501 0.4860

0.6068 0.0185

Matriz Identidad de mxm: eye(m) » eye(3,3)

ans =

1 0 0

0 1 0

0 0 1

NOTACIÓN DE ELEMENTOS

mnmm

n

n

aaa

aaa

aaa

A

21

22221

11211

A(i,j): Denota el elemento de la matriz A ubicado en la fila i y en lacolumna j .

A(i,:): Denota todos los elementos de la fila i de la matriz A .

A(:,j): Denota todos los elementos de la columna j de la matriz A.

A(r:s,p:q): Denota la submatriz de A cuyos elementos estánentre las filas r y s y entre las columnas p y q .

» A=[1 3 5; 6 9 2; 4 8 7]

A =

1 3 5

6 9 2

4 8 7

» A(2,3)

ans =

2

» A(3,2)

ans =

8

» A(2,:)

ans =

6 9 2

» A=[1 3 5; 6 9 2; 4 8 7]

A =

1 3 5

6 9 2

4 8 7

» A(:,2)

ans =

3

9

8

» A(1:2,2:3)

ans =

3 5

9 2

OTROS COMANDOS

• round(x) redondea hacia el entero más próximo.

• fix(x) redondea hacia el entero más próximo a 0

• ceil(x) valor entero más próximo hacia +∞

• floor(x) valor entero más próximo hacia -∞

OPERACIONES ENTRE MATRICES

A+B Adición o suma (las matrices deben ser del mismo tamaño)

A-B Sustracción o resta (las matrices deben ser del mismo tamaño)

A*B Multiplicación.

k*A Multiplicación por un escalar (k es el escalar).

A/B División.

A.*B Multiplicación elemento a elemento.

A./B Divide cada elemento de A por el correspondiente de B

A.^n Potenciación elemento a elemnto (n es la potencia, un escalar).

A’ Matriz Transpuesta de A.

FUNCIONES CON MATRICES

La mayoría de las funciones de SCILAB utilizadas para número reales, pueden aplicar a matrices.

» M =sin([0.2 1.4 0.5])

M =

0.1987 0.9854 0.4794

» M =[sin(0.2),sin(1.4),sin(0.5)]

M =

0.1987 0.9854 0.4794

ALGUNAS FUNCIONES DE MATRICES

FUNCIÓN DESCRIPCIÓN

» det(A) Determinante de A

» inv(A) Inversa de A

» min (A) Fila de A que contiene el mínimo elemento de toda la matriz

» max(A) Fila de A que contiene el máximo elemento de toda la matriz

» sum(A) Vector fila de la suma de cada columna de la matriz.

» [P,Q]=eig(A) P es la matriz con columnas de vectores propios.

Q es la matriz diagonal con valores propios de la matriz A.

» svd(A) Descomposición en valores singulares.

»

[M,N]=size(A)

Tamaño de la Matriz A (M es número de filas y N el de columnas)

» lengt(V) Longitud de un Vector.

nmnmnn

mm

mm

CXaXaXa

CXaXaXa

CXaXaXa

2212

22222121

11212112

mmmnmm

n

n

C

C

C

X

X

X

aaa

aaa

aaa

2

1

2

1

21

22221

11211

CXA

CAX 1

MATRICES APLICADAS A SISTEMA DE ECUACIONES

Solucionar el sistema de ecuaciones

52

1032

1234

321

321

321

XXX

XXX

XXX

5

10

12

211

132

134

3

2

1

X

X

X

» A =[4 3 -1;2 -3 -1;1 1 -2];

» C =[12;-10;-5];

» X = inv(A)*C

X =

2

3

5

5

3

2

3

2

1

X

X

X

COMANDOS DE AYUDA

• help

• dir

• diary

• lookfor