Métodos Numéricos utilizando Scilab

Anuncio
UNIVERSIDAD NACIONAL DE TUCUMÁN
Facultad de Ciencias Exactas y Tecnología
Departamento de Electricidad, Electrónica y Computación
Carrera de Ingeniería en Computación
Métodos Numéricos (1)
Métodos Numéricos utilizando
Scilab
Para estudiantes de ingenierías,
ciencias y matemáticas
Docente: Ing. Martín Goñi
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
Métodos Numéricos (2)
2
Scilab (1)
Descripción de un
problema de ingeniería


Aproximación con un
modelo matemático

Formulación
Scientific Computing Laboratory
INRIA (Institut National de Recherche en
Informatique et en Automatique)
Sitio oficial: http://www.scilab.org
Métodos numéricos y analíticos
Soluciones
Aplicaciones
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
3
Scilab (2)



Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
4
Entorno (1)
Sin costo.
Disponible el código fuente.
Amplia variedad de plataformas.
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
5
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
6
1
Entorno (2)







Tipos de datos (1)
chdir – cambia el directorio actual.
clc – limpia la ventana de comandos.
clf – limpia la venta de gráficos.
interrupt – interrumpe la ejecución.
resume – continua la ejecución.
abort – finaliza la ejecución.
help – ayuda.




Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
7




53 bits mantisa (16 cifras decimales equivalentes)
11 bits exponente.
No
necesitamos declarar
previamente a su uso.
El componente básico es una matriz.
Matriz: (m x n) - un conjunto de números
ordenados en filas (m) y columnas (n).
Escalar: matriz de 1 x 1.
Vector fila: matriz de 1 x n
Vector columna: matriz de m x 1
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
-->%pi
%pi =
3.1415927
-->size(%pi)
ans =
! 1. 1. !
9
la
8
-->a=[1 2 3; 4 5 6]
a =
! 1. 2. 3. !
! 4. 5. 6. !
-->size(a)
ans =
! 2. 3. !
a=
[
1 2 3
4 5 6
]
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
Tipos de datos (4)
Scilab
maneja
automáticamente.
variables
Tipos de datos (3)
pi= 3. 1416

las
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
Tipos de datos (2)

Doble precisión (8 bytes).
10
Nombres de variables
aritmética
compleja



-->x=5+2*%i
x =

Deben comenzar con una letra.
Longitud máxima: 24 caracteres.
Sensibles a mayúsculas y minúsculas.
Ej: A, BCD, C58, velocidad, tiempo1, etc.
5. + 2.i
-->y=5*x+3
y =
28. + 10.i
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
11
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
12
2
Operadores matemáticos para
escalares
Símbolo
Operación
Scilab
Operadores matemáticos para
vectores (elemento a elemento)
Ej
^
Potenciación
a^b
2 ^ 4 = 16
*
Multiplicación
a*b
3 * 5 = 15
/
División
a/b
6/2=3
Símbolo
Operación
Scilab
Ej
+
Suma vector – escalar
A+b
[4 6] + 3 = [7 9]
*
Resta vector – escalar
A-b
[8 3] – 6 = [2 -3]
+
Suma de vectores
A+B
[4 6] + [8 3] = [12 9]
Resta de vectores
A-B
[4 6] - [8 3] = [-4 3]
Multiplicación de vectores
A .* B
[3 6] .* [2 -3] = [6 -18]
\
División izquierda
a\b
4\8=2
./
División de vectores
A ./ B
[3 7] ./ [8 5] = [3/8 7/5] = [0.375 1.4]
+
Suma
a+b
2+6=8
.\
División izquierda de vectores
A .\ B
[3 7] .\ [8 5] = [3\8 7\5] = [2.667 0.7143]
-
Resta
a-b
7–4=3
.^
Potenciación de vectores
A .^ B
[4 2] .^ 3 = [4^3 2^3] = [64 8]
3 .^ [2 5] = [3^2 3^5] = [9 243]
[5 3] .^ [2 4] = [5^2 3^4] = [25 81]
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
13
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
Operadores matemáticos para
matrices
Operación
Scilab
Ej
+
Suma
A+B
[4 6 ; 8 5] + [2 3 ; 9 1] = [6 9 ; 17 6]
-
Resta
A-b
[4 6 ; 8 5] – [2 3 ; 9 1] = [2 3 ; -1 4]
*
Multiplicación
A*B
[4 6 ; 8 5] * [2 3 ; 9 1] = [62 18 ; 61 29]
/
División
A/B
[4 6 ; 8 5] / [2 3 ; 9 1] =
[2 0 ; 1.481 0.56]
\
División izquierda
A\B
[4 6 ; 8 5] \ [2 3 ; 9 1] =
[1.57 -0.32 ; -0.71 0.71]
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
a = 1

3
5
F = 2

0
2

1
15
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
16
Operador dos puntos (2)
5 

1 
1
4 
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
a +b = 3 
 
