Trabajo Práctico 2 Algoritmos Con Scilab

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 4

Trabajo Práctico 2: Algoritmos con Scilab FAIN - UNCOMA

Trabajo Práctico 2: Algoritmos con Scilab

Ejercicio 1: Investigue lo que realizan en Scilab las siguientes instrucciones: help, //, whos, clear, close,
size, format, fsolve, intd, cond, spec, derivative.

Ejercicio 2: Realice las siguientes operaciones utilizando funciones apropiadas de Scilab:


p
(a) 52 − 213 − 32 + (2 × 2)2 =
(b) sin(π/6) − arctan(0.5) =
(c) ln(3 + 51 ) − e2 =

Nota: En Scilab pueden recuperarse instrucciones ejecutadas anteriormente pulsando la flecha dirigida hacia
arriba, lo que evitará la escritura reiterada de una misma instrucción.

Ejercicio 3: Sea la función


sin(2x)
y=
x(x + 1)

Halle el valor numérico de y, para x = −4, x = −π/8, x = 2/4, x = π/2 y x = 9π/5. Saque conclusiones
sobre el dominio de la función. Se podrán calcular los valores de y correspondientes a x = 0 y a x = −1? Intente
calcularlos y justifique su respuesta.

Ejercicio 4: Los siguientes ejemplos definen diferentes tipos de arreglos. Pruebe y saque conclusiones:
(a) [1 2 3 -4]
(b) [1 2 3 -4]’
(c) -2.5:0.5:1
(d) (-2.5:0.5:1)’
(e) [-3:2:4]
Nota: Cuando las operaciones aritméticas +, −, ∗ y / se utilizan entre matrices (donde un vector columna se
puede interpretar como una matriz de n × 1), debe tenerse en cuenta la compatibilidad de las dimensiones de las
mismas, para que tales operaciones tengan sentido. Se presentan a continuación las operaciones correspondientes
a la multiplicación, división y potenciación elemento a elemento. De esta manera, dadas dos matrices A con
elementos Aij y B con elementos Bij se tiene que
(a) A.*B da como resultado una matriz C cuyos elementos son Cij = Aij · Bij

(b) A./B da como resultado una matriz D cuyos elementos son Dij = Aij /Bij
(c) A.^n resulta ser otra matriz cuyos elementos son Anij

Ejercicio 5: Considere los arreglos


 
 2
x= −0.5 7 2 y z =  −1 
3

Investigue qué realizan las siguientes operaciones:

1 Métodos Computacionales en Ingenierı́a I - 2012


http://pedco.uncoma.edu.ar
Trabajo Práctico 2: Algoritmos con Scilab FAIN - UNCOMA

(a) 2*x (g) x+5*z


(b) y = x-1 (h) y-z’/3
(c) x.*y (i) v = [x,y]

(d) x./y (j) v(2:5)


(e) y.^2 (k) v(5:6)+(z(1:2))’
(f) x’+5*z (l) w = [x;y]

Ejercicio 6: Un polinomio se puede definir de dos maneras: por sus coefientes o por sus raı́ces. Es necesario
además indicar la variable simbólica para el polinomio. Investigar las intrucciones:
(a) p = poly([2 3 5 7], ’x’, ’coeff’)
(b) q = poly([2 3 5], ’x’, ’roots’)
(c) roots(p)
(d) c = coeff(q)

Ejercicio 7: Los siguientes ejemplos definen diferentes tipos de matrices. Pruebe y saque conclusiones:
(a) A = [1 2 3;4 5 6;7 8 9]
(b) B = A’
(c) C = [-3.2,5,7.4,6;4,17,-1.3,2.1;5.9,-6,0,4.5]
(d) mat=C’

(e) C(1:2,2:4) (i) ones(2,3)


(f) C(:,3) (j) v = diag(A)
(g) C(2,:) (k) D = diag(v,1)
(h) zeros(5,2) (l) E = diag(v,-1)

(m) F = diag(5*ones(3,1),0)+diag(ones(2,1),-1)+diag(-3*ones(2,1),1)

Ejercicio 8: Los siguientes comandos ejemplifican algunas de las posibilidades de manipulación de vectores que
ofrece Scilab. Trate de deducir que realiza en cada paso.
m = 5;
n = 4*m+1;
x = linspace(0,1,n);
y = zeros(1,n);
a = x(1:m+1);
y(1:m+1) = sin(2*%pi*a);
y(2*m+1:-1:m+2) = y(1:m);
y(2*m+2:n) = -y(2:2*m);

Ejercicio 9: Utilice los vectores x e y del punto anterior y grafı́quelos con el comando plot(x,y). A continuación
grafique la siguiente función en el intervalo [0, 2]
 6
x+1
f (x) = · (cos(x) + 3)
x2 + x + 1
Gráficas: Para realizar un gráfico con Scilab se utiliza el comando plot que tiene la sintaxis plot(x,y), donde
x es un vector fila que contiene los valores del eje x con y como la función a graficar y = f (x). Analice las
siguientes lineas:

2 Métodos Computacionales en Ingenierı́a I - 2012


http://pedco.uncoma.edu.ar
Trabajo Práctico 2: Algoritmos con Scilab FAIN - UNCOMA

