con SCILAB


Ejercicio 1

Resuelve por el método de Gauss el siguente sistema de ecuaciones lineales:


Si ya lo hemos resuelto y sólo queremos comprobar el resultado que hemos obtenido, así de fácil lo haremos:

-->A=[1,4,-8; 4,8,-1; 8,-1,-4], b=[-8; 14; -10], x=A\b
 A  =

    1.    4.  - 8.
    4.    8.  - 1.
    8.  - 1.  - 4.
 b  =

  - 8.
    14.
  - 10.
 x  =

  - 1.110D-16
    2.
    2.

-->A*[0; 2; 2]
 ans  =

  - 8.
    14.
  - 10.

Era de sospechar que la primera solución es 0, así pues, hemos comprobado la solución [0; 2; 2].

Si lo que queremos es hacer paso a paso el método de Gauss, algo parecido a esto haremos:

-->M=[1,4,-8,-8; 4,8,-1,14; 8,-1,-4,-10]
 M  =

    1.    4.  - 8.  - 8.
    4.    8.  - 1.    14.
    8.  - 1.  - 4.  - 10.

-->M(2,:)=M(2,:)-4*M(1,:); M(3,:)=M(3,:)-8*M(1,:)
 M  =

    1.    4.   - 8.   - 8.
    0.  - 8.     31.    46.
    0.  - 33.    60.    54.

-->M(3,:)=8*M(3,:)-33*M(2,:)
 M  =

    1.    4.  - 8.    - 8.
    0.  - 8.    31.     46.
    0.    0.  - 543.  - 1086.

-->M(3,:)=M(3,:)/-543
 M  =

    1.    4.  - 8.   - 8.
    0.  - 8.    31.    46.
    0.    0.    1.     2.

-->M(1,:)=M(1,:)+8*M(3,:); M(2,:)=M(2,:)-31*M(3,:)
 M  =

    1.    4.    0.    8.
    0.  - 8.    0.  - 16.
    0.    0.    1.    2.

-->M(2,:)=M(2,:)/-8
 M  =

    1.    4.    0.    8.
    0.    1.    0.    2.
    0.    0.    1.    2.

-->M(1,:)=M(1,:)-4*M(2,:)
 M  =

    1.    0.    0.    0.
    0.    1.    0.    2.
    0.    0.    1.    2.

La última columna es la solución del sistema.

Nota: Un ";" después de una expresión hace que el resultado de la misma no se muestre.



Ejercicio 2

Calcula el resultado de y  de  (-2+3i)7.


La unidad imaginaria se escribe en Scilab como "%i". Así pues, las expresiones que nos resuelven el ejercicio son:

-->(2-3*%i)-(-3+5*%i)/(3+4*%i)
 ans  =

    1.56 - 4.08i

-->(-2+3*%i)^7
 ans  =

  - 6554. + 4449.i



Ejercicio 3

Dados los polinomios P(x)=2x4-8x3+3x2+5 y Q(x)=x2+2x-3, calcula -3·P(x)+5·Q(x), P(x)·Q(x), Q5(x) y P(x)/Q(x).


Para introducir un polinomio en Scilab hay que utilizar la función "poly". Los coeficientes hay que escribirlos de menor a mayor grado y en el caso de que alguno falte, hay que poner 0. Una vez hecho esto, todo será muy fácil.


-->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

La última expresión es la comprobación de la división



Ejercicio 4

Despeja la matriz X en la ecuación: A·X - X = B·X + C. Halla X sabiendo que:

[Matemáticas Aplicadas a las Ciencias Sociales II. UCLM. Junio/2006. Bloque 1.A]


Resolvemos la primera parte del problema: X=(A - I - B)-1C,  si hay inversa de (A - I - B).

La segunda parte, que son cálculos, los haremos con Scilab.

-->A=[1,1,0; 1,0,1; 1,1,1], B=[2,0,0; -1,1,2; 0,0,1], C=[-2,2,0; 2,-4,-3; 1,2,-3]
 A  =

    1.    1.    0.
    1.    0.    1.
    1.    1.    1.
 B  =

    2.    0.    0.
  - 1.    1.    2.
    0.    0.    1.
 C  =

  - 2.    2.    0.
    2.  - 4.  - 3.
    1.    2.  - 3.

Hemos introducido los datos, los valores de las matrices A, B y C. Nos falta la matriz I.

-->I=eye(3,3)
 I  =

    1.    0.    0.
    0.    1.    0.
    0.    0.    1.

En vez de escribir la matriz identidad de dimensión 3, hemos utilizado la función "eye".

-->X=(A-I-B)^(-1) * C
 X  =

    1.         - 1.665D-16    1.110D-16
    0.           2.           2.220D-16
  - 1.110D-16    2.220D-16    3.

-->X=inv(A-I-B)*C
 X  =

    1.         - 1.665D-16    1.110D-16
    0.           2.           2.220D-16
  - 1.110D-16    2.220D-16    3.

-->X=(A-I-B)\C
 X  =

    1.    0.    1.480D-16
    0.    2.    2.961D-16
    0.    0.    3.

Hemos calculado de tres maneras la matriz X. Las dos primeras son idénticas, sólo cambia la forma de calcular la inversa de una matriz en Scilab, elevando a (-1) o utilizando la función "inv". La tercera es utilizando el operador "\". Se puede observar que hay una ligera diferencia entre los resultados. Todo parece indicar que el valor verdadero de X es [1,0,0; 0,2,0; 0,0,3]; trabajar con números aproximados casi siempre produce errores, aunque estos sean muy pequeños, del orden de 10-16. Comprobamos nuestra ecuación con este valor de X, restando los dos miembros de nuestra ecuación y viendo que el resultado es la matriz nula o calculando cada uno de los miembros de la ecuación y viendo que son iguales.

-->X=[1,0,0; 0,2,0; 0,0,3], (A*X-X) - (B*X+C)
 X  =

    1.    0.    0.
    0.    2.    0.
    0.    0.    3.
 ans  =

    0.    0.    0.
    0.    0.    0.
    0.    0.    0.

-->X=[1,0,0; 0,2,0; 0,0,3], M1=A*X-X, M2=B*X+C
 X  =

    1.    0.    0.
    0.    2.    0.
    0.    0.    3.
 M1  =

    0.    2.    0.
    1.  - 2.    3.
    1.    2.    0.
 M2  =

    0.    2.    0.
    1.  - 2.    3.
    1.    2.    0.

El cálculo de X lo hemos hecho utilizando la primera parte del problema, escribiendo la fórmula obtenida. Si hemos hecho el problema a mano y queremos comprobar nuestros cálculos en cada paso, deberíamos actuar como se verá a continuación:

-->D=A-I-B, E=inv(D), X=E*C
 D  =

  - 2.    1.    0.
    2.  - 2.  - 1.
    1.    1.  - 1.
 E  =

  - 0.6  - 0.2    0.2
  - 0.2  - 0.4    0.4
  - 0.8  - 0.6  - 0.4
 X  =

    1.         - 1.665D-16    1.110D-16
    0.           2.           2.220D-16
  - 1.110D-16    2.220D-16    3.


Scilab/Maxima Inicio con Maxima

Febrero/2007