Documente Academic
Documente Profesional
Documente Cultură
Para la resolución “rápida” de sistemas de ecuaciones lineales Scilab dispone del “operador” \ :
-->A\b
Calcula la solución del sistema lineal de ecuaciones Ax=b. Para recordar la sintaxis, debe
asimilarse el operador \ con una “división por la izquierda”, es deir A\b es como A-1b.
Este operador debe ser usado con precaución: Si la matriz A es singular o mal condicionada, la
instrucción A\b emite un mensaje de advertencia y devuelve una solución del correspondiente
problema de mínimos cuadrados.
-->pinv(A)*b
Si se desean obtener, además, los vectores propios, hay que llamar a la función spec de la
siguiente forma:
--> [x,v]=spec(A)
Mediante la cual se obtienen: v: matriz cuadrada diagonal con los autovalores y x : matriz
cuadrada invertible cuya i-ésima columna es un vector propio asociado al i-esimo autovalor
EJEMPLO
// ejem
B=-b
A=[1 -1 1; 2 1 0; 0 1 -2]
b=[3 -2 -1 ]
B=[-3 2 1]
linsolve(A,B)
ans =
0.75
-3.5
-1.25
6. POLINOMIOS:
un polinomio se puede definir de dos maneras por sus coeficientes o por sus raíces. Es
necesario además, indicar la variable simbólica del polinomio. La orden
La doble comilla “ se puede reemplazar por la comilla sencilla '. Más aún, se puede reemplazar
'coeff' por 'c' y 'roots' por 'r'. Es lícito escribir
La función roots calcula las raíces de un polinomio, sean éstas reales o complejas. Por ejemplo
roots(p)
Con polinomios se pueden hacer sumas, multiplicaciones, restas, multiplicación por un
número. Deben ser polinomios en la misma variable. Por ejemplo:
v = p + q + p*q – 3.1*q
r = p^3
k = coeff(q,2)
si se utiliza simplemente:
c = coeff(q)
se obtendrán todos los coeficientes. La variable c será un vector (ver sección siguiente sobre
matrices y vectores).
horner(p,t)
Por ejemplo, horner(q,1) dará como resultado -8. Si q es un polinomio, es lícito utilizar la orden
r = horner(p.q)
EJEMPLO
// ejem:
--> a=[1,2,3];
p =
2 3
-6 +11x -6x +x
--> roots(p)
ans =
3.
2.
1.
r =
1 +2x +3x
--> k=horner(r,2)
k =
17.
EJEMPLO
// ejem:
-->P=poly([5,0,3,-8,2],"x","coeff"), Q=poly([-3,2,1],"x","coeff")
P =
2 3 4
5 + 3x - 8x + 2x
Q =
2
- 3 + 2x + x
-->-3*P+5*Q
ans =
2 3 4
- 30 + 10x - 4x + 24x - 6x
-->P*Q
ans =
2 3 4 5 6
- 15 + 10x - 4x + 30x - 19x - 4x + 2x
-->Q^5
ans =
2 3 4 5 6 7 8 9 10
- 243 + 810x - 675x - 360x + 570x + 92x - 190x - 40x + 25x + 10x + x
-->[R,C]=pdiv(P,Q)
C =
2
33 - 12x + 2x
R =
104 - 102x
-->Q*C+R
ans =
2 3 4
5 + 3x - 8x + 2x
EJERCICIO
a) Calcular f(9)
--> p=[35.88,-75.95,-17.015,40.59,-12.1,1];
--> f=poly(p, "x", "coeff")
f =
2 3 4 5
--> horner(f,9)
ans =
7225.125
--> x=[-1.5:0.1:6.7];
--> y=horner(f,x);
--> plot2d(x,y)
--> roots(f)
ans =
6.5515008
3.7686049
2.5288706
-1.2200014
0.4710251
7. RESOLUCION DE ECUACIONES NO LINEALES:
-->x=fsolve(x0, fun)
-->[x,va]=fsolve(x0, fun)
Donde
EJEMPLO
// ejem:
--> fsolve(0,f)
ans =
-0.3300595
EJEMPLO
f(x)=
x12+x22-2x2=0
X2+y2-2y=0
// ejem:
--> deff("[y]=g(x)","y=[x(1)^3+x(2)^3-3,x(1)^2+x(2)^2-2*x(2)]");
--> [x,v]=fsolve([1,1],g)
v =
0. 0.
x =
0.9587068 1.2843962
-->fsolve(x0,fun,jacob)
Donde:
Estas notas pretenden expones algunos de los comandos más básicos de que
dispone Scilab para generar gráficos. En principio se exponen,
exclusivamente, los co mandos de dibujo y po steriormente se explicará cómo
modificar los distintos( y numerosos) parám etr os que determinan sus
características .
plot2d
(*)Para dibujar una única curva, es diferente que los vectores x e y sean filas
columnas sin embargo , cuando se desean dibujar varias curvas juntas no lo es. Por
ellos, usaremos siempre vectores -columna.
(**) Obsérvese que, puesto que se calculan todas las ordenadas “de una sola vez”,
es preciso “vectorizar” la escritura de la formula, para que, al ser el argumento x
un vector, la formula devuelva un vector de las mismas dimensiones calculando
elemento a elemento.
-->pl ot2d(y)
Dibuja la curva que pasa por los puntos
(1,y1)…….(n,yn)
Ejemplo:
x=linspace( -5,5)’;
y=2*sin(x/2).*cos(3*x);
plot2d(y)
-->pl ot2d(x,y)
Observaciones:
-->polarplot(theta,rho)
siendo theta y rho vectores de la misma
dimensió n, dibuja la curva que pasa por los
puntos de coordenadas polares (theta_1,
rho_1)…… ..(theta_n, rho_n)
Ejemplo: ρ = sen(2θ)cos(3θ)
theta=linspace(0,2*%pi)’;
rho=sin(2*theta).*cos(3*theta);
polarplot(theta,rho)
Esta funció n se puede utilizar también con o tros argumentos, como plot2d y su funcionamiento es
similar.
-->plot2d2(x,y)
es similar a plot2d, pero dibuja una función constante a
trozos(escalonada)
-->plot2d3(x,y)
es similar a plot2d, pero dibuja función utilizando líneas
verticales
-->plod2d4(x,y)
es similar a plot, pero dibuja una curva utilizando puntas de
flecha(por ejemplo para señala la dirección de una
trayectoria)
fplot2d
-->flpot2d
donde x es un vector y f es el nombre de una función Scilab,
dibuja la curva que pasa por los puntos (xi,f(xi)).La función
debe responder a la forma [y]=f(x).
Ejemplo:
x=linspace(-%pi,%pi);
exec(“gf1.sci”,-1)
fplot2d(x,gf1)
FICHERO gf1.sci
Param3d
Paramfplot2d: animaciones
--> paramfplot2d(f,x,t)
donde f es el nombre de una función Scilab [y]=f(x,t), y x y t
son vectores, dibuja una animación de la función f(x,t), es
decir, dibuja sucesivamente f(x,t1), f(x,t2),…… f(x,tn).
Ejemplo:
X=linspace(-2*%pi,2*%pi);
t=linspace(-1,1,60);
paramfplot2d(gfun2,x,t)
FICHERO gfun2.sci
Function[y]=gfun2(x,t)
y=zeros(x);
b=-%pi<=x & x<=%pi;
y(b)=-t*sin(x(b));
endfunction
Param3d1
--> param3d1(x,y,z)
es similar a param3d, pero permite dibujar varias
curvas,Aquí x, y , z son tres matrices de la misma
dimensión cuyas columnas determinan las distintas
curvas.
--> param3d1(x,y,list(z,colors))
donde colors es un vector de números enteros, dibuja la
i-esima curva del color definido por el i-esimo elemento
de colors.
Ejemplo:
t=linspace(0,5*%pi)';
x=[zeros(t),12*sin(2*t)];
y=[10*cos(t),12*cos(2*t)];
z=[10*sin(t),12*sin(t)];
param3d1(x,y,list(z,[6,2]))
EJERCICIOS DE POLINOMIOS:
a) Representación grafica
c) Interpolación para 75
1) en la siguiente tabla se tiene los datos correspondientes a las ventas de una empresa X
desde el año 2012 a 2018. Haga una representación grafica simple de la tendencia.
Año 2012 2013 2014 2015 2016 2017 2018
Ventas(millones) 8 12 20 22 18 24 27
Codificación:
2) Dada la función y=3x3-26x+6. Dibujar dicha f(x) asi como su primera y segunda derivada, en
el intervalo -2<=x<=4. Todas las funciones deben representarse juntasen el mismo grafico.
x=linspace(-2,4)';
y=3*x^3-26*x+6;
z=9*x^2-26;
w=18*x;
plot2d(x,y), plot2d(x,z), plot2d(x,w)
4) Para el ejercicio 1 presente una gráfica de barras verticales, otra de barras horizontales y
una gráfica de líneas verticales(grafico detallado).
5) En la siguiente tabla se muestra las notas (en letras:A,B,C,D y E) obtenidas por los alumnos
de una promoción (69)
Utilizar estos datos para crear un gráfico circular.
Notas A B C D E
Numero de 11 18 26 9 5
alumnos
5.1)
x=[11 18 26 9 5], sp=[0 0 0 0 0], txt=["A","B","C","D","E"]
scf(0);
pie([11 18 26 9 5],[0 0 0 0 0],["A","B","C","D","E"]);
5.2)
x=[11 18 26 9 5]
pie(x), legend("A","B","C","D","E")
6) Los siguientes datos representan las notas(sobre 100) obtenidos por los alumnos de una
promoción (30);semestre 2018-2:
58,73,73,53,50,48,56,3,73,69,69,63,74,82,84,91,93,89,91,80,59,69,56,64,63,66,64,74,63,69
Presentar un histograma que represente dichos datos por defecto(tamaño 10).
x=[58 73 73 53 50 48 56 73 73 69 69 63 74 82 84 91 93 89 91 80 59 69 56 64 63 66 64 74 63 69]
histplot(30, x, style=10)