7 
11
a. b = 1 2  = 2 

  
3 4 12
5  6 30
Crea una nueva matriz a partir de una
existente.
C = [1,2,5;-1,0,1;3,2,-1;0,1,4]
F = C(:,2:3) = [2,5;0,1;2,-1;1,4]
2 5 

0 1 
2 1
1 4 
b = 2
 
4
6
Pero a * b no esta definido (multiplicación inconsistente)
porque las dimensiones son incorrectas. Necesita utilizar .*
Operador dos puntos (1)
C = 1

1
3

0
14
Ejemplo
Símbolo

.*

Nombre_variable = inicio : paso : fin
tiempo = 0.0 : 0.5 : 2.5
tiempo = [0.0,0.5,1.0,1.5,2.0,2.5]
tiempo = 10 : -1 : 2
tiempo = [10,9,8,7,6,5,4,3,2]
17
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
18
3
Matrices especiales
Gráficos (1)

1 0 0
eye(3)  0 1 0
0 0 1
1 1 1
ones(3)  1 1 1
1 1 1
0 0 
zeros(3,2)  0 0


0 0
--> x = -2 : 0.01 : 3;
--> y = sin(x);
--> plot2d(x, y);

1 1 1 1
ones(2,4)  

1 1 1 1
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán

19

21




Extensión (.sce).
Es un archivo ASCII que contiene una secuencia de
instrucciones.
No tienen parámetros de entrada ni de salida.
Las variables son compartidas como el área de
trabajo.
exec (nombre del script).
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
22
Programas (3)
Scripts

Se puede cargar y guardar código en un
archivo de texto.
Existen dos tipos: scripts, funciones.
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
Programas (2)

20
Programas (1)


fplot2d: obtiene la gráfica de una función
definida por el usuario.
Exportar gráfico.
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
Gráficos (2)
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
plot2d: grafica a partir de vectores.
23
Funciones




Extensión (.sci).
Pueden tener parámetros de entrada y de salida.
Tiene una o más funciones.
Las variables son locales a la función.
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
24
4
Programas (4)
Archivos de datos
Ejemplo de un script
Ejemplo de una función
A=[3 4 12; 8 9 7];
B=[30 14 2; 88 79 47];
disp(A+B)
function [y] = cuadrado(x)
y = x ^ 2;
endfunction
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán

--> a=eye(2,2);b=ones(a);
--> save('val.dat',a,b);
--> clear a
--> clear b
-->load (‘val.dat')
25
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
Entradas interactivas



nombre = input(‘Ingrese su nombre: ','s');
edad = input(‘Ingrese su edad: ');
email = input(‘Ingrese su email: ','s');
27

28
Estructuras de programas
El formato utilizado no afecta a la precisión
interna, sólo a la forma en la que se presentan
al usuario los resultados.
format (tipo, longitud)

Se imprime en pantalla automáticamente (a
menos que se coloque ;)
Utilice disp para imprimir una variable en
pantalla.
disp (3 * 6)
disp(‘temperatura=’)
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
Formatos

26
Salidas
La función input permite solicitar al usuario
valores directamente desde la ventana de
comandos.
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
Permite cargar o guarda los valores de las
variables.
tipo:




Operadores de relación y lógicos.
Secuencia
Selección
Iteración
‘e’: notación científica / ‘v’: formato variable


longitud: número de dígitos
Ej: format('v',10);
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
29
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
30
5
Operadores de relación
Operadores lógicos
Scilab
Interpretación
Scilab
Interpretación
==
es igual a
&
and
~= <>
no es igual a
|
or
<
es menor que
~
not
<=
es menor o igual a
>
es mayor que
>=
Es mayor o igual a
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
Constantes booleanas: %f, %t
31
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
Secuencia

32
Selección (1)
Las
instrucciones
son
ejecutadas
secuencialmente desde el inicio hasta el final.
a = 4 + 3 ^ 2;
b = sqrt(a);
c = a + b;

if
if (condición)
sentencias
end
if (x < = -1.0 | x > = 1.0)
y=0
end
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
33
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
Selección (2)

Repetición (1)
if – else
if (condición)
sentencias
else
sentencias
end
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
34

for
for indice = inicio : paso : fin
sentencias
end
for i = 1 : 1 : m
for j = 1 : 1 : n
a(i,j) = (i + 1) ^ 2 * sin(0.2 * j * pi);
end
end
35
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
36
6
Repetición (2)

Bibliografía
while
while condición
sentencias
end


i=1
while i <= m
j=1
while j <= n
a(i,j) = (i + 1) ^ 2 * sin(0.2 * j * pi);
end
end
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán

37
Héctor M. Mora Escobar - Introducción a
SCILAB - Departamento de Matemáticas - Univ.
Nacional de Colombia - 2002
Scilab Group - Introduction to Scilab - INRIA
Meta2 Project/ENPC Cergrene
Steven C. Chapra Raymond P. Canale Métodos Numéricos para ingenieros - Mc Graw
Hill
Ing. Martín Goñi - Métodos Númericos - Ingeniería en Computación - Universidad Nacional de Tucumán
38
7
Descargar