-->help poly
// (1) Especificando un polinomio
// el primer argumento es un vector con las raíces del polinomio
// el segundo argumento es la etiqueta que desgna el nombre de la variable independiente
// el tercer argument especifica que se definie el polinomio dando sus raíces
-->poly([1,2],'x',"r")
ans =
2
2 - 3x + x
// el primer argumento es un vector con los coeficientes del polinomio
// el segundo argumento es la etiqueta que desgna el nombre de la variable independiente
// el tercer argument especifica que se definie el polinomio dando el valor de sus coeficientes
-->poly([4,5,6],'x',"c")
ans =
2
4 + 5x + 6x
// ( 2) Evaluación del valor de un polinomio para un valor determinado de la variable
// mediante la regla de HORNER
-->P=poly([4,5,6],'x',"c")
P =
2
4 + 5x + 6x
// ¿ P(1) ?
-->horner(P,1)
ans =
15.
Mostrando entradas con la etiqueta SciLab. Mostrar todas las entradas
Mostrando entradas con la etiqueta SciLab. Mostrar todas las entradas
miércoles, 2 de agosto de 2023
Polinomios con SciLab
Obtener ayuda al trabajar con SciLab
Funciones para obtener ayuda de los comandos y funciones predefinidas
Ejemplos
--> apropos triu
--> help triu
--> help lu
Ejemplos
--> apropos triu
--> help triu
--> help lu
Visualización de variables activas y borrado de las mismas en SciLab
Visualizar las variables activas
--> who
Borrar una cierta variable x
--> clear x
--> who
Borrar una cierta variable x
--> clear x
Factorización LU con SciLab
Quereremos resolver el sistema de ecuaciones
$$\left\{\begin{matrix}x+y+z=3\\2x-y+z=2\\x+2y-2z=1\end{matrix}\right.$$
por lo que podemos expresarlo en forma matricial: $AX=b$ siendo $A$ la matriz de los coeficientes del sistema y $b$ la matriz columna de los términos independientes
Vamos a utilizar el método de factorizació de la matriz $A$ como $LU$, de forma que $AX=b \Leftrightarrow LUX=b$, con lo cual ( una vez obtenida la f. LU ) procederemos en dos etapas:
i) $LY=b \Rightarrow Y=L^{-1}\,B$ ( eliminación progresiva )
ii) $UX=Y \Rightarrow X=U^{-1}\,Y$ ( sustitución retrógrada )
Antes que nada, debemos factorizar
Factorización LU
Nota: L es una matriz triangular inferior y U una matriz triangular superior ( E es la matriz de permutación )
-->A
A =
1. 1. 1.
2. - 1. 1.
1. 2. - 2.
-->[L,U,E]=lu(A)
E =
0. 1. 0.
0. 0. 1.
1. 0. 0.
U =
2. - 1. 1.
0. 2.5 - 2.5
0. 0. 2.
L =
1. 0. 0.
0.5 1. 0.
0.5 0.6 1.
Comprobación LU=A ?
-->L*U
ans =
2. - 1. 1.
1. 2. - 2.
1. 1. 1.
Cuidado, se ha utilizado el método de pivotamiento parcial, por lo que el orden de las filas se ha cambiado, de modo que ahora el sistema a resolver es
$$\left\{\begin{matrix}2x-y+z=2\\x+2y-2z=1\\ x+y+z=3\end{matrix}\right.$$ y, por tanto, $$b=\begin{pmatrix}2\\1\\3\end{pmatrix}$$
Procedamos ahora con los dos pasos anunciados ( eliminación progresiva seguida de sustitución retrógrada ):
-->b=[2;1;3]
b =
2.
1.
3.
-->Y=inv(L)*b
Y =
2.
0.
2.
-->X=inv(U)*Y
X =
1.
1.
1.
que es la solución del sistema de ecuaciones
------------------------
Cuidado:
las funciones tril(A) y triu(A) también dan matrices triangulares inferiores y superiores, respectivamente, pero no son las que cumplen A=LU
$$\left\{\begin{matrix}x+y+z=3\\2x-y+z=2\\x+2y-2z=1\end{matrix}\right.$$
por lo que podemos expresarlo en forma matricial: $AX=b$ siendo $A$ la matriz de los coeficientes del sistema y $b$ la matriz columna de los términos independientes
Vamos a utilizar el método de factorizació de la matriz $A$ como $LU$, de forma que $AX=b \Leftrightarrow LUX=b$, con lo cual ( una vez obtenida la f. LU ) procederemos en dos etapas:
i) $LY=b \Rightarrow Y=L^{-1}\,B$ ( eliminación progresiva )
ii) $UX=Y \Rightarrow X=U^{-1}\,Y$ ( sustitución retrógrada )
Antes que nada, debemos factorizar
Factorización LU
Nota: L es una matriz triangular inferior y U una matriz triangular superior ( E es la matriz de permutación )
-->A
A =
1. 1. 1.
2. - 1. 1.
1. 2. - 2.
-->[L,U,E]=lu(A)
E =
0. 1. 0.
0. 0. 1.
1. 0. 0.
U =
2. - 1. 1.
0. 2.5 - 2.5
0. 0. 2.
L =
1. 0. 0.
0.5 1. 0.
0.5 0.6 1.
Comprobación LU=A ?
-->L*U
ans =
2. - 1. 1.
1. 2. - 2.
1. 1. 1.
Cuidado, se ha utilizado el método de pivotamiento parcial, por lo que el orden de las filas se ha cambiado, de modo que ahora el sistema a resolver es
$$\left\{\begin{matrix}2x-y+z=2\\x+2y-2z=1\\ x+y+z=3\end{matrix}\right.$$ y, por tanto, $$b=\begin{pmatrix}2\\1\\3\end{pmatrix}$$
Procedamos ahora con los dos pasos anunciados ( eliminación progresiva seguida de sustitución retrógrada ):
-->b=[2;1;3]
b =
2.
1.
3.
-->Y=inv(L)*b
Y =
2.
0.
2.
-->X=inv(U)*Y
X =
1.
1.
1.
que es la solución del sistema de ecuaciones
------------------------
Cuidado:
las funciones tril(A) y triu(A) también dan matrices triangulares inferiores y superiores, respectivamente, pero no son las que cumplen A=LU
Etiquetas:
análisis numérico,
factorización LU,
SciLab
Factorización QR en SciLab
Factorización QR
Nota: Q es una matriz ortogonal y R una matriz triangular superior
-->A=[1,2;3,4]
A =
1. 2.
3. 4.
-->[Q,R]=qr(A)
R =
- 3.1622777 - 4.4271887
0. - 0.6324555
Q =
- 0.3162278 - 0.9486833
- 0.9486833 0.3162278
-->Q*R
ans =
1. 2.
3. 4.
Nota: Q es una matriz ortogonal y R una matriz triangular superior
-->A=[1,2;3,4]
A =
1. 2.
3. 4.
-->[Q,R]=qr(A)
R =
- 3.1622777 - 4.4271887
0. - 0.6324555
Q =
- 0.3162278 - 0.9486833
- 0.9486833 0.3162278
-->Q*R
ans =
1. 2.
3. 4.
Etiquetas:
análisis numérico,
cálculo con matrices,
factorización QR,
SciLab
Funciones en SciLab
Podemos editar una función en el propio panel de comandos, sin necesidad de almacenarlo en un fichero de texto .sci y cargarlo a continuación. Por ejemplo:
-->function f=cuadxy(x,y)
-->f=x**2+y**2;
-->endfunction
Para hacer actuar la función que acabamos de definir, para calcular, pongamos que 2^3, escribiremos:
-->cuadxy(2,3)
ans =
13.
// Comprobación numérica de
// $\lim_{x \rightarrow 0}\,\dfrac{\sin x}{x}=1$
//
//
// Cargar el fichero ( al que se refiere esta imagen )
// en SciLab desde la consola del programa:
// exec('C:\...\mifuncion.sci')
// y, a continuación, para ejecutar la función invocar
// el nombre de la función con los argumentos de entrada
// y de salida
// Ejemplo con un paso incremental de 0.001
// teclear a continuación de "-->":
// [vi,vd]=limites_i_d(0.001)
//
// Joan Aranes Clua
// 2015
// --------------------------------------------------------------------
// valor avanzado de $\lim_{x \rightarrow 0^{+}}\,\dfrac{\sin x}{x}$
function [vi,vd]=limites_i_d(incremento)
disp("límites por la derecha ( vd ) y por la izquierda (vi)")
vd=0;
incremento_neg=-1*incremento
for i=1:incremento_neg:0.0000001
vd=sin(i)/i;
//disp(vd);
end
//
// valor avanzado de $\lim_{x \rightarrow 0^{-}}\,\dfrac{\sin x}{x}$
//vi=0
for j=-1:incremento:-0.0000001
vi=sin(j)/j;
//disp(vi);
end
endfunction
$\diamond$
-->function f=cuadxy(x,y)
-->f=x**2+y**2;
-->endfunction
Para hacer actuar la función que acabamos de definir, para calcular, pongamos que 2^3, escribiremos:
-->cuadxy(2,3)
ans =
13.
Ejemplo
// --------------------------------------------------------------------// Comprobación numérica de
// $\lim_{x \rightarrow 0}\,\dfrac{\sin x}{x}=1$
//
//
// Cargar el fichero ( al que se refiere esta imagen )
// en SciLab desde la consola del programa:
// exec('C:\...\mifuncion.sci')
// y, a continuación, para ejecutar la función invocar
// el nombre de la función con los argumentos de entrada
// y de salida
// Ejemplo con un paso incremental de 0.001
// teclear a continuación de "-->":
// [vi,vd]=limites_i_d(0.001)
//
// Joan Aranes Clua
// 2015
// --------------------------------------------------------------------
// valor avanzado de $\lim_{x \rightarrow 0^{+}}\,\dfrac{\sin x}{x}$
function [vi,vd]=limites_i_d(incremento)
disp("límites por la derecha ( vd ) y por la izquierda (vi)")
vd=0;
incremento_neg=-1*incremento
for i=1:incremento_neg:0.0000001
vd=sin(i)/i;
//disp(vd);
end
//
// valor avanzado de $\lim_{x \rightarrow 0^{-}}\,\dfrac{\sin x}{x}$
//vi=0
for j=-1:incremento:-0.0000001
vi=sin(j)/j;
//disp(vi);
end
endfunction
$\diamond$
Suscribirse a:
Entradas (Atom)