-->clf // borrar grafica anterior


-->t=0:1:10; // valores del eje x (tiempo)
-->x=1.5*t+1.8; // ecuacion de una recta
-->y=0.08*t^2; // ecuacion de una parabola
-->plot(t,x,’r-’,t,y,’g-.’) // graficar las dos curvas la primera roja con linea solida (r-)
\\ y la segunda verde con linea solida (g-)
-->xgrid // poner rejilla
-->xtitle(’GRAFICA DE UNA RECTA Y UNA PARABOLA’,’SEGUNDOS’,’LONGITUD’)
Para dibujar varias gráficas en la misma ventana se usa el comando subplot que permite dividir la ventana
en varias subventanas con sintaxis subplot(mnq) donde m es el número de filas, n el de columnas y q el de la
subgráfica. A modo de ejemplo, analizar las siguientes lineas
->clf
-->x=[0:0.1:10];
-->subplot(221) // primera grafica
-->y1=2*x+1;
-->plot(x,y1)
-->subplot(222) // segunda grafica
-->y2=0.2*x^2;
-->plot(x,y2)
-->subplot(223) // tercera grafica
-->y3=15*sin(x);
-->plot(x,y3)
-->subplot(224) // cuarta grafica
-->y4=15*cos(x);
-->plot(x,y4)
-->xgrid(4)
Otro comando para graficar es fplot2d(x,f) donde x es un vector y f es el nombre de una función de Scilab,
el cual dibuja la curva que pasa por los puntos (xi, f (xi)). La función debe responder a la forma [y] = f (x),
como se muestra a continuación:
x=linspace(-%pi,%pi);
exec("gf1.sci",-1)
fplot2d(x,gf1)
//o directamente poniendo
fplot2d(-%pi:0.1:%pi,gf1)
Ejercicio 10: Si A es una matriz cuadrada e invertible, el sistema Ax = b tiene, teóricamente, una única
solución y se puede resolver por una de las dos órdenes siguientes. Investigue para un mismo sistema las
siguientes instrucciones:
(a) x1 = inv(A)*b
(b) x2 = A\b
(c) [x]=linsolve(A,b)

Ejercicio 11: En Scilab hay dos tipos de programas: los scripts y las funciones. Un script es simplemente una
secuencia de órdenes de Scilab. No tiene argumentos de entrada ni de salida. En cambio una función si los tiene.
Por otro lado, las variables definidas en un script son globales, en cambio en una función, las variables definidas
dentro de la misma son variables locales.

Scripts: Cree entonces el archivo prueba.sce con el siguiente contenido y ejecútelo

n = 100;
A = rand(n,n);
x0 = rand(n,1);
b = A*x0;
x = A\b;

3 Métodos Computacionales en Ingenierı́a I - 2012


http://pedco.uncoma.edu.ar
Trabajo Práctico 2: Algoritmos con Scilab FAIN - UNCOMA

Funciones: Es posible definir nuevas funciones Scilab. La diferencia entre un script y una función es que esta
última tiene una ”interfase”de comunicación con el exterior mediante argumentos de entrada y de salida. Arme
el archivo misfunc.sci como sigue
function [x, y] = polarCart(r, t)
// Conversion de coordenadas polares a cartesianas.
x = r*cos(t) y = r*sin(t)
endfunction
//--------------------------------------------------------
function [x, y] = polarCartGr(r, t)
// Conversion de coordenadas polares a cartesianas,
// el angulo esta dado en grados.
[x, y] = polarCart(r, t*%pi/180)
endfunction
//--------------------------------------------------------
function fx = f(x)
fx = x(1)^2 + x(2)^2
endfunction
Una vez cargado el archivo, las funciones se pueden utilizar como las otras funciones de Scilab. Pruebe las
siguientes instrucciones y saque conclusiones:

[x1, y1] = polarCart(2, 0.7854)


[u, v] = polarCartGr(3, 30)

valor = f([3; 4])


x = [5; 6], res = f(x)

Ejercicio 12: Implementar en SCILAB y ejecutar el código para los siguientes problemas
1. Imprimir la tabla de multiplicar para un número natural N ingresado por teclado. Implementarlo con
estructuras de Repetir Hasta y Repetir Mientras.
2. Calcular el factorial de un número natural N ingresado por teclado.
3. Calcular la sumatoria de los números naturales impares menores que un número natural ingresado por
teclado.
4. Obtener el mayor y el menor de un conjunto de N números a ingresar por teclado.
5. Obtener el promedio de un conjunto de N números a ingresar por teclado.
6. Calcular el valor de la función Exp(x) utilizando el desarrollo en serie de Taylor centrado en x0 = 0.
Considerar que el usuario del programa ingresa el valor de x en el cual le interesa evaluar la función y el
número N de términos a incluir.
7. Realizar un algoritmo que calcule el determinante de una matriz de 3x3 mediante la regla de Sarrus.
8. Realizar un algoritmo que calcule el producto de una matriz por su traza.
9. Realizar un algoritmo que calcule el producto escalar entre dos vectores.

4 Métodos Computacionales en Ingenierı́a I - 2012


http://pedco.uncoma.edu.ar

También podría gustarte