SlideShare una empresa de Scribd logo
1 de 66
Descargar para leer sin conexión
Introducci´n al Octave
          o

  Francisco Pena (USC)

  29 de diciembre de 2010




                            1 / 66
´
                       Indice del documento

´
Indice del
documento
                       1.   Introducci´n a lenguajes avanzados de computaci´n t´cnica.
                                      o                                    o e
Introducci´n a
          o            2.   Introducci´n al lenguaje Octave.
                                      o
lenguajes avanzados
de computaci´n
             o         3.   Matrices y arrays. Estructuras de datos.
t´cnica
 e
                       4.   C´lculo simb´lico.
                              a          o
Introducci´n al
          o
lenguaje Octave        5.   Visualizaci´n gr´fica.
                                       o    a
Matrices y arrays.
Estructuras de datos
                       6.   Ficheros en Octave.
C´lculo simb´lico
 a          o
                       7.   Desarrollo de algoritmos.
Visualizaci´n gr´fica
           o    a      8.   Importaci´n de datos.
                                      o
Ficheros en Octave     9.   Aplicaciones al c´lculo num´rico.
                                             a          e
Desarrollo de
algoritmos
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e




                                                                                   2 / 66
´
Indice del
documento
Introducci´n a
          o
lenguajes avanzados
de computaci´no
t´cnica
 e
Lenguajes
Lenguajes II
Lenguajes III
Lenguajes IV           Introducci´n a lenguajes avanzados de
                                 o
Lenguajes V
Introducci´n al
          o                    computaci´n t´cnica
                                          o e
lenguaje Octave
Matrices y arrays.
Estructuras de datos

C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e


                                                               3 / 66
Lenguajes

´
Indice del
documento
                         C´lculo simb´lico: se trabaja con constantes y expresiones
                           a           o
Introducci´n a
          o              simb´licas.
                              o
lenguajes avanzados          √
de computaci´no          •     2, constante simb´lica que representa la ra´ de 2;
                                                o                         ız
t´cnica
 e                            √ 2
Lenguajes                •      2 , constante simb´lica que representa el numero 2.
                                                    o
Lenguajes II
Lenguajes III
Lenguajes IV
                         •   x2 , expresi´n simb´lica que representa la funci´n
                                         o      o                            o
Lenguajes V                  matem´tica f (x) = x2 ;
                                     a
Introducci´n al
          o
lenguaje Octave
                         •     x2 dx, su integral indefinida es otra expresi´n simb´lica,
                                                                           o      o
                             x3
Matrices y arrays.
Estructuras de datos
                              3 + C.

C´lculo simb´lico
 a          o            Un programa que implementa el c´lculo simb´lico suele
                                                          a          o
Visualizaci´n gr´fica
           o    a        llamarse “sistema de ´lgebra computacional”.
                                              a
Ficheros en Octave       Los m´s conocidos son Mathematica, Maple y Maxima.
                               a
Desarrollo de
algoritmos
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e


                                                                                    4 / 66
Lenguajes II

´
Indice del
documento
                          A menor escala, Octave tambi´n puede operar
                                                          e
Introducci´n a
          o               simb´licamente.
                               o
lenguajes avanzados
de computaci´no           El c´lculo simb´lico es util para
                              a          o        ´
t´cnica
 e
Lenguajes                 •   simplificaci´n de expresiones,
                                          o
                              x2 + 2x + 1 → (x + 1)2
Lenguajes II
Lenguajes III
Lenguajes IV              •   resoluci´n exacta de ecuaciones lineales o no lineales,
                                       o
Lenguajes V
                                  x2 + xy + y = 3
Introducci´n al
          o
                                                     → 1 , −3/2
                                                         3
                                                                1
lenguaje Octave
                                  x2 − 4x + 3 = 0
Matrices y arrays.
Estructuras de datos      •   c´lculo de l´
                                a          ımites,
C´lculo simb´lico
 a          o                 l´ x→1 x2 y → y
                               ım
Visualizaci´n gr´fica
           o    a         •   c´lculo de derivadas, integrales indefinidas
                                a
Ficheros en Octave              d
Desarrollo de                  dx sin(x) → cos(x)
algoritmos                •   resoluci´n exacta de ecuaciones diferenciales.
                                       o
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e


                                                                                        5 / 66
Lenguajes III

´
Indice del
documento
                          A veces, el c´lculo simb´lico no puede ser realizado, por
                                       a           o
Introducci´n a
          o               limitaciones del propio sistema o por impedimentos de tipo
lenguajes avanzados
de computaci´no           matem´tico.
                                  a
t´cnica
 e
Lenguajes
                          C´lculo num´rico: se trabaja con n´meros representables en
                            a           e                      u
Lenguajes II              un ordenador.
Lenguajes III                 √
Lenguajes IV              • √ se almacena como 1.414213562373095;
                                2
Lenguajes V                         2
Introducci´n al
          o
                          •      2 , es un n´mero pr´ximo a 2.
                                              u        o
lenguaje Octave           • El uso de funciones se limita a c´lculos que devuelven
                                                              a
                                          1
Matrices y arrays.
Estructuras de datos
                              n´meros: 0 x2 dx, es un n´mero pr´ximo a 1/3.
                               u                         u        o
C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e


                                                                                6 / 66
Lenguajes IV

´
Indice del
documento
                         Con el c´lculo num´rico es posible hallar un resultado
                                  a          e
Introducci´n a
          o              aproximado de los problemas anteriores, incluso cuando el
lenguajes avanzados
de computaci´no          c´lculo simb´lico falla.
                          a           o
t´cnica
 e
Lenguajes
                         Su limitaci´n reside en que s´lo obtiene resultados n´mericos:
                                    o                 o                       u
Lenguajes II
Lenguajes III            •   Con c´lculo num´rico podemos saber que la derivada de
                                   a          e
Lenguajes IV
Lenguajes V
                             x2 en x=2 es 4;
Introducci´n al
          o              •   Solo con c´lculo simb´lico podremos ver que la derivada
                                       a          o
lenguaje Octave
                             en todo punto es 2x.
Matrices y arrays.
Estructuras de datos

C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e


                                                                                   7 / 66
Lenguajes V

´
Indice del
documento
                         El programa orientado al c´lculo num´rico m´s conocido es
                                                   a         e      a
Introducci´n a
          o              Matlab.
lenguajes avanzados
de computaci´n
t´cnica
 e
              o          •   GNU Octave pretende ser un clon de software libre de
Lenguajes                    Matlab. Se diferencia en la interfaz gr´fica y las
                                                                     a
Lenguajes II
Lenguajes III                toolboxes (por ejemplo, de c´lculo simb´lico).
                                                          a          o
Lenguajes IV             •   Scilab ha sido desarrollado por INRIA. No es totalmente
Lenguajes V
Introducci´n al
          o
                             compatible con Matlab, pero se trabaja en un traductor
lenguaje Octave              de Matlab a Scilab.
Matrices y arrays.
Estructuras de datos     Otras herramientas de c´lculo cient´
                                                a           ıfico son:
C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a
                         •   R es un lenguaje desarrollado principalmente para an´lisis
                                                                                  a
Ficheros en Octave           estad´
                                  ıstico;
Desarrollo de            •   Sage es una aplicaci´n para c´lculo cient´
                                                 o        a           ıfico desarrollada
algoritmos
Importaci´n de
         o
                             a partir de Python.
datos
Aplicaciones al
c´lculo num´rico
 a          e


                                                                                    8 / 66
´
Indice del
documento
Introducci´n a
          o
lenguajes avanzados
de computaci´n
             o
t´cnica
 e
Introducci´n al
          o
lenguaje Octave
Introducci´n
          o
Introducci´n II
          o
Primeros comandos       Introducci´n al lenguaje Octave
                                  o
Variables
Variables II
Variables III
Recuperaci´n de
            o
comandos
Expresiones escalares
Expresiones escalares
II
Matrices y arrays.
Estructuras de datos

C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o                                                9 / 66
datos
Introducci´n
                                  o

´
Indice del
documento
                          GNU Octave es un language pensado para el c´lculo
                                                                       a
Introducci´n a
          o               num´rico (http://www.gnu.org/software/octave/) que posee
                              e
lenguajes avanzados
de computaci´n
             o            una interfaz de l´
                                           ınea de comando.
t´cnica
 e
                          Octave-Forge es una comunidad de desarrollo que
Introducci´n al
          o
lenguaje Octave           proporciona paquetes para varios problemas. Los paquetes
Introducci´n
          o
Introducci´n II
          o
                          disponibles se describen en
Primeros comandos         http://octave.sourceforge.net/packages.php.
Variables
Variables II              QtOctave es una interfaz gr´fica para Octave
                                                      a
Variables III
Recuperaci´n de
            o
                          (http://qtoctave.wordpress.com/).
comandos
Expresiones escalares     Existen instaladores para GNU Linux y Mac OS.
Expresiones escalares
II                        El paquete precompilado para Windows est´ en Octave-Forge
                                                                   a
Matrices y arrays.
Estructuras de datos
                          (oct. 2010).
C´lculo simb´lico
 a          o             •   Se recomienda activar los paquetes symbolic y optim.
Visualizaci´n gr´fica
           o    a         •   Comprobar bugs como: pkg rebuild -noauto oct2mat
Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o                                                                           10 / 66
datos
Introducci´n II
                                  o

´
Indice del
documento
                           Si usamos QtOctave, podremos distinguir varias ventanas:
Introducci´n a
          o
lenguajes avanzados
                           •   Terminal, para escribir los comandos Octave;
de computaci´n
t´cnica
 e
             o             •   Commands’ List, refleja los comandos ya escritos;
Introducci´n al
          o                •   Variables’ List, refleja las variables creadas;
lenguaje Octave
Introducci´n
          o
                           •   Navigator, muestra la carpeta por defecto;
Introducci´n II
          o                •   Editor, permite editar ficheros.
Primeros comandos
Variables
Variables II
Variables III
Recuperaci´n de
            o
comandos
Expresiones escalares
Expresiones escalares
II
Matrices y arrays.
Estructuras de datos

C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o                                                                        11 / 66
datos
Primeros comandos

´
Indice del
documento
                          Al ser un lenguaje interpretado, los comandos se ejecutan
Introducci´n a
          o               uno a uno, terminados con retorno de carro.
lenguajes avanzados
de computaci´n
             o            diary, para volcar lo mostrado a un fichero:
t´cnica
 e
                          >> diary %vuelca al fichero ’diary’ de la capeta por defecto
Introducci´n al
          o
lenguaje Octave           >> diary file %´dem al fichero ’file’
                                         ı
Introducci´n
          o
Introducci´n II
          o
                          >> diary off %interrumpe el volcado
Primeros comandos         help, para solicitar ayuda:
Variables
Variables II              >> help diary %da ayuda sobre el comando ’diary’
Variables III
Recuperaci´n de
            o
                          La ayuda online est´ en
                                             a
comandos                  http://www.gnu.org/software/octave/doc/interpreter/
Expresiones escalares
Expresiones escalares
II                        pwd, para ver la carpeta por defecto.
Matrices y arrays.
Estructuras de datos
                          cd, para cambiar de carpeta:
C´lculo simb´lico
 a          o
                          >> cd Z:mi_carpeta %cambia la carpeta por defecto
Visualizaci´n gr´fica
           o    a         >> cd .. %se desplaza a la carpeta padre
Ficheros en Octave        ls, para ver el contenido de la carpeta.
Desarrollo de
algoritmos
Importaci´n de
         o                                                                        12 / 66
datos
Variables

´
Indice del
documento
                           Las variables num´ricas no necesitan declararse:
                                            e
Introducci´n a
          o                >> a=1/3
lenguajes avanzados
de computaci´n
             o             Cuando se asigna otro valor, el anterior desaparece:
t´cnica
 e
                           >> a=1/6
Introducci´n al
          o
lenguaje Octave            Las variables creadas se guardan en la Variables’ List:
Introducci´n
          o
Introducci´n II
          o
                           >> whos
Primeros comandos          Todo c´lculo no asignado se guarda en la variable ans:
                                 a
Variables
Variables II               >> 1/4
Variables III
Recuperaci´n de
            o
                           format, distintas formas de ver (no de calular) el valor:
comandos                   >> format short %punto fijo, 4 decimales
Expresiones escalares
Expresiones escalares      >> format long %punto fijo, 15 decimales
II
Matrices y arrays.
                           >> format short e %punto flotante, 4 decimales
Estructuras de datos       >> format long e %punto flotante, 15 decimales
C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o                                                                             13 / 66
datos
Variables II

´
Indice del
documento
                           clear, borra variables:
Introducci´n a
          o                >> clear a %borra la variable a
lenguajes avanzados
de computaci´n
             o             >> clear %borra todas las variables
t´cnica
 e
                           Los nombres de variables deben debe tener 31 caracteres
Introducci´n al
          o
lenguaje Octave            como m´ximo, empezar por una letra y contener letras,
                                  a
Introducci´n
          o
Introducci´n II
          o
                           n´meros y “ ”, pero no espacios en blanco.
                            u
Primeros comandos          >> n_2=44 %es correcto, no as´ 2_n ´ n 2
                                                        ı     o
Variables
Variables II               Se distingue entre may´sculas y min´sculas.
                                                 u            u
Variables III
Recuperaci´n de
            o
                           Varios comandos en linea se separan con “,” o “;”.
comandos                   >> a=4; b2=10^(2-a)
Expresiones escalares
Expresiones escalares      Los terminados con “;” se ejecutan sin mostrar el resultado.
II
Matrices y arrays.
                           Todo lo que sigue a % se considera un comentario.
Estructuras de datos

C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o                                                                           14 / 66
datos
Variables III

´
Indice del
documento
                           Un comando se extiende por varias l´
                                                              ıneas con . . . :
Introducci´n a
          o                >> Nombre_muy_largo=...
lenguajes avanzados
de computaci´n
             o             2.e-4*23
t´cnica
 e
                           No se recomienda usar nombres propios de Octave:
Introducci´n al
          o
lenguaje Octave
Introducci´n
          o
                           •   pi, valor de π,
Introducci´n II
          o                •   i, j, valor del n´mero imaginario,
                                                u
Primeros comandos
Variables                  •   inf, representa el infinto, ∞,
Variables II
Variables III
                           •   NaN, representa la indeterminaci´n.
                                                               o
Recuperaci´n de
            o
comandos                   Ojo, el n´mero e se escribe evaluando la exponecial, exp(1),
                                    u
Expresiones escalares
Expresiones escalares
                           pero e2 no se escribe exp(1)^2 sino exp(2).
II
Matrices y arrays.
Estructuras de datos

C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o                                                                         15 / 66
datos
Recuperaci´n de comandos
                                  o

´
Indice del
documento
                          Solo se puede modificar el comando de la linea actual.
Introducci´n a
          o               Para recuperar un comando previo podemos:
lenguajes avanzados
de computaci´n
t´cnica
 e
             o            •   copiarlo desde la ventana Commands’ List o
Introducci´n al
          o               •   usar el cursor “flecha hacia arriba” ↑ o
lenguaje Octave
Introducci´n
          o               •   escribir las primeras letras del comando y pulsar ↑ para
Introducci´n II
          o
Primeros comandos             navegar solo por los comandos que empiezan por esas
Variables                     letras.
Variables II
Variables III
Recuperaci´n de
            o
                          Con la tecla “Esc” se borra lo escrito.
comandos
Expresiones escalares
Expresiones escalares
II
Matrices y arrays.
Estructuras de datos

C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o                                                                         16 / 66
datos
Expresiones escalares

´
Indice del
documento
                           Las operaciones b´sicas son + - * / ∧
                                              a
Introducci´n a
          o                La prioridad es la misma que en las calculadoras.
lenguajes avanzados
de computaci´n
             o             Se pueden usar par´ntesis para cambiarlas.
                                                e
t´cnica
 e
Introducci´n al
          o
                           Ojo, 1/6 no es 1/2*3 sino 1/(2*3).
lenguaje Octave            Hay muchas funciones intr´ınsecas (ver ayuda online):
Introducci´n
          o
Introducci´n II
          o                •   trigonom´ticas: sin, cos, tan, sec, csc,. . .
                                        e
Primeros comandos
Variables                  •   trigonom´ticas inversas: asin, acos, . . .
                                        e
Variables II
Variables III
                           •   logar´
                                    ıtmicas: log, log10, . . .
Recuperaci´n de
comandos
            o              •   para complejos: imag, real, . . .
Expresiones escalares      •   enteros: floor, round, mod, sign, . . .
Expresiones escalares
II                         •   otras: sqrt, abs, sinh, . . .
Matrices y arrays.
Estructuras de datos

C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o                                                                         17 / 66
datos
Expresiones escalares II

´
Indice del
documento
                        Ejercicios 1
Introducci´n a
          o
lenguajes avanzados
                        1.   Inicia el volcado con diary.
de computaci´n
t´cnica
 e
             o
                        2.   Calcula eiπ + 1.
Introducci´n al
          o             3.   Calcula 0/0.
lenguaje Octave
Introducci´n
          o             4.   Guarda | cos(3)2 | − 6 2 y | cos(32 )| − 3·2 en dos variables.
                                                  3
                                                                       6
Introducci´n II
          o             5.   Comprueba que se han guardado en la Variables’ List.
Primeros comandos
Variables               6.   Borra las variables.
Variables II
Variables III
                        7.   Termina el volcado y comprueba el contenido del fichero.
Recuperaci´n de
            o
comandos
Expresiones escalares
Expresiones escalares
II
Matrices y arrays.
Estructuras de datos

C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o                                                                                18 / 66
datos
´
Indice del
documento
Introducci´n a
          o
lenguajes avanzados
de computaci´n
             o
t´cnica
 e
Introducci´n al
          o
lenguaje Octave
Matrices y arrays.
Estructuras de datos
Vectores               Matrices y arrays. Estructuras de datos
Vectores II
Vectores III
Vectores IV
Matrices
Matrices II
Matrices III
Otros datos
Estructuras y celdas

C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o
datos
                                                                 19 / 66
Aplicaciones al
Vectores

´
Indice del
documento
                         Vectores dados manualmente:
Introducci´n a
          o              >> v=[1 3 5 7] %fila, componentes separadas por " " ´ ","
                                                                             o
lenguajes avanzados
de computaci´n
             o           >> w=[1;3;5;7] %columna, componentes separadas por ";"
t´cnica
 e
Introducci´n al
          o              Ojo, cuidado con los espacios en las filas: [2, 4] se obtiene
lenguaje Octave
Matrices y arrays.
                         con [2 1+3] o [2, 1 +3], pero no con [2 1 +3].
Estructuras de datos     Vectores con una ley de formaci´n:
                                                         o
Vectores
Vectores II              >> q=2:2:20 %inicio:incremento:fin
Vectores III             >> y=2:2:21 %es el mismo vector
Vectores IV
Matrices                 >> v=8:-1:1 %va de 8 a 1
Matrices II
                         >> r=1:5 %si el incremento es 1, se puede omitir
Matrices III
Otros datos              >> q2=linspace(2,20,10) %inicio, fin, num. componentes
Estructuras y celdas
                         >> m=ones(1,20) %fila de 20 unos
C´lculo simb´lico
 a          o
                         >> n=zeros(20,1) %columna de 20 ceros
Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o
datos
                                                                                  20 / 66
Aplicaciones al
Vectores II

´
Indice del                Las operaciones b´sicas matriciales son + - * /
                                           a                                ∧
documento
Introducci´n a
          o               >> 3*m %fila de 20 treses
lenguajes avanzados
de computaci´n
             o            >> m*n %multiplicaci´n "fila por columna"
                                              o
t´cnica
 e
Introducci´n al
          o
                          Las operaciones b´sicas elementales son + - .* ./ .∧
                                           a
lenguaje Octave           >> m.*m %multiplicaci´n "elemento a elemento"
                                               o
Matrices y arrays.
Estructuras de datos
                          Las funciones intr´
                                            ınsecas son elementales.
Vectores                  Funciones espec´ıficas para vectores:
Vectores II
Vectores III              •   ’, trasposici´n,
                                           o
Vectores IV
Matrices                  •   length, numero de componentes,
Matrices II
Matrices III
                          •   norm, norma,
Otros datos               •   dot, producto escalar,
Estructuras y celdas
                          •   cross, producto cruzado.
C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o
datos
                                                                                 21 / 66
Aplicaciones al
Vectores III

´
Indice del
documento
                            Extracci´n de componentes:
                                    o
Introducci´n a
          o                 >> v(2) %devuelve la 2a componente
lenguajes avanzados
de computaci´n
             o              >> v(2:4) %devuelve [v(2) v(3) v(4)]
t´cnica
 e
                            >> v([1 5 3]) %devuelve [v(1) v(5) v(3)]
Introducci´n al
          o
lenguaje Octave             >> ind=[1 5 3]; v(ind) %´dem
                                                    ı
Matrices y arrays.          >> v(4:end-1) %componentes de la 4a a la pen´ltima
                                                                        u
Estructuras de datos
Vectores
Vectores II            Ejercicios 2
Vectores III
Vectores IV            1.   Crea dos vectores fila, u y v, de la misma dimensi´n.
                                                                             o
Matrices
Matrices II            2.   Muestra su n´mero de componentes.
                                         u
Matrices III           3.   S´malos.
                             u
Otros datos
Estructuras y celdas   4.   Multiplica u por el traspuesto de v.
C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o
datos
                                                                                   22 / 66
Aplicaciones al
Vectores IV

´
Indice del
documento
                       5. Multiplica el traspuesto de u por v.
Introducci´n a
          o            6. Calcula la norma de u.
lenguajes avanzados
de computaci´n
             o         7. Calcula el seno de cada componente de u.
t´cnica
 e
                       8. Divide cada componente de u por la correspondiente de v.
Introducci´n al
          o
lenguaje Octave        9. Eleva al cubo cada componente de u.
Matrices y arrays.
Estructuras de datos
                       10. Suma los elementos de ´  ındice par de u con los elementos
Vectores                   de ´
                              ındice impar de v. ¿Es siempre posible?
Vectores II
Vectores III
                       11. Toma los elementos 1, 5 y 4 de u y s´male los tres ultimos
                                                                  u             ´
Vectores IV                valores de v. Guarda el resultado en las posiciones dadas
Matrices
Matrices II                para u.
Matrices III
Otros datos
Estructuras y celdas

C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o
datos
                                                                                 23 / 66
Aplicaciones al
Matrices

´
Indice del
documento
                         Matrices dadas manualmente, se introducen por filas:
Introducci´n a
          o              >> M=[1 2 5; 2 -1 6; 3 0 -1] %en filas, usamos " " ´ ","
                                                                            o
lenguajes avanzados
de computaci´n
             o           Matrices con una ley de formaci´n:
                                                        o
t´cnica
 e
                         >> A=ones(2,3) %matriz 2 x 3 de unos
Introducci´n al
          o
lenguaje Octave          >> B=zeros(4) %matriz 4 x 4 de ceros
Matrices y arrays.       >> C=eye(4,5) %matriz identidad 4 x 5
Estructuras de datos
Vectores                 >> C=rand(2) %matriz aleatoria 2 x 2, 0<=C<=1
Vectores II
Vectores III
                         Como en vectores, se distingue entre operaciones matriciales
Vectores IV              (* / ∧ ) y elementales (.* ./ .∧ ).
Matrices
Matrices II              Las funciones intr´
                                           ınsecas tambi´n son elementales.
                                                           e
Matrices III
                         Algunas funciones espec´ ıficas para matrices: ’, size, det,
Otros datos
Estructuras y celdas     rank, inv, eig, . . .
C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o
datos
                                                                                 24 / 66
Aplicaciones al
Matrices II

´
Indice del
documento
                          Resoluci´n del sistema lineal Ax = b:
                                  o
Introducci´n a
          o               >> x=Ab
lenguajes avanzados
de computaci´n
             o            Si es SCD, devuelve la unica soluci´n del sistema.
                                                 ´           o
t´cnica
 e
                          En otro caso, devuelve la soluci´n por m´
                                                          o       ınimos cuadrados.
Introducci´n al
          o
lenguaje Octave           (Ver tambi´n chol, lu, . . . )
                                    e
Matrices y arrays.
Estructuras de datos
                          Extracci´n de componentes:
                                  o
Vectores                  >> M(2,3) %devuelve la componente (2,3)
Vectores II
Vectores III
                          >> M(:,3) %devuelve la 3a columna
Vectores IV               >> M(2,:) %devuelve la 2a fila
Matrices
Matrices II               >> M([1 5 3],1:2) %matriz orlada 3 x 2
Matrices III
                          >> triu(M), tril(M), diag(M) %triangular sup., inf. y diagonal
Otros datos
Estructuras y celdas      >> I=diag(diag(M)) %matriz diagonal, con diag(I)=diag(M)
C´lculo simb´lico
 a          o             Yuxtaposici´n de matrices:
                                     o
Visualizaci´n gr´fica
           o    a         >> A=[1 2; 5 -2]; B=[-10 30; A] %a~adimos filas
                                                            n
Ficheros en Octave
                          >> C=[eye(2) zeros(2,2); zeros(2,2) A] %diagonal por bloques
Desarrollo de
algoritmos
Importaci´n de
         o
datos
                                                                                 25 / 66
Aplicaciones al
Matrices III

´
Indice del
documento
                       Ejercicios 3
Introducci´n a
          o
lenguajes avanzados
                       1. Crea dos matrices cuadradas, A y B, del mismo tama˜o.n
de computaci´n
t´cnica
 e
             o
                       2. Muestra su n´mero de filas y columnas.
                                        u
Introducci´n al
          o            3. S´malas, multipl´
                           u               ıcalas matricial y elementalmente.
lenguaje Octave
                       4. Calcula la traspuesta, el rango y el determinante de A.
Matrices y arrays.
Estructuras de datos   5. Calcula los autovalores A.
Vectores
Vectores II            6. Resuelve el sistema Ax=[1;1;...;1].
Vectores III           7. Extrae los elementos intersecci´n de las dos primeras filas y
                                                          o
Vectores IV
Matrices                   columnas de A. ´Idem de las dos ultimas filas y columnas de
                                                             ´
Matrices II
Matrices III
                           B.
Otros datos            8. Crea una matriz diagonal por bloques, que tenga en la
Estructuras y celdas
                           diagonal las dos matrices anteriores.
C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o
datos
                                                                                  26 / 66
Aplicaciones al
Otros datos

´
Indice del
documento
                         Complejos: 1+3*i ´ 1+3i, funciones como real, imag,
                                          o
Introducci´n a
          o              conj, isreal, angle, abs, . . .
lenguajes avanzados
de computaci´n
             o           Cadenas: a= ’$de 5&’, b =’don’’t’
t´cnica
 e
Introducci´n al
          o              •   Concatenaci´n: c = [’sdf’ ’asd’]
                                         o
lenguaje Octave
                         •   Conversi´n de numeros a cadenas: num2str(2)
                                      o
Matrices y arrays.
Estructuras de datos     •   Impresi´n del valor de una variable: disp(variable)
                                    o
Vectores
Vectores II
                             >> a=25; disp([’El resultado es’ num2str(a) ’ grados’])
Vectores III
Vectores IV              L´gicos: entero no nulo (1) es verdadero, 0 es falso
                          o
Matrices
Matrices II              •   Operadores relacionales: < > <= >= == ~=
Matrices III
Otros datos
                         •   Operadores logicos: & | ~ xor any all
Estructuras y celdas

C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o
datos
                                                                                   27 / 66
Aplicaciones al
Estructuras y celdas

´
Indice del
documento
                          Estructuras: agrupaci´n de datos con nombre
                                               o
Introducci´n a
          o               >> circulo.centro=[0 1]
lenguajes avanzados
de computaci´n
             o            >> circulo.radio=4
t´cnica
 e
                          Celdas: agrupaci´n de datos numerados
                                          o
Introducci´n al
          o
lenguaje Octave           >> dato{1} = 23
Matrices y arrays.        >> dato{2} = [2 8]
Estructuras de datos
Vectores                  >> dato{3} = [0 9; 5 7]
Vectores II
Vectores III              Ciertos comandos devuelven celdas:
Vectores IV
Matrices
                          >> symbols; x=sym(’x’); y=sym(’y’);
Matrices II               >> S=symlsolve({x+y-3,x-y+5},{x,y})
Matrices III
Otros datos               S tiene dos elementos: S{1} y S{2}.
Estructuras y celdas

C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o
datos
                                                                        28 / 66
Aplicaciones al
´
Indice del
documento
Introducci´n a
          o
lenguajes avanzados
de computaci´n
             o
t´cnica
 e
Introducci´n al
          o
lenguaje Octave
Matrices y arrays.
Estructuras de datos

C´lculo
 a        simb´lico
              o
                          C´lculo simb´lico
                           a          o
C´lculo
 a        simb´lico
              o
C´lculo
 a        simb´lico II
              o
C´lculo
 a        simb´lico III
              o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e




                                              29 / 66
C´lculo simb´lico
                           a          o

´
Indice del
documento
                             Precisa del paquete symbolic de Octave-Forge.
Introducci´n a
          o                  El c´lculo simb´lico se carga con symbols
                                 a           o
lenguajes avanzados
de computaci´n
             o               Las variables simb´licas deben declararse:
                                                o
t´cnica
 e
                             >> x = sym(’x’)
Introducci´n al
          o
lenguaje Octave              Toda expresi´n que las involucre ser´ simb´lica:
                                         o                       a     o
Matrices y arrays.           >> f = x^2 %f es una expresi´n simb´lica
                                                         o      o
Estructuras de datos

C´lculo
 a        simb´lico
              o
                             La asignaci´n las convierte en num´ricas:
                                        o                      e
C´lculo
 a        simb´lico
              o              >> x = 5 %x ha dejado de ser simb´lica
                                                              o
C´lculo
 a        simb´lico II
              o
C´lculo
 a        simb´lico III
              o              En simb´lico, las funciones intr´
                                    o                        ınsecas cambian de nombre:
Visualizaci´n gr´fica
           o    a            >> f = Sin(Pi*x); g = Cos(x); h = Exp(x); i = Sqrt(x)
Ficheros en Octave           (ver http://octave.sourceforge.net/symbolic/overview.html)
Desarrollo de
algoritmos
                             collect, recolecta los t´rminos como polinomio:
                                                     e
Importaci´n de
         o                   >> f = 2*x+x+3; collect(f,x)
datos
Aplicaciones al
                             splot, pinta una funci´n simb´lica:
                                                   o      o
c´lculo num´rico
 a          e                >> i = Exp(x); splot(i,x,[-1 1])



                                                                                     30 / 66
C´lculo simb´lico II
                           a          o

´
Indice del
documento
                             subs, eval´a una expresi´n:
                                       u             o
Introducci´n a
          o                  >> g = Cos(x); p = subs(g,x,1.3)
lenguajes avanzados
de computaci´n
             o               to_double, convierte un valor simb´lico a num´rico:
                                                               o          e
t´cnica
 e
                             >> to_double(p) %p es el resultado anterior
Introducci´n al
          o
lenguaje Octave              differentiate, calcula la derivada:
Matrices y arrays.           >> f = x^2; differentiate(f,x,2) %derivada segunda
Estructuras de datos

C´lculo
 a        simb´lico
              o
                             symlsolve, resuelve ecuaciones lineales:
C´lculo
 a        simb´lico
              o              >> y=sym(’y’); symlsolve({x+y-2,x-y-1},{x,y})
C´lculo
 a        simb´lico II
              o
C´lculo
 a        simb´lico III
              o              symfsolve, resuelve ecuaciones no lineales:
Visualizaci´n gr´fica
           o    a            >> f = x^2+3*x-1; g= x*y-y^2+3; symfsolve(f,g,[1,5])
Ficheros en Octave           No esta implementado el c´lculo simb´lico de l´
                                                           a         o       ımites,
Desarrollo de
algoritmos
                             integraci´n, ecuaciones diferenciales, gr´ficas de funciones de
                                      o                                a
Importaci´n de
         o                   dos variables. . . (oct 2010)
datos
Aplicaciones al
c´lculo num´rico
 a          e




                                                                                       31 / 66
C´lculo simb´lico III
                           a          o

´
Indice del
documento
                          Ejercicios 4
Introducci´n a
          o
lenguajes avanzados
                          1.   Crea una expresi´n simb´lica de una variable.
                                                o      o
de computaci´n
t´cnica
 e
             o
                          3.   Muestra su gr´fica en diferentes dominios.
                                             a
Introducci´n al
          o               5.   Eval´ala en distintos puntos.
                                   u
lenguaje Octave
                          4.   Calcula su derivada.
Matrices y arrays.
Estructuras de datos      6.   Resuelve un sistema lineal, y otro no lineal, de 2 ecuaciones
C´lculo
 a        simb´lico
              o                 y dos inc´gnitas.
                                         o
C´lculo
 a        simb´lico
              o
C´lculo
 a        simb´lico II
              o
C´lculo
 a        simb´lico III
              o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e




                                                                                        32 / 66
´
Indice del
documento
Introducci´n a
          o
lenguajes avanzados
de computaci´n
             o
t´cnica
 e
Introducci´n al
          o
lenguaje Octave
Matrices y arrays.
Estructuras de datos

C´lculo simb´lico
 a          o
                       Visualizaci´n gr´fica
                                  o    a
Visualizaci´n gr´fica
           o    a
Gr´ficos num´ricos
    a        e
Gr´ficos num´ricos II
    a        e
Gr´ficos num´ricos
    a        e
III

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e




                                              33 / 66
Gr´ficos num´ricos
                         a        e

´
Indice del
documento
                         plot, gr´ficas de funciones de una variable:
                                 a
Introducci´n a
          o              >> x = 0:0.5:5; plot(x, sin(x)) %cambiar 0.5 a 0.1
lenguajes avanzados
de computaci´n
             o           Varios gr´ficos en la misma ventana:
                                  a
t´cnica
 e
                         >> hold on; plot(x, cos(x))
Introducci´n al
          o
lenguaje Octave          >> hold off; plot(x, sin(2*x), x, cos(3*x))
Matrices y arrays.
Estructuras de datos
                         Opciones de plot, colores, l´
                                                     ıneas y marcas:
C´lculo simb´lico
 a          o
                         >> plot(x, sin(x), ’r*’, x, cos(x), ’-.g’)
Visualizaci´n gr´fica
           o    a        Informaci´n adicional:
                                  o
Gr´ficos num´ricos
    a        e           >> title(’Dos curvas’)      %titulo
Gr´ficos num´ricos II
    a        e
Gr´ficos num´ricos
    a        e           >> xlabel(’Abscisas’); ylabel(’Ordenadas’) %texto en ejes
III
                         >> legend(’Curva 1’,’Curva 2’) %leyenda
Ficheros en Octave
Desarrollo de            >> axis([-1 11 -1.5 1.5])         %escala
algoritmos
                         figure, crea una nueva ventana de gr´ficos.
                                                             a
Importaci´n de
         o
datos                    line, crea lineas personalizadas.
Aplicaciones al
c´lculo num´rico
 a          e
                         >> line(x,cos(x), ’linewidth’, 4)



                                                                                34 / 66
Gr´ficos num´ricos II
                         a        e

´
Indice del
documento
                         Curvas en el plano y el espacio:
Introducci´n a
          o              >> t=0:0.1:2*pi; plot(exp(-t).*cos(2*t), exp(-t).*sin(2*t))
lenguajes avanzados
de computaci´n
             o           >> plot3(cos(t),t.*sin(t),sqrt(t))
t´cnica
 e
                         (Obs´rvese el uso de .*)
                              e
Introducci´n al
          o
lenguaje Octave          Escala logar´
                                     ıtmica, semilogx, semilogy, loglog:
Matrices y arrays.       >> x = 0:0.1:5; semilogy(x, exp(-x))
Estructuras de datos

C´lculo simb´lico
 a          o
                         Coordenadas polares, polar:
Visualizaci´n gr´fica
           o    a        >> t = 0:.01:2*pi; polar(t,sin(2*t).*cos(2*t))
Gr´ficos num´ricos
    a        e           An´lisis estad´
                           a           ıstico:
Gr´ficos num´ricos II
    a        e
Gr´ficos num´ricos
    a        e           >> errorbar(x,sin(x),rand(size(x)))
III
                         >> hist([2,3,3,4,4.5])
Ficheros en Octave
Desarrollo de            Gr´ficas de funciones de dos variables:
                           a
algoritmos
                         >> [x,y]=meshgrid(-2:.2:2, -2:.2:2);
Importaci´n de
         o
datos                    >> surf(x, y, x.*exp(-x.^2-y.^2))
Aplicaciones al
c´lculo num´rico
 a          e
                         >> contour(x, y, x.*exp(-x.^2-y.^2))



                                                                                35 / 66
Gr´ficos num´ricos III
                         a        e

´
Indice del
documento
                          Subgr´ficos:
                               a
Introducci´n a
          o               >> x = -2:0.1:2;
lenguajes avanzados
de computaci´n
             o            >> subplot(1,2,1); plot(x,sin(x),’r’); title(’Primer gr´fico’)
                                                                                 a
t´cnica
 e
                          >> subplot(1,2,2); plot(x,cos(x),’r’); title(’Segundo gr´fico’)
                                                                                  a
Introducci´n al
          o
lenguaje Octave           print, impresi´n de la ventana de gr´ficos activa:
                                        o                     a
Matrices y arrays.        >> print -dpng ’grafica.png’
Estructuras de datos

C´lculo simb´lico
 a          o
                       Ejercicios 5
Visualizaci´n gr´fica
           o    a
Gr´ficos num´ricos
    a        e         1. Crea una ventana con dos gr´ficos. A˜ade informaci´n
                                                      a      n             o
Gr´ficos num´ricos II
    a        e
Gr´ficos num´ricos
    a        e             adicional.
III

Ficheros en Octave
                       2. Crea un gr´fico de contorno para una funci´n de dos
                                      a                            o
Desarrollo de              variables en una ventana aparte.
algoritmos
                       3. Salva el gr´fico en un fichero.
                                      a
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e




                                                                                 36 / 66
´
Indice del
documento
Introducci´n a
          o
lenguajes avanzados
de computaci´n
             o
t´cnica
 e
Introducci´n al
          o
lenguaje Octave
Matrices y arrays.
Estructuras de datos

C´lculo simb´lico
 a          o
                       Ficheros en Octave
Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Scripts
Fichero funci´n
             o
Fichero funci´n II
             o
Fichero funci´n III
             o
Funci´n autom´tica
     o         a
Funci´n autom´tica
     o         a
II
Desarrollo de
algoritmos
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e
                                            37 / 66
Scripts

´
Indice del
documento
                          Es un fichero con una secuencia de comandos.
Introducci´n a
          o               Lleva extensi´n .m
                                       o
lenguajes avanzados
de computaci´n
             o            Para que Octave lo encuentre, su carpeta debe
t´cnica
 e
Introducci´n al
          o               a) ser la carpeta por defecto o
lenguaje Octave
                          b) a˜adirse a las rutas de b´squeda con addpath.
                              n                       u
Matrices y arrays.
Estructuras de datos
                          Para ejecutarlo, escribir el nombre sin extensi´n en la
                                                                         o
C´lculo simb´lico
 a          o
                          Terminal.
Visualizaci´n gr´fica
           o    a

Ficheros en Octave
                          Ejemplo: script grado2.m, para resolver 3x2 + 5x + 2 = 0.
Scripts                      a=3; b=5; c=2;
Fichero funci´n
             o
Fichero funci´n II
             o               D=b^2-4*a*c;
Fichero funci´n III
             o               x(1)=(-b+sqrt(D))/(2*a);
Funci´n autom´tica
     o         a
Funci´n autom´tica
     o         a             x(2)=(-b-sqrt(D))/(2*a);
II
Desarrollo de
algoritmos
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e
                                                                                  38 / 66
Fichero funci´n
                                    o

´
Indice del
documento
                         ¡Los script usan la Variables’ List para sus variables!
Introducci´n a
          o              Los ficheros de funci´n son scripts con su propio espacio de
                                              o
lenguajes avanzados
de computaci´n
             o           variables.
t´cnica
 e
                         La primera l´ınea de un fichero de funci´n es del tipo:
                                                                 o
Introducci´n al
          o
lenguaje Octave
Matrices y arrays.
                           function [y1, y2,...] = nombre(x1, x2,...)
Estructuras de datos     El nombre debe coincidir con el nombre del fichero.
C´lculo simb´lico
 a          o            Las variables de entrada x1, x2,... se pasan por copia.
Visualizaci´n gr´fica
           o    a
                         La Variables’ List solo recibe las variables de salida y1, y2,...
Ficheros en Octave
Scripts
                         El valor de una variable de entrada solo se modifica si
Fichero funci´n
             o           tambi´n es de salida.
                               e
Fichero funci´n II
             o
Fichero funci´n III
             o
Funci´n autom´tica
     o         a
Funci´n autom´tica
     o         a
II
Desarrollo de
algoritmos
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e
                                                                                      39 / 66
Fichero funci´n II
                                    o

´
Indice del
documento
                          Ejemplo: fichero funci´n fgrado2.m.
                                               o
Introducci´n a
          o                  function x=fgrado2(a,b,c)
lenguajes avanzados
de computaci´n
             o               D=b^2-4*a*c;
t´cnica
 e
                             x(1)=(-b+sqrt(D))/(2*a);
Introducci´n al
          o
lenguaje Octave              x(2)=(-b-sqrt(D))/(2*a);
Matrices y arrays.
Estructuras de datos

C´lculo simb´lico
 a          o
                          Para ejecutarlo, hay que indicar los valores de entrada:
Visualizaci´n gr´fica
           o    a
                          >> fgrado2(3,5,2)
Ficheros en Octave        Podemos usarlo f´cilmente para resolver otros polinomios.
                                          a
Scripts
Fichero funci´n
             o
Fichero funci´n II
             o
Fichero funci´n III
             o
Funci´n autom´tica
     o         a
Funci´n autom´tica
     o         a
II
Desarrollo de
algoritmos
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e
                                                                                     40 / 66
Fichero funci´n III
                                    o

´
Indice del
documento
                          Para usar un fichero funci´n como argumento, hay que poner
                                                   o
Introducci´n a
          o               “@” antes del nombre. Consideremos la funci´n:
                                                                     o
lenguajes avanzados
de computaci´n
             o               function y=int_def(f,a,b)
t´cnica
 e
                             %integral definida de f entre a y b (trapecios)
Introducci´n al
          o
lenguaje Octave              t=linspace(a,b,100);
Matrices y arrays.
Estructuras de datos
                             y = trapz(t, f(t));
C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a
                          La funci´n sin de Octave es un fichero funci´n:
                                  o                                  o
Ficheros en Octave        >> int_def(@sin, 0, 1)
Scripts
Fichero funci´n
             o
Fichero funci´n II
             o
Fichero funci´n III
             o
Funci´n autom´tica
     o         a
Funci´n autom´tica
     o         a
II
Desarrollo de
algoritmos
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e
                                                                             41 / 66
Funci´n autom´tica
                            o       a

´
Indice del
documento
                         Se define en una l´ınea: >> f = @(x,y) x.^2 + y.^2
Introducci´n a
          o              Escritas en la Terminal, no se conservan al cerrar la sesi´n.
                                                                                   o
lenguajes avanzados
de computaci´n
             o           Se podr´ usar para las funciones anteriores. . .
                                 ıan
t´cnica
 e
                         >> g2=@(a,b,c) [(-b+sqrt(b^2-4*a*c))/(2*a) ...
Introducci´n al
          o
lenguaje Octave                           (-b-sqrt(b^2-4*a*c))/(2*a)]
Matrices y arrays.       >> id = @(f,a,b) trapz(linspace(a,b,100),...
Estructuras de datos

C´lculo simb´lico
 a          o
                                           f(linspace(a,b,100)))
Visualizaci´n gr´fica
           o    a        . . . pero se usan, generalmente, para funciones sencillas.
Ficheros en Octave       Ojo, debemos evitar tener en la carpeta de trabajo fichero
Scripts
Fichero funci´n
             o
                         funci´n con el mismo nombre que funciones autom´ticas.
                                o                                             a
Fichero funci´n II
             o
Fichero funci´n III
             o
Funci´n autom´tica
     o         a
Funci´n autom´tica
     o         a
II
Desarrollo de
algoritmos
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e
                                                                                    42 / 66
Funci´n autom´tica II
                            o       a

´
Indice del
documento
                          Para usar una funci´n autom´tica como argumento, no hay
                                             o       a
Introducci´n a
          o               que poner “@”:
lenguajes avanzados
de computaci´n
             o            >> f = @(x) sin(x); int_def(f, 0, 1)
t´cnica
 e
Introducci´n al
          o
lenguaje Octave
                       Ejercicios 6
Matrices y arrays.
Estructuras de datos
                       1. Crea un fichero funci´n para resolver ecuaciones del tipo
                                               o
C´lculo simb´lico
 a          o
                           ae−x + b = 0
Visualizaci´n gr´fica
           o    a      2. Crea una funci´n autom´tica para f (x) = x3 atan( 1+x ).
                                         o        a                           x2
Ficheros en Octave     3. Dibuja la gr´fica de f entre -1 y 1
                                      a
Scripts
Fichero funci´n
             o
                       4. Calcula con int def.m su integral definida en [−1, 1].
Fichero funci´n II
             o
Fichero funci´n III
             o
Funci´n autom´tica
     o         a
Funci´n autom´tica
     o         a
II
Desarrollo de
algoritmos
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a          e
                                                                                 43 / 66
´
Indice del
documento
Introducci´n a
          o
lenguajes avanzados
de computaci´n
             o
t´cnica
 e
Introducci´n al
          o
lenguaje Octave
Matrices y arrays.
Estructuras de datos

C´lculo simb´lico
 a          o
                       Desarrollo de algoritmos
Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Algoritmos
Bucle for
Bucle while
Estructura if
Estructura if II
Estructura if III
Otros comandos
Otros comandos II
Otros comandos III
Depuraci´n
         o
Importaci´n de
         o
datos
                                                  44 / 66
Algoritmos

´
Indice del
documento
                         Un programa no suele tener una unica l´
                                                          ´     ınea de flujo.
Introducci´n a
          o              Las estructuras de control de flujo pueden ser
lenguajes avanzados
de computaci´n
t´cnica
 e
             o           •   repetitivas, permiten la repetici´n de comandos: for y
                                                              o
Introducci´n al
          o                  while;
lenguaje Octave
                         •   alternativas, permiten decidir seg´n una condici´n: if y
                                                                u            o
Matrices y arrays.
Estructuras de datos         switch (que no veremos);
C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Algoritmos
Bucle for
Bucle while
Estructura if
Estructura if II
Estructura if III
Otros comandos
Otros comandos II
Otros comandos III
Depuraci´n
         o
Importaci´n de
         o
datos
                                                                                  45 / 66
Bucle for

´
Indice del                for i=v
documento
Introducci´n a
          o                   comandos (que dependen de i)
lenguajes avanzados
de computaci´n
             o
                          end
t´cnica
 e
Introducci´n al
          o              v es un vector; en la iteraci´n j, i toma el valor de v(j).
                                                      o
lenguaje Octave
                         Los bucles pueden anidarse. Se recomienda “indentar” los
Matrices y arrays.
Estructuras de datos     comandos para facilitar la lectura.
C´lculo simb´lico
 a          o            Cuando sea posible, se recomienda usar operaciones
Visualizaci´n gr´fica
           o    a        vectoriales en vez de bucles.
Ficheros en Octave
                         Ejemplo: c´lculo del n!
                                    a
Desarrollo de
algoritmos                   fac = 1;
Algoritmos                   for i=2:n
Bucle for
Bucle while                     fac = fac*i;
Estructura if
Estructura if II
                             end
Estructura if III
Otros comandos
Otros comandos II
Otros comandos III
Depuraci´n
         o
Importaci´n de
         o
datos
                                                                                   46 / 66
Bucle while

´
Indice del
documento
                          while condici´n
                                       o
Introducci´n a
          o                   comandos
lenguajes avanzados
de computaci´n
             o            end
t´cnica
 e
Introducci´n al
          o              condici´n es una relaci´n l´gica.
                                o               o o
lenguaje Octave
                         while se suele usar cuando no es sencillo calcular el n´mero
                                                                                u
Matrices y arrays.
Estructuras de datos     de iteraciones.
                                                     1
C´lculo simb´lico
 a          o            Ejemplo: c´lculo de ∞ n4
                                    a           n=1
Visualizaci´n gr´fica
           o    a            n = 1; sum = 0;
Ficheros en Octave           while 1/n^4 > eps
Desarrollo de
algoritmos                      sum = sum + 1/n^4;
Algoritmos                      n = n+1;
Bucle for
Bucle while                  end
Estructura if
Estructura if II
Estructura if III
Otros comandos
Otros comandos II
Otros comandos III
Depuraci´n
         o
Importaci´n de
         o
datos
                                                                                 47 / 66
Estructura if

´
Indice del
documento
                          if condici´n 1
                                    o
Introducci´n a
          o                    comandos 1
lenguajes avanzados
de computaci´n
             o            [ elseif condici´n 2
                                           o
t´cnica
 e
                               comandos 2 ]
Introducci´n al
          o
lenguaje Octave           [ elseif . . . ]
Matrices y arrays.
Estructuras de datos
                          [ else
C´lculo simb´lico
 a          o
                               comandos n ]
Visualizaci´n gr´fica
           o    a         end
Ficheros en Octave
                         Si condici´n 1 es cierta, se ejecutan comandos 1.
                                   o
Desarrollo de
algoritmos               Si no y condici´n 2 es cierta, se ejecutan comandos 2.
                                        o
Algoritmos
Bucle for
                         Si ninguna condici´n es cierta, se ejecuta comandos n.
                                           o
Bucle while
Estructura if
Estructura if II
Estructura if III
Otros comandos
Otros comandos II
Otros comandos III
Depuraci´n
         o
Importaci´n de
         o
datos
                                                                                  48 / 66
Estructura if II

´
Indice del
documento
                          Ejemplo: funci´n definida a trozos
                                       o
Introducci´n a
          o                        x − 1,
                                              x ≤ −2,
lenguajes avanzados
                                     1 − x2 , −2 < x < 0,
                                  
de computaci´n
             o
t´cnica
 e                        f (x) =
                                   − 1 , x ≥ 0.
                                  
Introducci´n al
          o                       
lenguaje Octave
                                       x+1
Matrices y arrays.
Estructuras de datos          function y=f(x)
C´lculo simb´lico
 a          o                 if x<=-2
Visualizaci´n gr´fica
           o    a                  y=x-1;
Ficheros en Octave
                              elseif x<0
Desarrollo de
algoritmos                         y=1-x^2;
Algoritmos
Bucle for
                              else
Bucle while                        y=-1/(x+1);
Estructura if
Estructura if II              end
Estructura if III
Otros comandos
Otros comandos II
Otros comandos III
Depuraci´n
         o
Importaci´n de
         o
datos
                                                              49 / 66
Estructura if III

´
Indice del
documento
                          Para conseguir que f admita argumentos vectoriales, es
Introducci´n a
          o               necesario usar un bucle (no basta con usar operaciones
lenguajes avanzados
de computaci´n
             o            elementales, puesto que if no es elemental):
t´cnica
 e
                              function y=f(x)
Introducci´n al
          o
lenguaje Octave               for i=1:length(x)
Matrices y arrays.
Estructuras de datos
                                   if x(i)<=-2
C´lculo simb´lico
 a          o                           y(i)=x(i)-1;
Visualizaci´n gr´fica
           o    a                  elseif x(i)<0
Ficheros en Octave                      y(i)=1-x(i)^2;
Desarrollo de
algoritmos
                                   else
Algoritmos                              y(i)=-1/(x(i)+1);
Bucle for
Bucle while                        end
Estructura if                 end
Estructura if II
Estructura if III
Otros comandos            Ahora la gr´fica de f se obtiene con:
                                     a
Otros comandos II
Otros comandos III        >> x=-3:0.1:3; plot(x,f(x))
Depuraci´n
         o
Importaci´n de
         o
datos
                                                                                   50 / 66
Otros comandos

´
Indice del
documento
                         break, interrumpe la ejecuci´n del bucle m´s interno.
                                                     o             a
Introducci´n a
          o              %busqueda de la posicion del ´ltimo elemento negativo
                                                      u
lenguajes avanzados
de computaci´n
             o           for i=length(x):-1:1
t´cnica
 e
                               if x(i)<0
Introducci´n al
          o
lenguaje Octave                      break
Matrices y arrays.             end
Estructuras de datos

C´lculo simb´lico
 a          o
                         end
Visualizaci´n gr´fica
           o    a        disp([’La posici´n buscada es’ num2str(i)])
                                         o
Ficheros en Octave       return, interrumpe la ejecuci´n de una funci´n y devuelve el
                                                       o              o
Desarrollo de
algoritmos
                         control a quien la haya llamado (otra funci´n o el propio
                                                                    o
Algoritmos               Octave).
Bucle for
Bucle while
                         if x<=0
Estructura if                  disp(’log(x) no es real!’)
Estructura if II
Estructura if III              return %la funci´n se interrumpe, el programa contin´a
                                               o                                   u
Otros comandos           end
Otros comandos II
Otros comandos III
Depuraci´n
         o
Importaci´n de
         o
datos
                                                                                  51 / 66
Otros comandos II

´
Indice del
documento
                         error, interrumpe completamente la ejecuci´n del programa.
                                                                   o
Introducci´n a
          o              if x<=0
lenguajes avanzados
de computaci´n
             o                 error(’Error fatal: log(x) no es real!’)
t´cnica
 e
                         end
Introducci´n al
          o
lenguaje Octave          input, permite introducir datos por teclado.
Matrices y arrays.       >> x=input(’Introduzca un n´mero: ’)
                                                    u
Estructuras de datos

C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Algoritmos
Bucle for
Bucle while
Estructura if
Estructura if II
Estructura if III
Otros comandos
Otros comandos II
Otros comandos III
Depuraci´n
         o
Importaci´n de
         o
datos
                                                                               52 / 66
Otros comandos III

´
Indice del
documento
                       Ejercicios 7
Introducci´n a
          o
lenguajes avanzados
                       1. Calcula la suma de las componentes de un vector;
de computaci´n
t´cnica
 e
             o
                           comp´ralo con el resultado de sum.
                                 a
                                    x como la suma infinita     ∞ xn
Introducci´n al
          o            2. Calcula e                            n=0 n! .
lenguaje Octave
                       3. Construye una funci´n que eval´e f , definida por
                                                o         u
Matrices y arrays.
Estructuras de datos                   2 sen2 (2x), x ≤ 0,
C´lculo simb´lico
 a          o              f (x) =
                                       1 − e−x ,    x > 0.
Visualizaci´n gr´fica
           o    a

Ficheros en Octave
                           Dibuja su gr´fica.
                                         a
Desarrollo de          4. Escribe una funci´n que solicite al usuario en un bucle,
                                            o
algoritmos
Algoritmos
                           n´meros por teclado. Si el n´mero es positivo, debe escribir
                            u                           u
Bucle for                  su logaritmo; si es negativo, debe salir del bucle e informar
Bucle while
Estructura if              de que no puede calcular dicho logaritmo.
Estructura if II
Estructura if III
Otros comandos
Otros comandos II
Otros comandos III
Depuraci´n
         o
Importaci´n de
         o
datos
                                                                                   53 / 66
Depuraci´n
                               o

´
Indice del
documento
                         Para iniciar la depuraci´n en avisos y errores:
                                                 o
Introducci´n a
          o              debug_on_warning(1); debug_on_error(1);
lenguajes avanzados
de computaci´n
             o           Para gestionar puntos de interrupci´n:
                                                            o
t´cnica
 e
                         dbstop(’nombre_funcion’,15) %parada en la l´nea 15
                                                                    ı
Introducci´n al
          o
lenguaje Octave          dbstatus %muestra paradas establecidas
Matrices y arrays.       dbclear(’nombre_funcion’,15) %eliminaci´n de la parada
                                                                o
Estructuras de datos

C´lculo simb´lico
 a          o
                         Para mostrar el fichero: dbtype
Visualizaci´n gr´fica
           o    a        Para saber d´nde estamos parados: dbwhere
                                       o
Ficheros en Octave       Ir a la siguiente l´
                                            ınea: dbnext
Desarrollo de
algoritmos
                         Profundizar en las llamadas a funciones: dbstep
Algoritmos               Continuar la ejecuci´n: dbcont
                                               o
Bucle for
Bucle while              Cuando la ejecuci´n est´ parada, se pueden ejecutar otros
                                          o     a
Estructura if
Estructura if II         comandos (ver valor de variables,. . . )
Estructura if III
Otros comandos
Otros comandos II
Otros comandos III
Depuraci´n
         o
Importaci´n de
         o
datos
                                                                                  54 / 66
´
Indice del
documento
Introducci´n a
          o
lenguajes avanzados
de computaci´n
             o
t´cnica
 e
Introducci´n al
          o
lenguaje Octave
Matrices y arrays.
Estructuras de datos

C´lculo simb´lico
 a          o
                       Importaci´n de datos
                                o
Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
          o
datos
Datos
Datos II
Datos III
Datos IV
Aplicaciones al
c´lculo num´rico
 a          e




                                              55 / 66
Datos

´
Indice del
documento
                          save, salvado de variables (fichero binario con compresi´n):
                                                                                 o
Introducci´n a
          o               >> save fichero [variables]
lenguajes avanzados
de computaci´n
             o            load, carga de variables:
t´cnica
 e
                          >> load fichero [variables]
Introducci´n al
          o
lenguaje Octave           fopen, apertura de ficheros:
Matrices y arrays.
Estructuras de datos
                              fid=fopen(’fichero’,’permiso’)
C´lculo simb´lico
 a          o             Los permisos pueden ser:
Visualizaci´n gr´fica
           o    a
                          •    r, lectura de ficheros existentes.
Ficheros en Octave
                          •    w, escritura de ficheros; si existe, se borra.
Desarrollo de
algoritmos                •    a, escritura de ficheros; ; si existe, se a˜ade.
                                                                         n
Importaci´n de
datos
          o               •    A˜adiendo + se permite la operaci´n contraria.
                                 n                                  o
Datos
Datos II                  fclose, cierre de ficheros:
Datos III                     fclose(fid)
Datos IV
Aplicaciones al
c´lculo num´rico
 a          e          Lectura / escritura con formato binario: fread y fclose.

                                                                                  56 / 66
Datos II

´
Indice del
documento
                       Lectura con formato ascii:
Introducci´n a
          o                A=fscanf(fid, ’formato’[, sizeA])
lenguajes avanzados
de computaci´n
t´cnica
 e
             o
                          Lee datos del fichero con identificador fid y los guarda en A.
Introducci´n al
          o               sizeA puede ser un natural o un array [m,n]; si est´ presente,
                                                                             a
lenguaje Octave
                          lee sizeA elementos.
Matrices y arrays.
Estructuras de datos      formato es una cadena que describe los elementos a leer:
C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a
                          •   %d: entero;
Ficheros en Octave
                          •   %f: real
Desarrollo de             •   %s: cadena
algoritmos
Importaci´n de
          o               textscan, util si texto y n´meros est´n mezclados.
                                    ´                u         a
datos
Datos                  Escritura con formato ascii:
Datos II
Datos III                  fprintf(fid, ’formato’, A,. . . )
Datos IV
Aplicaciones al           Escribe las variables A,. . . en el fichero con identificador fid.
c´lculo num´rico
 a          e
                          formato puede contener descriptores como n (nueva l´    ınea).

                                                                                     57 / 66
Datos III

´
Indice del
documento
                          Ejemplo de escritura:
Introducci´n a
          o                fid = fopen(’datos.txt’,’w’);
lenguajes avanzados
de computaci´n
             o             fprintf(fid,’%f %f ’, [1:2; 3:4]); %por columnas
t´cnica
 e
                           fprintf(fid,’%s %d %f %d %d’,’asd’, 1, pi, [2;3]);
Introducci´n al
          o
lenguaje Octave            fclose(fid);
Matrices y arrays.
Estructuras de datos

C´lculo simb´lico
 a          o
                       El contenido de datos.txt es:
Visualizaci´n gr´fica
           o    a
                       1.000000 3.000000 2.000000 4.000000 asd 1 3.141593 2 3
Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
          o
datos
Datos
Datos II
Datos III
Datos IV
Aplicaciones al
c´lculo num´rico
 a          e




                                                                                58 / 66
Datos IV

´
Indice del
documento
                          Ejemplo de lectura:
Introducci´n a
          o                fid = fopen(’datos.txt’,’r’);
lenguajes avanzados
de computaci´n
             o             A=fscanf(fid,’%f’, [2 2]); %lee una matriz 2 x 2
t´cnica
 e
                           S=fscanf(fid,’%s’,1); %lee una cadena
Introducci´n al
          o
lenguaje Octave            V=fscanf(fid,’%f’); %lee reales hasta EOF
Matrices y arrays.
Estructuras de datos
                           fclose(fid);
C´lculo simb´lico
 a          o

Visualizaci´n gr´fica
           o    a
                       El resultado es:
Ficheros en Octave     A =  1     2
Desarrollo de
algoritmos                  3     4
Importaci´n de
          o            S = asd
datos
Datos                  V = 1.0000
Datos II                   3.1416
Datos III
Datos IV                   2.0000
Aplicaciones al
c´lculo num´rico
 a          e
                           3.0000


                                                                       59 / 66
´
Indice del
documento
Introducci´n a
          o
lenguajes avanzados
de computaci´n
             o
t´cnica
 e
Introducci´n al
          o
lenguaje Octave
Matrices y arrays.
Estructuras de datos

C´lculo simb´lico
 a          o
                       Aplicaciones al c´lculo num´rico
                                        a         e
Visualizaci´n gr´fica
           o    a

Ficheros en Octave
Desarrollo de
algoritmos
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a            e
Interpolaci´n y
           o
ajuste
Resoluci´n de
         o
ecuaciones
Resoluci´n simb´lica
         o      o
de ecuaciones
Optimizaci´no
Integraci´n
         o
Ecuaciones
                                                          60 / 66
diferenciales
Interpolaci´n y ajuste
                                  o

´
Indice del
documento
                          polyfit, interpolaci´n polinomial:
                                              o
Introducci´n a
          o               >> x=[-5:5]; f=@(x)1./(1+x.^2); %(x,f(x)), 11 nodos de interp.
lenguajes avanzados
de computaci´n
             o            >> c=polyfit(x,f(x),10) %c, coeficientes del polinomio
t´cnica
 e
                          >> xx=-5:0.1:5; %xx, vector de abscisas para la gr´fica
                                                                            a
Introducci´n al
          o
lenguaje Octave           >> plot(x,f(x),’*’, xx,f(xx), xx, polyval(c,xx)) %gr´fico
                                                                              a
Matrices y arrays.        >> legend(’nodos’, ’funci´n’, ’polinomio de interpolaci´n’)
                                                   o                             o
Estructuras de datos

C´lculo simb´lico
 a          o
                          interp1, interpolaci´n con rectas a trozos:
                                              o
Visualizaci´n gr´fica
           o    a
                          >> plot(xx,f(xx), xx,interp1(x,f(x),xx,’linear’))
Ficheros en Octave
Desarrollo de
                          interp1, interpolaci´n con splines:
                                              o
algoritmos
                          >> plot(xx,f(xx), xx,interp1(x,f(x),xx,’spline’))
Importaci´n de
         o
datos
Aplicaciones al
                          polyfit, ajuste polinomial:
c´lculo num´rico
 a            e           >> c=polyfit(x,f(x),2) %grado < num. nodos +1
Interpolaci´n y
           o
ajuste                    >> plot(x,f(x),’*’, xx, polyval(c,xx)) %gr´fico
                                                                    a
Resoluci´n de
         o
ecuaciones
Resoluci´n simb´lica
         o      o
de ecuaciones
Optimizaci´no
Integraci´n
         o
Ecuaciones
                                                                                    61 / 66
diferenciales
Resoluci´n de ecuaciones
                               o

´
Indice del
documento
                         Resoluci´n del sistema lineal Ax = b:
                                 o
Introducci´n a
          o              >> x=Ab
lenguajes avanzados
de computaci´n
             o           Si es SCD, devuelve la unica soluci´n del sistema.
                                                ´           o
t´cnica
 e
                         En otro caso, devuelve la soluci´n por m´
                                                         o       ınimos cuadrados.
Introducci´n al
          o
lenguaje Octave          fzero, resoluci´n de ecuaciones no lineales:
                                        o
Matrices y arrays.       >> f=@cos(x)-x; fzero(f,0)
Estructuras de datos

C´lculo simb´lico
 a          o
                         fsolve, resoluci´n de sistemas no lineales:
                                         o
Visualizaci´n gr´fica
           o    a        >> fsolve(@f,[0 0])
Ficheros en Octave       Se ha creado, previamente, el fichero funci´n:
                                                                   o
Desarrollo de
algoritmos               function y = f(x)
Importaci´n de
         o               y(1)=x(1)^2+3*x(1)-1;
datos
Aplicaciones al
                         y(2)=x(1)*x(2)-x(2)^2+3;
c´lculo num´rico
 a            e
Interpolaci´n y
           o
ajuste
Resoluci´n de
         o
ecuaciones
Resoluci´n simb´lica
         o      o
de ecuaciones
Optimizaci´no
Integraci´n
         o
Ecuaciones
                                                                                62 / 66
diferenciales
Resoluci´n simb´lica de ecuaciones
                               o      o

´
Indice del
documento
                         symlsolve, resoluci´n de ecuaciones lineales:
                                            o
Introducci´n a
          o              >> symbols; x=sym(’x’); y=sym(’y’);
lenguajes avanzados
de computaci´n
             o           >> S=symlsolve({x+y-3,x-y+5},{x,y})
t´cnica
 e
Introducci´n al
          o
                         S tiene dos elementos: S{1} y S{2}.
lenguaje Octave
                         symfsolve, resoluci´n de ecuaciones no lineales usando
                                            o
Matrices y arrays.
Estructuras de datos     fsolve():
C´lculo simb´lico
 a          o            >> symbols; x=sym(’x’); y=sym(’y’);
Visualizaci´n gr´fica
           o    a        >> f=x^2+3*x-1;   g=x*y-y^2+3;
Ficheros en Octave       >> a = symfsolve(f,g); %los valores iniciales se toman a 0
Desarrollo de
algoritmos               >> a = symfsolve(f,g,x,1,y,5);    %valores iniciales, x=1 e y=5
Importaci´n de
         o               >> a = symfsolve(f,g,{x==1,y==5}); %´dem
                                                             ı
datos
Aplicaciones al
                         >> a = symfsolve(f,g,[1 5]); %´dem
                                                       ı
c´lculo num´rico
 a            e
Interpolaci´n y
           o
                         Si las variables no se especifican en las condiciones iniciales,
ajuste
Resoluci´n de
         o
                         se toman alfab´ticamente.
                                         e
ecuaciones
Resoluci´n simb´lica
         o      o
de ecuaciones
Optimizaci´no
Integraci´n
         o
Ecuaciones
                                                                                     63 / 66
diferenciales
Optimizaci´n
                                 o

´
Indice del
documento
                         Precisa del paquete optim de Octave-Forge.
Introducci´n a
          o              fminsearch, b´squeda de un m´
                                        u               ınimo (Nelder-Mead
lenguajes avanzados
de computaci´n
             o           Simplex):
t´cnica
 e
                         >> f=@(x)x^2*cos(x);
Introducci´n al
          o
lenguaje Octave          >> fminsearch(f,2) %parte de x0 = 2
Matrices y arrays.
Estructuras de datos     Se aplica a funciones multidimensionales:
C´lculo simb´lico
 a          o            >> f = @(x) x(1)^2+x(2)^2; fminsearch(f,[1 1])
Visualizaci´n gr´fica
           o    a
                         fminbnd, b´squeda de un m´
                                   u              ınimo con restricciones (Golden
Ficheros en Octave
Desarrollo de
                         Search):
algoritmos               >> fminbnd(f,2,4) %en [2, 4]
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a            e
Interpolaci´n y
           o
ajuste
Resoluci´n de
         o
ecuaciones
Resoluci´n simb´lica
         o      o
de ecuaciones
Optimizaci´no
Integraci´n
         o
Ecuaciones
                                                                              64 / 66
diferenciales
Integraci´n
                                o

´
Indice del
documento
                          quad, integraci´n definida:
                                         o
Introducci´n a
          o               >> f=@(x) x*sin(x); quad(f,0,3)
lenguajes avanzados
de computaci´n
             o            quadl, quadgk y quadv, integraci´n num´rica adaptativa.
                                                            o      e
t´cnica
 e
                          trapz, integraci´n definida (regla de trapecios):
                                          o
Introducci´n al
          o
lenguaje Octave           >> x=[0 1 2 3]; y = [0.5 0.85 0.67 0.9];
Matrices y arrays.        >> trapz(x,y)
Estructuras de datos

C´lculo simb´lico
 a          o
                          dblquad, integraci´n doble:
                                            o
Visualizaci´n gr´fica
           o    a         >> f=@(x,y) sin(pi.*x.*y).*sqrt(x.*y);
Ficheros en Octave        >> I=dblquad(f, 0,1, 0,1)
Desarrollo de
algoritmos                Para integraci´n triple, triplequad.
                                        o
Importaci´n de
         o
datos
Aplicaciones al
c´lculo num´rico
 a            e
Interpolaci´n y
           o
ajuste
Resoluci´n de
         o
ecuaciones
Resoluci´n simb´lica
         o      o
de ecuaciones
Optimizaci´no
Integraci´n
         o
Ecuaciones
                                                                               65 / 66
diferenciales
Ecuaciones diferenciales

´
Indice del
documento
                          Consideremos el problema de valor inicial:
Introducci´n a
          o
                                        dx = x2 log(t + 1) − x ,
                                       
lenguajes avanzados
de computaci´n
             o
t´cnica
 e                                        dt                    t+1
Introducci´n al
          o                            x(0) = 1.
lenguaje Octave
Matrices y arrays.
Estructuras de datos
                          lsode, resoluci´n de una e.d.o.:
                                         o
C´lculo simb´lico
 a          o             >> t = 0:0.1:3;
Visualizaci´n gr´fica
           o    a         >> x = lsode(f,1,t)
Ficheros en Octave        >> plot(t,x)
Desarrollo de
algoritmos                Se ha creado, previamente, el fichero funci´n:
                                                                    o
Importaci´n de
         o                function xp=f(x,t)
datos
Aplicaciones al           xp=x^2*log(t+1)-x/(t+1);
c´lculo num´rico
 a            e
Interpolaci´n y
ajuste
           o
                          Para sistemas de ecuaciones, hay que usar argumentos
Resoluci´n de
         o
ecuaciones
                          vectoriales en la funci´n f.
                                                 o
Resoluci´n simb´lica
         o      o
de ecuaciones
Optimizaci´no
Integraci´n
         o
Ecuaciones
                                                                                 66 / 66
diferenciales

Más contenido relacionado

La actualidad más candente

Interpolación método de Lagrange
Interpolación método de LagrangeInterpolación método de Lagrange
Interpolación método de Lagrange
Kike Prieto
 
Funciones hiperbolicas
Funciones hiperbolicasFunciones hiperbolicas
Funciones hiperbolicas
dalila69
 
Pseudocódigo
PseudocódigoPseudocódigo
Pseudocódigo
coldclean
 
7 aproximacion de funciones
7 aproximacion de funciones7 aproximacion de funciones
7 aproximacion de funciones
fenix1329
 
1º practica medidas de frecuencia y tendencia central
1º practica medidas de frecuencia y tendencia central1º practica medidas de frecuencia y tendencia central
1º practica medidas de frecuencia y tendencia central
Pia Hurtado Burgos
 
Combinacion lineal ejercicios
Combinacion lineal ejerciciosCombinacion lineal ejercicios
Combinacion lineal ejercicios
algebra
 
Ejercicios jacobi
Ejercicios jacobiEjercicios jacobi
Ejercicios jacobi
djp951
 

La actualidad más candente (20)

1 Capítulo 1 Conjuntos Numéricos
1  Capítulo 1  Conjuntos  Numéricos1  Capítulo 1  Conjuntos  Numéricos
1 Capítulo 1 Conjuntos Numéricos
 
Diferenciación numérica Metodos Numericos
Diferenciación numérica Metodos NumericosDiferenciación numérica Metodos Numericos
Diferenciación numérica Metodos Numericos
 
Pseint
PseintPseint
Pseint
 
Interpolación método de Lagrange
Interpolación método de LagrangeInterpolación método de Lagrange
Interpolación método de Lagrange
 
Operadores y expresiones en pseudocódigo
Operadores y expresiones en pseudocódigoOperadores y expresiones en pseudocódigo
Operadores y expresiones en pseudocódigo
 
Funciones hiperbolicas
Funciones hiperbolicasFunciones hiperbolicas
Funciones hiperbolicas
 
Tabla de integrales (integrales trigonometricas)
Tabla de integrales (integrales trigonometricas)Tabla de integrales (integrales trigonometricas)
Tabla de integrales (integrales trigonometricas)
 
Pseudocódigo
PseudocódigoPseudocódigo
Pseudocódigo
 
Ecuaciones diferenciales no lineales
Ecuaciones diferenciales no linealesEcuaciones diferenciales no lineales
Ecuaciones diferenciales no lineales
 
Limites trigonométricos
Limites trigonométricosLimites trigonométricos
Limites trigonométricos
 
7 aproximacion de funciones
7 aproximacion de funciones7 aproximacion de funciones
7 aproximacion de funciones
 
Cálculo integral grupo # 10
Cálculo integral grupo # 10Cálculo integral grupo # 10
Cálculo integral grupo # 10
 
Que es el wronskiano
Que es el wronskianoQue es el wronskiano
Que es el wronskiano
 
1º practica medidas de frecuencia y tendencia central
1º practica medidas de frecuencia y tendencia central1º practica medidas de frecuencia y tendencia central
1º practica medidas de frecuencia y tendencia central
 
Interpolacion Hermite
Interpolacion HermiteInterpolacion Hermite
Interpolacion Hermite
 
Errores de redondeo y aproximación
Errores de redondeo y aproximaciónErrores de redondeo y aproximación
Errores de redondeo y aproximación
 
Funciones logarítmicas
Funciones logarítmicasFunciones logarítmicas
Funciones logarítmicas
 
Transformada de-laplace
Transformada de-laplaceTransformada de-laplace
Transformada de-laplace
 
Combinacion lineal ejercicios
Combinacion lineal ejerciciosCombinacion lineal ejercicios
Combinacion lineal ejercicios
 
Ejercicios jacobi
Ejercicios jacobiEjercicios jacobi
Ejercicios jacobi
 

Destacado

Fundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octaveFundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octave
Gabriel Romero
 
Como hacer el marco de referencia
Como hacer el marco de referenciaComo hacer el marco de referencia
Como hacer el marco de referencia
Pedro Brito
 

Destacado (12)

¿MATLAB? Yo uso Octave UPM
¿MATLAB? Yo uso Octave UPM¿MATLAB? Yo uso Octave UPM
¿MATLAB? Yo uso Octave UPM
 
Octave
OctaveOctave
Octave
 
Fundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octaveFundamentos de computación(ICM) en octave
Fundamentos de computación(ICM) en octave
 
Tutorial descilab
Tutorial descilabTutorial descilab
Tutorial descilab
 
Rear Window
Rear WindowRear Window
Rear Window
 
Balance de materia en procesos(Manjar de leche)
Balance de materia en procesos(Manjar de leche)Balance de materia en procesos(Manjar de leche)
Balance de materia en procesos(Manjar de leche)
 
Reactor flujo piston en MATLAB - Octave - Craqueo termico
Reactor flujo piston en MATLAB - Octave - Craqueo termicoReactor flujo piston en MATLAB - Octave - Craqueo termico
Reactor flujo piston en MATLAB - Octave - Craqueo termico
 
Cálculo Raíces Con Octave
Cálculo Raíces Con OctaveCálculo Raíces Con Octave
Cálculo Raíces Con Octave
 
Campos vectoriales con Matlab y Mathematica
Campos vectoriales con Matlab y MathematicaCampos vectoriales con Matlab y Mathematica
Campos vectoriales con Matlab y Mathematica
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo
 
Ingeniería de Procesos
Ingeniería de ProcesosIngeniería de Procesos
Ingeniería de Procesos
 
Como hacer el marco de referencia
Como hacer el marco de referenciaComo hacer el marco de referencia
Como hacer el marco de referencia
 

Similar a Introduccion al Octave

INTRODUCCION A LA PROGRAMACION.pptx
INTRODUCCION A LA PROGRAMACION.pptxINTRODUCCION A LA PROGRAMACION.pptx
INTRODUCCION A LA PROGRAMACION.pptx
GASY060730
 
Clase # 1 fundamentos de programación
Clase # 1   fundamentos de programaciónClase # 1   fundamentos de programación
Clase # 1 fundamentos de programación
pamelafajardovera
 
Portafolio de calculo
Portafolio de calculoPortafolio de calculo
Portafolio de calculo
Cess Pino
 
Portafolio de calculo
Portafolio de calculoPortafolio de calculo
Portafolio de calculo
Cess Pino
 

Similar a Introduccion al Octave (20)

Portafolio de evidencias actividades
Portafolio de evidencias actividadesPortafolio de evidencias actividades
Portafolio de evidencias actividades
 
INTRODUCCION A LA PROGRAMACION.pptx
INTRODUCCION A LA PROGRAMACION.pptxINTRODUCCION A LA PROGRAMACION.pptx
INTRODUCCION A LA PROGRAMACION.pptx
 
Transp objetos
Transp objetosTransp objetos
Transp objetos
 
Transp objetos
Transp objetosTransp objetos
Transp objetos
 
Transp objetos
Transp objetosTransp objetos
Transp objetos
 
Clase # 1 fundamentos de programación
Clase # 1   fundamentos de programaciónClase # 1   fundamentos de programación
Clase # 1 fundamentos de programación
 
Deber n° 09 lenguajes de programación.
Deber n° 09 lenguajes de programación.Deber n° 09 lenguajes de programación.
Deber n° 09 lenguajes de programación.
 
Portafolio calculo diferencial2
Portafolio calculo diferencial2Portafolio calculo diferencial2
Portafolio calculo diferencial2
 
Portafolio calculo diferencial2
Portafolio calculo diferencial2Portafolio calculo diferencial2
Portafolio calculo diferencial2
 
Pres algoritmos
Pres algoritmosPres algoritmos
Pres algoritmos
 
Algoritmos2
Algoritmos2Algoritmos2
Algoritmos2
 
Algoritmos2
Algoritmos2Algoritmos2
Algoritmos2
 
Portafolio de calculo
Portafolio de calculoPortafolio de calculo
Portafolio de calculo
 
Portafolio de calculo
Portafolio de calculoPortafolio de calculo
Portafolio de calculo
 
Pres algoritmos
Pres algoritmosPres algoritmos
Pres algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Programación en Lenguajes Estructurados 2012. Parte II
Programación en Lenguajes Estructurados 2012. Parte IIProgramación en Lenguajes Estructurados 2012. Parte II
Programación en Lenguajes Estructurados 2012. Parte II
 

Último

Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
RigoTito
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
EliaHernndez7
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Fernando Solis
 

Último (20)

SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Tema 11. Dinámica de la hidrosfera 2024
Tema 11.  Dinámica de la hidrosfera 2024Tema 11.  Dinámica de la hidrosfera 2024
Tema 11. Dinámica de la hidrosfera 2024
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
Procedimientos para la planificación en los Centros Educativos tipo V ( multi...
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptxLA LITERATURA DEL BARROCO 2023-2024pptx.pptx
LA LITERATURA DEL BARROCO 2023-2024pptx.pptx
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).pptPINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
PINTURA DEL RENACIMIENTO EN ESPAÑA (SIGLO XVI).ppt
 
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
🦄💫4° SEM32 WORD PLANEACIÓN PROYECTOS DARUKEL 23-24.docx
 
Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024Interpretación de cortes geológicos 2024
Interpretación de cortes geológicos 2024
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
Concepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptxConcepto y definición de tipos de Datos Abstractos en c++.pptx
Concepto y definición de tipos de Datos Abstractos en c++.pptx
 

Introduccion al Octave

  • 1. Introducci´n al Octave o Francisco Pena (USC) 29 de diciembre de 2010 1 / 66
  • 2. ´ Indice del documento ´ Indice del documento 1. Introducci´n a lenguajes avanzados de computaci´n t´cnica. o o e Introducci´n a o 2. Introducci´n al lenguaje Octave. o lenguajes avanzados de computaci´n o 3. Matrices y arrays. Estructuras de datos. t´cnica e 4. C´lculo simb´lico. a o Introducci´n al o lenguaje Octave 5. Visualizaci´n gr´fica. o a Matrices y arrays. Estructuras de datos 6. Ficheros en Octave. C´lculo simb´lico a o 7. Desarrollo de algoritmos. Visualizaci´n gr´fica o a 8. Importaci´n de datos. o Ficheros en Octave 9. Aplicaciones al c´lculo num´rico. a e Desarrollo de algoritmos Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 2 / 66
  • 3. ´ Indice del documento Introducci´n a o lenguajes avanzados de computaci´no t´cnica e Lenguajes Lenguajes II Lenguajes III Lenguajes IV Introducci´n a lenguajes avanzados de o Lenguajes V Introducci´n al o computaci´n t´cnica o e lenguaje Octave Matrices y arrays. Estructuras de datos C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 3 / 66
  • 4. Lenguajes ´ Indice del documento C´lculo simb´lico: se trabaja con constantes y expresiones a o Introducci´n a o simb´licas. o lenguajes avanzados √ de computaci´no • 2, constante simb´lica que representa la ra´ de 2; o ız t´cnica e √ 2 Lenguajes • 2 , constante simb´lica que representa el numero 2. o Lenguajes II Lenguajes III Lenguajes IV • x2 , expresi´n simb´lica que representa la funci´n o o o Lenguajes V matem´tica f (x) = x2 ; a Introducci´n al o lenguaje Octave • x2 dx, su integral indefinida es otra expresi´n simb´lica, o o x3 Matrices y arrays. Estructuras de datos 3 + C. C´lculo simb´lico a o Un programa que implementa el c´lculo simb´lico suele a o Visualizaci´n gr´fica o a llamarse “sistema de ´lgebra computacional”. a Ficheros en Octave Los m´s conocidos son Mathematica, Maple y Maxima. a Desarrollo de algoritmos Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 4 / 66
  • 5. Lenguajes II ´ Indice del documento A menor escala, Octave tambi´n puede operar e Introducci´n a o simb´licamente. o lenguajes avanzados de computaci´no El c´lculo simb´lico es util para a o ´ t´cnica e Lenguajes • simplificaci´n de expresiones, o x2 + 2x + 1 → (x + 1)2 Lenguajes II Lenguajes III Lenguajes IV • resoluci´n exacta de ecuaciones lineales o no lineales, o Lenguajes V x2 + xy + y = 3 Introducci´n al o → 1 , −3/2 3 1 lenguaje Octave x2 − 4x + 3 = 0 Matrices y arrays. Estructuras de datos • c´lculo de l´ a ımites, C´lculo simb´lico a o l´ x→1 x2 y → y ım Visualizaci´n gr´fica o a • c´lculo de derivadas, integrales indefinidas a Ficheros en Octave d Desarrollo de dx sin(x) → cos(x) algoritmos • resoluci´n exacta de ecuaciones diferenciales. o Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 5 / 66
  • 6. Lenguajes III ´ Indice del documento A veces, el c´lculo simb´lico no puede ser realizado, por a o Introducci´n a o limitaciones del propio sistema o por impedimentos de tipo lenguajes avanzados de computaci´no matem´tico. a t´cnica e Lenguajes C´lculo num´rico: se trabaja con n´meros representables en a e u Lenguajes II un ordenador. Lenguajes III √ Lenguajes IV • √ se almacena como 1.414213562373095; 2 Lenguajes V 2 Introducci´n al o • 2 , es un n´mero pr´ximo a 2. u o lenguaje Octave • El uso de funciones se limita a c´lculos que devuelven a 1 Matrices y arrays. Estructuras de datos n´meros: 0 x2 dx, es un n´mero pr´ximo a 1/3. u u o C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 6 / 66
  • 7. Lenguajes IV ´ Indice del documento Con el c´lculo num´rico es posible hallar un resultado a e Introducci´n a o aproximado de los problemas anteriores, incluso cuando el lenguajes avanzados de computaci´no c´lculo simb´lico falla. a o t´cnica e Lenguajes Su limitaci´n reside en que s´lo obtiene resultados n´mericos: o o u Lenguajes II Lenguajes III • Con c´lculo num´rico podemos saber que la derivada de a e Lenguajes IV Lenguajes V x2 en x=2 es 4; Introducci´n al o • Solo con c´lculo simb´lico podremos ver que la derivada a o lenguaje Octave en todo punto es 2x. Matrices y arrays. Estructuras de datos C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 7 / 66
  • 8. Lenguajes V ´ Indice del documento El programa orientado al c´lculo num´rico m´s conocido es a e a Introducci´n a o Matlab. lenguajes avanzados de computaci´n t´cnica e o • GNU Octave pretende ser un clon de software libre de Lenguajes Matlab. Se diferencia en la interfaz gr´fica y las a Lenguajes II Lenguajes III toolboxes (por ejemplo, de c´lculo simb´lico). a o Lenguajes IV • Scilab ha sido desarrollado por INRIA. No es totalmente Lenguajes V Introducci´n al o compatible con Matlab, pero se trabaja en un traductor lenguaje Octave de Matlab a Scilab. Matrices y arrays. Estructuras de datos Otras herramientas de c´lculo cient´ a ıfico son: C´lculo simb´lico a o Visualizaci´n gr´fica o a • R es un lenguaje desarrollado principalmente para an´lisis a Ficheros en Octave estad´ ıstico; Desarrollo de • Sage es una aplicaci´n para c´lculo cient´ o a ıfico desarrollada algoritmos Importaci´n de o a partir de Python. datos Aplicaciones al c´lculo num´rico a e 8 / 66
  • 9. ´ Indice del documento Introducci´n a o lenguajes avanzados de computaci´n o t´cnica e Introducci´n al o lenguaje Octave Introducci´n o Introducci´n II o Primeros comandos Introducci´n al lenguaje Octave o Variables Variables II Variables III Recuperaci´n de o comandos Expresiones escalares Expresiones escalares II Matrices y arrays. Estructuras de datos C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o 9 / 66 datos
  • 10. Introducci´n o ´ Indice del documento GNU Octave es un language pensado para el c´lculo a Introducci´n a o num´rico (http://www.gnu.org/software/octave/) que posee e lenguajes avanzados de computaci´n o una interfaz de l´ ınea de comando. t´cnica e Octave-Forge es una comunidad de desarrollo que Introducci´n al o lenguaje Octave proporciona paquetes para varios problemas. Los paquetes Introducci´n o Introducci´n II o disponibles se describen en Primeros comandos http://octave.sourceforge.net/packages.php. Variables Variables II QtOctave es una interfaz gr´fica para Octave a Variables III Recuperaci´n de o (http://qtoctave.wordpress.com/). comandos Expresiones escalares Existen instaladores para GNU Linux y Mac OS. Expresiones escalares II El paquete precompilado para Windows est´ en Octave-Forge a Matrices y arrays. Estructuras de datos (oct. 2010). C´lculo simb´lico a o • Se recomienda activar los paquetes symbolic y optim. Visualizaci´n gr´fica o a • Comprobar bugs como: pkg rebuild -noauto oct2mat Ficheros en Octave Desarrollo de algoritmos Importaci´n de o 10 / 66 datos
  • 11. Introducci´n II o ´ Indice del documento Si usamos QtOctave, podremos distinguir varias ventanas: Introducci´n a o lenguajes avanzados • Terminal, para escribir los comandos Octave; de computaci´n t´cnica e o • Commands’ List, refleja los comandos ya escritos; Introducci´n al o • Variables’ List, refleja las variables creadas; lenguaje Octave Introducci´n o • Navigator, muestra la carpeta por defecto; Introducci´n II o • Editor, permite editar ficheros. Primeros comandos Variables Variables II Variables III Recuperaci´n de o comandos Expresiones escalares Expresiones escalares II Matrices y arrays. Estructuras de datos C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o 11 / 66 datos
  • 12. Primeros comandos ´ Indice del documento Al ser un lenguaje interpretado, los comandos se ejecutan Introducci´n a o uno a uno, terminados con retorno de carro. lenguajes avanzados de computaci´n o diary, para volcar lo mostrado a un fichero: t´cnica e >> diary %vuelca al fichero ’diary’ de la capeta por defecto Introducci´n al o lenguaje Octave >> diary file %´dem al fichero ’file’ ı Introducci´n o Introducci´n II o >> diary off %interrumpe el volcado Primeros comandos help, para solicitar ayuda: Variables Variables II >> help diary %da ayuda sobre el comando ’diary’ Variables III Recuperaci´n de o La ayuda online est´ en a comandos http://www.gnu.org/software/octave/doc/interpreter/ Expresiones escalares Expresiones escalares II pwd, para ver la carpeta por defecto. Matrices y arrays. Estructuras de datos cd, para cambiar de carpeta: C´lculo simb´lico a o >> cd Z:mi_carpeta %cambia la carpeta por defecto Visualizaci´n gr´fica o a >> cd .. %se desplaza a la carpeta padre Ficheros en Octave ls, para ver el contenido de la carpeta. Desarrollo de algoritmos Importaci´n de o 12 / 66 datos
  • 13. Variables ´ Indice del documento Las variables num´ricas no necesitan declararse: e Introducci´n a o >> a=1/3 lenguajes avanzados de computaci´n o Cuando se asigna otro valor, el anterior desaparece: t´cnica e >> a=1/6 Introducci´n al o lenguaje Octave Las variables creadas se guardan en la Variables’ List: Introducci´n o Introducci´n II o >> whos Primeros comandos Todo c´lculo no asignado se guarda en la variable ans: a Variables Variables II >> 1/4 Variables III Recuperaci´n de o format, distintas formas de ver (no de calular) el valor: comandos >> format short %punto fijo, 4 decimales Expresiones escalares Expresiones escalares >> format long %punto fijo, 15 decimales II Matrices y arrays. >> format short e %punto flotante, 4 decimales Estructuras de datos >> format long e %punto flotante, 15 decimales C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o 13 / 66 datos
  • 14. Variables II ´ Indice del documento clear, borra variables: Introducci´n a o >> clear a %borra la variable a lenguajes avanzados de computaci´n o >> clear %borra todas las variables t´cnica e Los nombres de variables deben debe tener 31 caracteres Introducci´n al o lenguaje Octave como m´ximo, empezar por una letra y contener letras, a Introducci´n o Introducci´n II o n´meros y “ ”, pero no espacios en blanco. u Primeros comandos >> n_2=44 %es correcto, no as´ 2_n ´ n 2 ı o Variables Variables II Se distingue entre may´sculas y min´sculas. u u Variables III Recuperaci´n de o Varios comandos en linea se separan con “,” o “;”. comandos >> a=4; b2=10^(2-a) Expresiones escalares Expresiones escalares Los terminados con “;” se ejecutan sin mostrar el resultado. II Matrices y arrays. Todo lo que sigue a % se considera un comentario. Estructuras de datos C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o 14 / 66 datos
  • 15. Variables III ´ Indice del documento Un comando se extiende por varias l´ ıneas con . . . : Introducci´n a o >> Nombre_muy_largo=... lenguajes avanzados de computaci´n o 2.e-4*23 t´cnica e No se recomienda usar nombres propios de Octave: Introducci´n al o lenguaje Octave Introducci´n o • pi, valor de π, Introducci´n II o • i, j, valor del n´mero imaginario, u Primeros comandos Variables • inf, representa el infinto, ∞, Variables II Variables III • NaN, representa la indeterminaci´n. o Recuperaci´n de o comandos Ojo, el n´mero e se escribe evaluando la exponecial, exp(1), u Expresiones escalares Expresiones escalares pero e2 no se escribe exp(1)^2 sino exp(2). II Matrices y arrays. Estructuras de datos C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o 15 / 66 datos
  • 16. Recuperaci´n de comandos o ´ Indice del documento Solo se puede modificar el comando de la linea actual. Introducci´n a o Para recuperar un comando previo podemos: lenguajes avanzados de computaci´n t´cnica e o • copiarlo desde la ventana Commands’ List o Introducci´n al o • usar el cursor “flecha hacia arriba” ↑ o lenguaje Octave Introducci´n o • escribir las primeras letras del comando y pulsar ↑ para Introducci´n II o Primeros comandos navegar solo por los comandos que empiezan por esas Variables letras. Variables II Variables III Recuperaci´n de o Con la tecla “Esc” se borra lo escrito. comandos Expresiones escalares Expresiones escalares II Matrices y arrays. Estructuras de datos C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o 16 / 66 datos
  • 17. Expresiones escalares ´ Indice del documento Las operaciones b´sicas son + - * / ∧ a Introducci´n a o La prioridad es la misma que en las calculadoras. lenguajes avanzados de computaci´n o Se pueden usar par´ntesis para cambiarlas. e t´cnica e Introducci´n al o Ojo, 1/6 no es 1/2*3 sino 1/(2*3). lenguaje Octave Hay muchas funciones intr´ınsecas (ver ayuda online): Introducci´n o Introducci´n II o • trigonom´ticas: sin, cos, tan, sec, csc,. . . e Primeros comandos Variables • trigonom´ticas inversas: asin, acos, . . . e Variables II Variables III • logar´ ıtmicas: log, log10, . . . Recuperaci´n de comandos o • para complejos: imag, real, . . . Expresiones escalares • enteros: floor, round, mod, sign, . . . Expresiones escalares II • otras: sqrt, abs, sinh, . . . Matrices y arrays. Estructuras de datos C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o 17 / 66 datos
  • 18. Expresiones escalares II ´ Indice del documento Ejercicios 1 Introducci´n a o lenguajes avanzados 1. Inicia el volcado con diary. de computaci´n t´cnica e o 2. Calcula eiπ + 1. Introducci´n al o 3. Calcula 0/0. lenguaje Octave Introducci´n o 4. Guarda | cos(3)2 | − 6 2 y | cos(32 )| − 3·2 en dos variables. 3 6 Introducci´n II o 5. Comprueba que se han guardado en la Variables’ List. Primeros comandos Variables 6. Borra las variables. Variables II Variables III 7. Termina el volcado y comprueba el contenido del fichero. Recuperaci´n de o comandos Expresiones escalares Expresiones escalares II Matrices y arrays. Estructuras de datos C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o 18 / 66 datos
  • 19. ´ Indice del documento Introducci´n a o lenguajes avanzados de computaci´n o t´cnica e Introducci´n al o lenguaje Octave Matrices y arrays. Estructuras de datos Vectores Matrices y arrays. Estructuras de datos Vectores II Vectores III Vectores IV Matrices Matrices II Matrices III Otros datos Estructuras y celdas C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos 19 / 66 Aplicaciones al
  • 20. Vectores ´ Indice del documento Vectores dados manualmente: Introducci´n a o >> v=[1 3 5 7] %fila, componentes separadas por " " ´ "," o lenguajes avanzados de computaci´n o >> w=[1;3;5;7] %columna, componentes separadas por ";" t´cnica e Introducci´n al o Ojo, cuidado con los espacios en las filas: [2, 4] se obtiene lenguaje Octave Matrices y arrays. con [2 1+3] o [2, 1 +3], pero no con [2 1 +3]. Estructuras de datos Vectores con una ley de formaci´n: o Vectores Vectores II >> q=2:2:20 %inicio:incremento:fin Vectores III >> y=2:2:21 %es el mismo vector Vectores IV Matrices >> v=8:-1:1 %va de 8 a 1 Matrices II >> r=1:5 %si el incremento es 1, se puede omitir Matrices III Otros datos >> q2=linspace(2,20,10) %inicio, fin, num. componentes Estructuras y celdas >> m=ones(1,20) %fila de 20 unos C´lculo simb´lico a o >> n=zeros(20,1) %columna de 20 ceros Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos 20 / 66 Aplicaciones al
  • 21. Vectores II ´ Indice del Las operaciones b´sicas matriciales son + - * / a ∧ documento Introducci´n a o >> 3*m %fila de 20 treses lenguajes avanzados de computaci´n o >> m*n %multiplicaci´n "fila por columna" o t´cnica e Introducci´n al o Las operaciones b´sicas elementales son + - .* ./ .∧ a lenguaje Octave >> m.*m %multiplicaci´n "elemento a elemento" o Matrices y arrays. Estructuras de datos Las funciones intr´ ınsecas son elementales. Vectores Funciones espec´ıficas para vectores: Vectores II Vectores III • ’, trasposici´n, o Vectores IV Matrices • length, numero de componentes, Matrices II Matrices III • norm, norma, Otros datos • dot, producto escalar, Estructuras y celdas • cross, producto cruzado. C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos 21 / 66 Aplicaciones al
  • 22. Vectores III ´ Indice del documento Extracci´n de componentes: o Introducci´n a o >> v(2) %devuelve la 2a componente lenguajes avanzados de computaci´n o >> v(2:4) %devuelve [v(2) v(3) v(4)] t´cnica e >> v([1 5 3]) %devuelve [v(1) v(5) v(3)] Introducci´n al o lenguaje Octave >> ind=[1 5 3]; v(ind) %´dem ı Matrices y arrays. >> v(4:end-1) %componentes de la 4a a la pen´ltima u Estructuras de datos Vectores Vectores II Ejercicios 2 Vectores III Vectores IV 1. Crea dos vectores fila, u y v, de la misma dimensi´n. o Matrices Matrices II 2. Muestra su n´mero de componentes. u Matrices III 3. S´malos. u Otros datos Estructuras y celdas 4. Multiplica u por el traspuesto de v. C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos 22 / 66 Aplicaciones al
  • 23. Vectores IV ´ Indice del documento 5. Multiplica el traspuesto de u por v. Introducci´n a o 6. Calcula la norma de u. lenguajes avanzados de computaci´n o 7. Calcula el seno de cada componente de u. t´cnica e 8. Divide cada componente de u por la correspondiente de v. Introducci´n al o lenguaje Octave 9. Eleva al cubo cada componente de u. Matrices y arrays. Estructuras de datos 10. Suma los elementos de ´ ındice par de u con los elementos Vectores de ´ ındice impar de v. ¿Es siempre posible? Vectores II Vectores III 11. Toma los elementos 1, 5 y 4 de u y s´male los tres ultimos u ´ Vectores IV valores de v. Guarda el resultado en las posiciones dadas Matrices Matrices II para u. Matrices III Otros datos Estructuras y celdas C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos 23 / 66 Aplicaciones al
  • 24. Matrices ´ Indice del documento Matrices dadas manualmente, se introducen por filas: Introducci´n a o >> M=[1 2 5; 2 -1 6; 3 0 -1] %en filas, usamos " " ´ "," o lenguajes avanzados de computaci´n o Matrices con una ley de formaci´n: o t´cnica e >> A=ones(2,3) %matriz 2 x 3 de unos Introducci´n al o lenguaje Octave >> B=zeros(4) %matriz 4 x 4 de ceros Matrices y arrays. >> C=eye(4,5) %matriz identidad 4 x 5 Estructuras de datos Vectores >> C=rand(2) %matriz aleatoria 2 x 2, 0<=C<=1 Vectores II Vectores III Como en vectores, se distingue entre operaciones matriciales Vectores IV (* / ∧ ) y elementales (.* ./ .∧ ). Matrices Matrices II Las funciones intr´ ınsecas tambi´n son elementales. e Matrices III Algunas funciones espec´ ıficas para matrices: ’, size, det, Otros datos Estructuras y celdas rank, inv, eig, . . . C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos 24 / 66 Aplicaciones al
  • 25. Matrices II ´ Indice del documento Resoluci´n del sistema lineal Ax = b: o Introducci´n a o >> x=Ab lenguajes avanzados de computaci´n o Si es SCD, devuelve la unica soluci´n del sistema. ´ o t´cnica e En otro caso, devuelve la soluci´n por m´ o ınimos cuadrados. Introducci´n al o lenguaje Octave (Ver tambi´n chol, lu, . . . ) e Matrices y arrays. Estructuras de datos Extracci´n de componentes: o Vectores >> M(2,3) %devuelve la componente (2,3) Vectores II Vectores III >> M(:,3) %devuelve la 3a columna Vectores IV >> M(2,:) %devuelve la 2a fila Matrices Matrices II >> M([1 5 3],1:2) %matriz orlada 3 x 2 Matrices III >> triu(M), tril(M), diag(M) %triangular sup., inf. y diagonal Otros datos Estructuras y celdas >> I=diag(diag(M)) %matriz diagonal, con diag(I)=diag(M) C´lculo simb´lico a o Yuxtaposici´n de matrices: o Visualizaci´n gr´fica o a >> A=[1 2; 5 -2]; B=[-10 30; A] %a~adimos filas n Ficheros en Octave >> C=[eye(2) zeros(2,2); zeros(2,2) A] %diagonal por bloques Desarrollo de algoritmos Importaci´n de o datos 25 / 66 Aplicaciones al
  • 26. Matrices III ´ Indice del documento Ejercicios 3 Introducci´n a o lenguajes avanzados 1. Crea dos matrices cuadradas, A y B, del mismo tama˜o.n de computaci´n t´cnica e o 2. Muestra su n´mero de filas y columnas. u Introducci´n al o 3. S´malas, multipl´ u ıcalas matricial y elementalmente. lenguaje Octave 4. Calcula la traspuesta, el rango y el determinante de A. Matrices y arrays. Estructuras de datos 5. Calcula los autovalores A. Vectores Vectores II 6. Resuelve el sistema Ax=[1;1;...;1]. Vectores III 7. Extrae los elementos intersecci´n de las dos primeras filas y o Vectores IV Matrices columnas de A. ´Idem de las dos ultimas filas y columnas de ´ Matrices II Matrices III B. Otros datos 8. Crea una matriz diagonal por bloques, que tenga en la Estructuras y celdas diagonal las dos matrices anteriores. C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos 26 / 66 Aplicaciones al
  • 27. Otros datos ´ Indice del documento Complejos: 1+3*i ´ 1+3i, funciones como real, imag, o Introducci´n a o conj, isreal, angle, abs, . . . lenguajes avanzados de computaci´n o Cadenas: a= ’$de 5&’, b =’don’’t’ t´cnica e Introducci´n al o • Concatenaci´n: c = [’sdf’ ’asd’] o lenguaje Octave • Conversi´n de numeros a cadenas: num2str(2) o Matrices y arrays. Estructuras de datos • Impresi´n del valor de una variable: disp(variable) o Vectores Vectores II >> a=25; disp([’El resultado es’ num2str(a) ’ grados’]) Vectores III Vectores IV L´gicos: entero no nulo (1) es verdadero, 0 es falso o Matrices Matrices II • Operadores relacionales: < > <= >= == ~= Matrices III Otros datos • Operadores logicos: & | ~ xor any all Estructuras y celdas C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos 27 / 66 Aplicaciones al
  • 28. Estructuras y celdas ´ Indice del documento Estructuras: agrupaci´n de datos con nombre o Introducci´n a o >> circulo.centro=[0 1] lenguajes avanzados de computaci´n o >> circulo.radio=4 t´cnica e Celdas: agrupaci´n de datos numerados o Introducci´n al o lenguaje Octave >> dato{1} = 23 Matrices y arrays. >> dato{2} = [2 8] Estructuras de datos Vectores >> dato{3} = [0 9; 5 7] Vectores II Vectores III Ciertos comandos devuelven celdas: Vectores IV Matrices >> symbols; x=sym(’x’); y=sym(’y’); Matrices II >> S=symlsolve({x+y-3,x-y+5},{x,y}) Matrices III Otros datos S tiene dos elementos: S{1} y S{2}. Estructuras y celdas C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos 28 / 66 Aplicaciones al
  • 29. ´ Indice del documento Introducci´n a o lenguajes avanzados de computaci´n o t´cnica e Introducci´n al o lenguaje Octave Matrices y arrays. Estructuras de datos C´lculo a simb´lico o C´lculo simb´lico a o C´lculo a simb´lico o C´lculo a simb´lico II o C´lculo a simb´lico III o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 29 / 66
  • 30. C´lculo simb´lico a o ´ Indice del documento Precisa del paquete symbolic de Octave-Forge. Introducci´n a o El c´lculo simb´lico se carga con symbols a o lenguajes avanzados de computaci´n o Las variables simb´licas deben declararse: o t´cnica e >> x = sym(’x’) Introducci´n al o lenguaje Octave Toda expresi´n que las involucre ser´ simb´lica: o a o Matrices y arrays. >> f = x^2 %f es una expresi´n simb´lica o o Estructuras de datos C´lculo a simb´lico o La asignaci´n las convierte en num´ricas: o e C´lculo a simb´lico o >> x = 5 %x ha dejado de ser simb´lica o C´lculo a simb´lico II o C´lculo a simb´lico III o En simb´lico, las funciones intr´ o ınsecas cambian de nombre: Visualizaci´n gr´fica o a >> f = Sin(Pi*x); g = Cos(x); h = Exp(x); i = Sqrt(x) Ficheros en Octave (ver http://octave.sourceforge.net/symbolic/overview.html) Desarrollo de algoritmos collect, recolecta los t´rminos como polinomio: e Importaci´n de o >> f = 2*x+x+3; collect(f,x) datos Aplicaciones al splot, pinta una funci´n simb´lica: o o c´lculo num´rico a e >> i = Exp(x); splot(i,x,[-1 1]) 30 / 66
  • 31. C´lculo simb´lico II a o ´ Indice del documento subs, eval´a una expresi´n: u o Introducci´n a o >> g = Cos(x); p = subs(g,x,1.3) lenguajes avanzados de computaci´n o to_double, convierte un valor simb´lico a num´rico: o e t´cnica e >> to_double(p) %p es el resultado anterior Introducci´n al o lenguaje Octave differentiate, calcula la derivada: Matrices y arrays. >> f = x^2; differentiate(f,x,2) %derivada segunda Estructuras de datos C´lculo a simb´lico o symlsolve, resuelve ecuaciones lineales: C´lculo a simb´lico o >> y=sym(’y’); symlsolve({x+y-2,x-y-1},{x,y}) C´lculo a simb´lico II o C´lculo a simb´lico III o symfsolve, resuelve ecuaciones no lineales: Visualizaci´n gr´fica o a >> f = x^2+3*x-1; g= x*y-y^2+3; symfsolve(f,g,[1,5]) Ficheros en Octave No esta implementado el c´lculo simb´lico de l´ a o ımites, Desarrollo de algoritmos integraci´n, ecuaciones diferenciales, gr´ficas de funciones de o a Importaci´n de o dos variables. . . (oct 2010) datos Aplicaciones al c´lculo num´rico a e 31 / 66
  • 32. C´lculo simb´lico III a o ´ Indice del documento Ejercicios 4 Introducci´n a o lenguajes avanzados 1. Crea una expresi´n simb´lica de una variable. o o de computaci´n t´cnica e o 3. Muestra su gr´fica en diferentes dominios. a Introducci´n al o 5. Eval´ala en distintos puntos. u lenguaje Octave 4. Calcula su derivada. Matrices y arrays. Estructuras de datos 6. Resuelve un sistema lineal, y otro no lineal, de 2 ecuaciones C´lculo a simb´lico o y dos inc´gnitas. o C´lculo a simb´lico o C´lculo a simb´lico II o C´lculo a simb´lico III o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 32 / 66
  • 33. ´ Indice del documento Introducci´n a o lenguajes avanzados de computaci´n o t´cnica e Introducci´n al o lenguaje Octave Matrices y arrays. Estructuras de datos C´lculo simb´lico a o Visualizaci´n gr´fica o a Visualizaci´n gr´fica o a Gr´ficos num´ricos a e Gr´ficos num´ricos II a e Gr´ficos num´ricos a e III Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 33 / 66
  • 34. Gr´ficos num´ricos a e ´ Indice del documento plot, gr´ficas de funciones de una variable: a Introducci´n a o >> x = 0:0.5:5; plot(x, sin(x)) %cambiar 0.5 a 0.1 lenguajes avanzados de computaci´n o Varios gr´ficos en la misma ventana: a t´cnica e >> hold on; plot(x, cos(x)) Introducci´n al o lenguaje Octave >> hold off; plot(x, sin(2*x), x, cos(3*x)) Matrices y arrays. Estructuras de datos Opciones de plot, colores, l´ ıneas y marcas: C´lculo simb´lico a o >> plot(x, sin(x), ’r*’, x, cos(x), ’-.g’) Visualizaci´n gr´fica o a Informaci´n adicional: o Gr´ficos num´ricos a e >> title(’Dos curvas’) %titulo Gr´ficos num´ricos II a e Gr´ficos num´ricos a e >> xlabel(’Abscisas’); ylabel(’Ordenadas’) %texto en ejes III >> legend(’Curva 1’,’Curva 2’) %leyenda Ficheros en Octave Desarrollo de >> axis([-1 11 -1.5 1.5]) %escala algoritmos figure, crea una nueva ventana de gr´ficos. a Importaci´n de o datos line, crea lineas personalizadas. Aplicaciones al c´lculo num´rico a e >> line(x,cos(x), ’linewidth’, 4) 34 / 66
  • 35. Gr´ficos num´ricos II a e ´ Indice del documento Curvas en el plano y el espacio: Introducci´n a o >> t=0:0.1:2*pi; plot(exp(-t).*cos(2*t), exp(-t).*sin(2*t)) lenguajes avanzados de computaci´n o >> plot3(cos(t),t.*sin(t),sqrt(t)) t´cnica e (Obs´rvese el uso de .*) e Introducci´n al o lenguaje Octave Escala logar´ ıtmica, semilogx, semilogy, loglog: Matrices y arrays. >> x = 0:0.1:5; semilogy(x, exp(-x)) Estructuras de datos C´lculo simb´lico a o Coordenadas polares, polar: Visualizaci´n gr´fica o a >> t = 0:.01:2*pi; polar(t,sin(2*t).*cos(2*t)) Gr´ficos num´ricos a e An´lisis estad´ a ıstico: Gr´ficos num´ricos II a e Gr´ficos num´ricos a e >> errorbar(x,sin(x),rand(size(x))) III >> hist([2,3,3,4,4.5]) Ficheros en Octave Desarrollo de Gr´ficas de funciones de dos variables: a algoritmos >> [x,y]=meshgrid(-2:.2:2, -2:.2:2); Importaci´n de o datos >> surf(x, y, x.*exp(-x.^2-y.^2)) Aplicaciones al c´lculo num´rico a e >> contour(x, y, x.*exp(-x.^2-y.^2)) 35 / 66
  • 36. Gr´ficos num´ricos III a e ´ Indice del documento Subgr´ficos: a Introducci´n a o >> x = -2:0.1:2; lenguajes avanzados de computaci´n o >> subplot(1,2,1); plot(x,sin(x),’r’); title(’Primer gr´fico’) a t´cnica e >> subplot(1,2,2); plot(x,cos(x),’r’); title(’Segundo gr´fico’) a Introducci´n al o lenguaje Octave print, impresi´n de la ventana de gr´ficos activa: o a Matrices y arrays. >> print -dpng ’grafica.png’ Estructuras de datos C´lculo simb´lico a o Ejercicios 5 Visualizaci´n gr´fica o a Gr´ficos num´ricos a e 1. Crea una ventana con dos gr´ficos. A˜ade informaci´n a n o Gr´ficos num´ricos II a e Gr´ficos num´ricos a e adicional. III Ficheros en Octave 2. Crea un gr´fico de contorno para una funci´n de dos a o Desarrollo de variables en una ventana aparte. algoritmos 3. Salva el gr´fico en un fichero. a Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 36 / 66
  • 37. ´ Indice del documento Introducci´n a o lenguajes avanzados de computaci´n o t´cnica e Introducci´n al o lenguaje Octave Matrices y arrays. Estructuras de datos C´lculo simb´lico a o Ficheros en Octave Visualizaci´n gr´fica o a Ficheros en Octave Scripts Fichero funci´n o Fichero funci´n II o Fichero funci´n III o Funci´n autom´tica o a Funci´n autom´tica o a II Desarrollo de algoritmos Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 37 / 66
  • 38. Scripts ´ Indice del documento Es un fichero con una secuencia de comandos. Introducci´n a o Lleva extensi´n .m o lenguajes avanzados de computaci´n o Para que Octave lo encuentre, su carpeta debe t´cnica e Introducci´n al o a) ser la carpeta por defecto o lenguaje Octave b) a˜adirse a las rutas de b´squeda con addpath. n u Matrices y arrays. Estructuras de datos Para ejecutarlo, escribir el nombre sin extensi´n en la o C´lculo simb´lico a o Terminal. Visualizaci´n gr´fica o a Ficheros en Octave Ejemplo: script grado2.m, para resolver 3x2 + 5x + 2 = 0. Scripts a=3; b=5; c=2; Fichero funci´n o Fichero funci´n II o D=b^2-4*a*c; Fichero funci´n III o x(1)=(-b+sqrt(D))/(2*a); Funci´n autom´tica o a Funci´n autom´tica o a x(2)=(-b-sqrt(D))/(2*a); II Desarrollo de algoritmos Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 38 / 66
  • 39. Fichero funci´n o ´ Indice del documento ¡Los script usan la Variables’ List para sus variables! Introducci´n a o Los ficheros de funci´n son scripts con su propio espacio de o lenguajes avanzados de computaci´n o variables. t´cnica e La primera l´ınea de un fichero de funci´n es del tipo: o Introducci´n al o lenguaje Octave Matrices y arrays. function [y1, y2,...] = nombre(x1, x2,...) Estructuras de datos El nombre debe coincidir con el nombre del fichero. C´lculo simb´lico a o Las variables de entrada x1, x2,... se pasan por copia. Visualizaci´n gr´fica o a La Variables’ List solo recibe las variables de salida y1, y2,... Ficheros en Octave Scripts El valor de una variable de entrada solo se modifica si Fichero funci´n o tambi´n es de salida. e Fichero funci´n II o Fichero funci´n III o Funci´n autom´tica o a Funci´n autom´tica o a II Desarrollo de algoritmos Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 39 / 66
  • 40. Fichero funci´n II o ´ Indice del documento Ejemplo: fichero funci´n fgrado2.m. o Introducci´n a o function x=fgrado2(a,b,c) lenguajes avanzados de computaci´n o D=b^2-4*a*c; t´cnica e x(1)=(-b+sqrt(D))/(2*a); Introducci´n al o lenguaje Octave x(2)=(-b-sqrt(D))/(2*a); Matrices y arrays. Estructuras de datos C´lculo simb´lico a o Para ejecutarlo, hay que indicar los valores de entrada: Visualizaci´n gr´fica o a >> fgrado2(3,5,2) Ficheros en Octave Podemos usarlo f´cilmente para resolver otros polinomios. a Scripts Fichero funci´n o Fichero funci´n II o Fichero funci´n III o Funci´n autom´tica o a Funci´n autom´tica o a II Desarrollo de algoritmos Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 40 / 66
  • 41. Fichero funci´n III o ´ Indice del documento Para usar un fichero funci´n como argumento, hay que poner o Introducci´n a o “@” antes del nombre. Consideremos la funci´n: o lenguajes avanzados de computaci´n o function y=int_def(f,a,b) t´cnica e %integral definida de f entre a y b (trapecios) Introducci´n al o lenguaje Octave t=linspace(a,b,100); Matrices y arrays. Estructuras de datos y = trapz(t, f(t)); C´lculo simb´lico a o Visualizaci´n gr´fica o a La funci´n sin de Octave es un fichero funci´n: o o Ficheros en Octave >> int_def(@sin, 0, 1) Scripts Fichero funci´n o Fichero funci´n II o Fichero funci´n III o Funci´n autom´tica o a Funci´n autom´tica o a II Desarrollo de algoritmos Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 41 / 66
  • 42. Funci´n autom´tica o a ´ Indice del documento Se define en una l´ınea: >> f = @(x,y) x.^2 + y.^2 Introducci´n a o Escritas en la Terminal, no se conservan al cerrar la sesi´n. o lenguajes avanzados de computaci´n o Se podr´ usar para las funciones anteriores. . . ıan t´cnica e >> g2=@(a,b,c) [(-b+sqrt(b^2-4*a*c))/(2*a) ... Introducci´n al o lenguaje Octave (-b-sqrt(b^2-4*a*c))/(2*a)] Matrices y arrays. >> id = @(f,a,b) trapz(linspace(a,b,100),... Estructuras de datos C´lculo simb´lico a o f(linspace(a,b,100))) Visualizaci´n gr´fica o a . . . pero se usan, generalmente, para funciones sencillas. Ficheros en Octave Ojo, debemos evitar tener en la carpeta de trabajo fichero Scripts Fichero funci´n o funci´n con el mismo nombre que funciones autom´ticas. o a Fichero funci´n II o Fichero funci´n III o Funci´n autom´tica o a Funci´n autom´tica o a II Desarrollo de algoritmos Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 42 / 66
  • 43. Funci´n autom´tica II o a ´ Indice del documento Para usar una funci´n autom´tica como argumento, no hay o a Introducci´n a o que poner “@”: lenguajes avanzados de computaci´n o >> f = @(x) sin(x); int_def(f, 0, 1) t´cnica e Introducci´n al o lenguaje Octave Ejercicios 6 Matrices y arrays. Estructuras de datos 1. Crea un fichero funci´n para resolver ecuaciones del tipo o C´lculo simb´lico a o ae−x + b = 0 Visualizaci´n gr´fica o a 2. Crea una funci´n autom´tica para f (x) = x3 atan( 1+x ). o a x2 Ficheros en Octave 3. Dibuja la gr´fica de f entre -1 y 1 a Scripts Fichero funci´n o 4. Calcula con int def.m su integral definida en [−1, 1]. Fichero funci´n II o Fichero funci´n III o Funci´n autom´tica o a Funci´n autom´tica o a II Desarrollo de algoritmos Importaci´n de o datos Aplicaciones al c´lculo num´rico a e 43 / 66
  • 44. ´ Indice del documento Introducci´n a o lenguajes avanzados de computaci´n o t´cnica e Introducci´n al o lenguaje Octave Matrices y arrays. Estructuras de datos C´lculo simb´lico a o Desarrollo de algoritmos Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Algoritmos Bucle for Bucle while Estructura if Estructura if II Estructura if III Otros comandos Otros comandos II Otros comandos III Depuraci´n o Importaci´n de o datos 44 / 66
  • 45. Algoritmos ´ Indice del documento Un programa no suele tener una unica l´ ´ ınea de flujo. Introducci´n a o Las estructuras de control de flujo pueden ser lenguajes avanzados de computaci´n t´cnica e o • repetitivas, permiten la repetici´n de comandos: for y o Introducci´n al o while; lenguaje Octave • alternativas, permiten decidir seg´n una condici´n: if y u o Matrices y arrays. Estructuras de datos switch (que no veremos); C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Algoritmos Bucle for Bucle while Estructura if Estructura if II Estructura if III Otros comandos Otros comandos II Otros comandos III Depuraci´n o Importaci´n de o datos 45 / 66
  • 46. Bucle for ´ Indice del for i=v documento Introducci´n a o comandos (que dependen de i) lenguajes avanzados de computaci´n o end t´cnica e Introducci´n al o v es un vector; en la iteraci´n j, i toma el valor de v(j). o lenguaje Octave Los bucles pueden anidarse. Se recomienda “indentar” los Matrices y arrays. Estructuras de datos comandos para facilitar la lectura. C´lculo simb´lico a o Cuando sea posible, se recomienda usar operaciones Visualizaci´n gr´fica o a vectoriales en vez de bucles. Ficheros en Octave Ejemplo: c´lculo del n! a Desarrollo de algoritmos fac = 1; Algoritmos for i=2:n Bucle for Bucle while fac = fac*i; Estructura if Estructura if II end Estructura if III Otros comandos Otros comandos II Otros comandos III Depuraci´n o Importaci´n de o datos 46 / 66
  • 47. Bucle while ´ Indice del documento while condici´n o Introducci´n a o comandos lenguajes avanzados de computaci´n o end t´cnica e Introducci´n al o condici´n es una relaci´n l´gica. o o o lenguaje Octave while se suele usar cuando no es sencillo calcular el n´mero u Matrices y arrays. Estructuras de datos de iteraciones. 1 C´lculo simb´lico a o Ejemplo: c´lculo de ∞ n4 a n=1 Visualizaci´n gr´fica o a n = 1; sum = 0; Ficheros en Octave while 1/n^4 > eps Desarrollo de algoritmos sum = sum + 1/n^4; Algoritmos n = n+1; Bucle for Bucle while end Estructura if Estructura if II Estructura if III Otros comandos Otros comandos II Otros comandos III Depuraci´n o Importaci´n de o datos 47 / 66
  • 48. Estructura if ´ Indice del documento if condici´n 1 o Introducci´n a o comandos 1 lenguajes avanzados de computaci´n o [ elseif condici´n 2 o t´cnica e comandos 2 ] Introducci´n al o lenguaje Octave [ elseif . . . ] Matrices y arrays. Estructuras de datos [ else C´lculo simb´lico a o comandos n ] Visualizaci´n gr´fica o a end Ficheros en Octave Si condici´n 1 es cierta, se ejecutan comandos 1. o Desarrollo de algoritmos Si no y condici´n 2 es cierta, se ejecutan comandos 2. o Algoritmos Bucle for Si ninguna condici´n es cierta, se ejecuta comandos n. o Bucle while Estructura if Estructura if II Estructura if III Otros comandos Otros comandos II Otros comandos III Depuraci´n o Importaci´n de o datos 48 / 66
  • 49. Estructura if II ´ Indice del documento Ejemplo: funci´n definida a trozos  o Introducci´n a o  x − 1,  x ≤ −2, lenguajes avanzados 1 − x2 , −2 < x < 0,  de computaci´n o t´cnica e f (x) =  − 1 , x ≥ 0.  Introducci´n al o  lenguaje Octave x+1 Matrices y arrays. Estructuras de datos function y=f(x) C´lculo simb´lico a o if x<=-2 Visualizaci´n gr´fica o a y=x-1; Ficheros en Octave elseif x<0 Desarrollo de algoritmos y=1-x^2; Algoritmos Bucle for else Bucle while y=-1/(x+1); Estructura if Estructura if II end Estructura if III Otros comandos Otros comandos II Otros comandos III Depuraci´n o Importaci´n de o datos 49 / 66
  • 50. Estructura if III ´ Indice del documento Para conseguir que f admita argumentos vectoriales, es Introducci´n a o necesario usar un bucle (no basta con usar operaciones lenguajes avanzados de computaci´n o elementales, puesto que if no es elemental): t´cnica e function y=f(x) Introducci´n al o lenguaje Octave for i=1:length(x) Matrices y arrays. Estructuras de datos if x(i)<=-2 C´lculo simb´lico a o y(i)=x(i)-1; Visualizaci´n gr´fica o a elseif x(i)<0 Ficheros en Octave y(i)=1-x(i)^2; Desarrollo de algoritmos else Algoritmos y(i)=-1/(x(i)+1); Bucle for Bucle while end Estructura if end Estructura if II Estructura if III Otros comandos Ahora la gr´fica de f se obtiene con: a Otros comandos II Otros comandos III >> x=-3:0.1:3; plot(x,f(x)) Depuraci´n o Importaci´n de o datos 50 / 66
  • 51. Otros comandos ´ Indice del documento break, interrumpe la ejecuci´n del bucle m´s interno. o a Introducci´n a o %busqueda de la posicion del ´ltimo elemento negativo u lenguajes avanzados de computaci´n o for i=length(x):-1:1 t´cnica e if x(i)<0 Introducci´n al o lenguaje Octave break Matrices y arrays. end Estructuras de datos C´lculo simb´lico a o end Visualizaci´n gr´fica o a disp([’La posici´n buscada es’ num2str(i)]) o Ficheros en Octave return, interrumpe la ejecuci´n de una funci´n y devuelve el o o Desarrollo de algoritmos control a quien la haya llamado (otra funci´n o el propio o Algoritmos Octave). Bucle for Bucle while if x<=0 Estructura if disp(’log(x) no es real!’) Estructura if II Estructura if III return %la funci´n se interrumpe, el programa contin´a o u Otros comandos end Otros comandos II Otros comandos III Depuraci´n o Importaci´n de o datos 51 / 66
  • 52. Otros comandos II ´ Indice del documento error, interrumpe completamente la ejecuci´n del programa. o Introducci´n a o if x<=0 lenguajes avanzados de computaci´n o error(’Error fatal: log(x) no es real!’) t´cnica e end Introducci´n al o lenguaje Octave input, permite introducir datos por teclado. Matrices y arrays. >> x=input(’Introduzca un n´mero: ’) u Estructuras de datos C´lculo simb´lico a o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Algoritmos Bucle for Bucle while Estructura if Estructura if II Estructura if III Otros comandos Otros comandos II Otros comandos III Depuraci´n o Importaci´n de o datos 52 / 66
  • 53. Otros comandos III ´ Indice del documento Ejercicios 7 Introducci´n a o lenguajes avanzados 1. Calcula la suma de las componentes de un vector; de computaci´n t´cnica e o comp´ralo con el resultado de sum. a x como la suma infinita ∞ xn Introducci´n al o 2. Calcula e n=0 n! . lenguaje Octave 3. Construye una funci´n que eval´e f , definida por o u Matrices y arrays. Estructuras de datos 2 sen2 (2x), x ≤ 0, C´lculo simb´lico a o f (x) = 1 − e−x , x > 0. Visualizaci´n gr´fica o a Ficheros en Octave Dibuja su gr´fica. a Desarrollo de 4. Escribe una funci´n que solicite al usuario en un bucle, o algoritmos Algoritmos n´meros por teclado. Si el n´mero es positivo, debe escribir u u Bucle for su logaritmo; si es negativo, debe salir del bucle e informar Bucle while Estructura if de que no puede calcular dicho logaritmo. Estructura if II Estructura if III Otros comandos Otros comandos II Otros comandos III Depuraci´n o Importaci´n de o datos 53 / 66
  • 54. Depuraci´n o ´ Indice del documento Para iniciar la depuraci´n en avisos y errores: o Introducci´n a o debug_on_warning(1); debug_on_error(1); lenguajes avanzados de computaci´n o Para gestionar puntos de interrupci´n: o t´cnica e dbstop(’nombre_funcion’,15) %parada en la l´nea 15 ı Introducci´n al o lenguaje Octave dbstatus %muestra paradas establecidas Matrices y arrays. dbclear(’nombre_funcion’,15) %eliminaci´n de la parada o Estructuras de datos C´lculo simb´lico a o Para mostrar el fichero: dbtype Visualizaci´n gr´fica o a Para saber d´nde estamos parados: dbwhere o Ficheros en Octave Ir a la siguiente l´ ınea: dbnext Desarrollo de algoritmos Profundizar en las llamadas a funciones: dbstep Algoritmos Continuar la ejecuci´n: dbcont o Bucle for Bucle while Cuando la ejecuci´n est´ parada, se pueden ejecutar otros o a Estructura if Estructura if II comandos (ver valor de variables,. . . ) Estructura if III Otros comandos Otros comandos II Otros comandos III Depuraci´n o Importaci´n de o datos 54 / 66
  • 55. ´ Indice del documento Introducci´n a o lenguajes avanzados de computaci´n o t´cnica e Introducci´n al o lenguaje Octave Matrices y arrays. Estructuras de datos C´lculo simb´lico a o Importaci´n de datos o Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos Datos Datos II Datos III Datos IV Aplicaciones al c´lculo num´rico a e 55 / 66
  • 56. Datos ´ Indice del documento save, salvado de variables (fichero binario con compresi´n): o Introducci´n a o >> save fichero [variables] lenguajes avanzados de computaci´n o load, carga de variables: t´cnica e >> load fichero [variables] Introducci´n al o lenguaje Octave fopen, apertura de ficheros: Matrices y arrays. Estructuras de datos fid=fopen(’fichero’,’permiso’) C´lculo simb´lico a o Los permisos pueden ser: Visualizaci´n gr´fica o a • r, lectura de ficheros existentes. Ficheros en Octave • w, escritura de ficheros; si existe, se borra. Desarrollo de algoritmos • a, escritura de ficheros; ; si existe, se a˜ade. n Importaci´n de datos o • A˜adiendo + se permite la operaci´n contraria. n o Datos Datos II fclose, cierre de ficheros: Datos III fclose(fid) Datos IV Aplicaciones al c´lculo num´rico a e Lectura / escritura con formato binario: fread y fclose. 56 / 66
  • 57. Datos II ´ Indice del documento Lectura con formato ascii: Introducci´n a o A=fscanf(fid, ’formato’[, sizeA]) lenguajes avanzados de computaci´n t´cnica e o Lee datos del fichero con identificador fid y los guarda en A. Introducci´n al o sizeA puede ser un natural o un array [m,n]; si est´ presente, a lenguaje Octave lee sizeA elementos. Matrices y arrays. Estructuras de datos formato es una cadena que describe los elementos a leer: C´lculo simb´lico a o Visualizaci´n gr´fica o a • %d: entero; Ficheros en Octave • %f: real Desarrollo de • %s: cadena algoritmos Importaci´n de o textscan, util si texto y n´meros est´n mezclados. ´ u a datos Datos Escritura con formato ascii: Datos II Datos III fprintf(fid, ’formato’, A,. . . ) Datos IV Aplicaciones al Escribe las variables A,. . . en el fichero con identificador fid. c´lculo num´rico a e formato puede contener descriptores como n (nueva l´ ınea). 57 / 66
  • 58. Datos III ´ Indice del documento Ejemplo de escritura: Introducci´n a o fid = fopen(’datos.txt’,’w’); lenguajes avanzados de computaci´n o fprintf(fid,’%f %f ’, [1:2; 3:4]); %por columnas t´cnica e fprintf(fid,’%s %d %f %d %d’,’asd’, 1, pi, [2;3]); Introducci´n al o lenguaje Octave fclose(fid); Matrices y arrays. Estructuras de datos C´lculo simb´lico a o El contenido de datos.txt es: Visualizaci´n gr´fica o a 1.000000 3.000000 2.000000 4.000000 asd 1 3.141593 2 3 Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos Datos Datos II Datos III Datos IV Aplicaciones al c´lculo num´rico a e 58 / 66
  • 59. Datos IV ´ Indice del documento Ejemplo de lectura: Introducci´n a o fid = fopen(’datos.txt’,’r’); lenguajes avanzados de computaci´n o A=fscanf(fid,’%f’, [2 2]); %lee una matriz 2 x 2 t´cnica e S=fscanf(fid,’%s’,1); %lee una cadena Introducci´n al o lenguaje Octave V=fscanf(fid,’%f’); %lee reales hasta EOF Matrices y arrays. Estructuras de datos fclose(fid); C´lculo simb´lico a o Visualizaci´n gr´fica o a El resultado es: Ficheros en Octave A = 1 2 Desarrollo de algoritmos 3 4 Importaci´n de o S = asd datos Datos V = 1.0000 Datos II 3.1416 Datos III Datos IV 2.0000 Aplicaciones al c´lculo num´rico a e 3.0000 59 / 66
  • 60. ´ Indice del documento Introducci´n a o lenguajes avanzados de computaci´n o t´cnica e Introducci´n al o lenguaje Octave Matrices y arrays. Estructuras de datos C´lculo simb´lico a o Aplicaciones al c´lculo num´rico a e Visualizaci´n gr´fica o a Ficheros en Octave Desarrollo de algoritmos Importaci´n de o datos Aplicaciones al c´lculo num´rico a e Interpolaci´n y o ajuste Resoluci´n de o ecuaciones Resoluci´n simb´lica o o de ecuaciones Optimizaci´no Integraci´n o Ecuaciones 60 / 66 diferenciales
  • 61. Interpolaci´n y ajuste o ´ Indice del documento polyfit, interpolaci´n polinomial: o Introducci´n a o >> x=[-5:5]; f=@(x)1./(1+x.^2); %(x,f(x)), 11 nodos de interp. lenguajes avanzados de computaci´n o >> c=polyfit(x,f(x),10) %c, coeficientes del polinomio t´cnica e >> xx=-5:0.1:5; %xx, vector de abscisas para la gr´fica a Introducci´n al o lenguaje Octave >> plot(x,f(x),’*’, xx,f(xx), xx, polyval(c,xx)) %gr´fico a Matrices y arrays. >> legend(’nodos’, ’funci´n’, ’polinomio de interpolaci´n’) o o Estructuras de datos C´lculo simb´lico a o interp1, interpolaci´n con rectas a trozos: o Visualizaci´n gr´fica o a >> plot(xx,f(xx), xx,interp1(x,f(x),xx,’linear’)) Ficheros en Octave Desarrollo de interp1, interpolaci´n con splines: o algoritmos >> plot(xx,f(xx), xx,interp1(x,f(x),xx,’spline’)) Importaci´n de o datos Aplicaciones al polyfit, ajuste polinomial: c´lculo num´rico a e >> c=polyfit(x,f(x),2) %grado < num. nodos +1 Interpolaci´n y o ajuste >> plot(x,f(x),’*’, xx, polyval(c,xx)) %gr´fico a Resoluci´n de o ecuaciones Resoluci´n simb´lica o o de ecuaciones Optimizaci´no Integraci´n o Ecuaciones 61 / 66 diferenciales
  • 62. Resoluci´n de ecuaciones o ´ Indice del documento Resoluci´n del sistema lineal Ax = b: o Introducci´n a o >> x=Ab lenguajes avanzados de computaci´n o Si es SCD, devuelve la unica soluci´n del sistema. ´ o t´cnica e En otro caso, devuelve la soluci´n por m´ o ınimos cuadrados. Introducci´n al o lenguaje Octave fzero, resoluci´n de ecuaciones no lineales: o Matrices y arrays. >> f=@cos(x)-x; fzero(f,0) Estructuras de datos C´lculo simb´lico a o fsolve, resoluci´n de sistemas no lineales: o Visualizaci´n gr´fica o a >> fsolve(@f,[0 0]) Ficheros en Octave Se ha creado, previamente, el fichero funci´n: o Desarrollo de algoritmos function y = f(x) Importaci´n de o y(1)=x(1)^2+3*x(1)-1; datos Aplicaciones al y(2)=x(1)*x(2)-x(2)^2+3; c´lculo num´rico a e Interpolaci´n y o ajuste Resoluci´n de o ecuaciones Resoluci´n simb´lica o o de ecuaciones Optimizaci´no Integraci´n o Ecuaciones 62 / 66 diferenciales
  • 63. Resoluci´n simb´lica de ecuaciones o o ´ Indice del documento symlsolve, resoluci´n de ecuaciones lineales: o Introducci´n a o >> symbols; x=sym(’x’); y=sym(’y’); lenguajes avanzados de computaci´n o >> S=symlsolve({x+y-3,x-y+5},{x,y}) t´cnica e Introducci´n al o S tiene dos elementos: S{1} y S{2}. lenguaje Octave symfsolve, resoluci´n de ecuaciones no lineales usando o Matrices y arrays. Estructuras de datos fsolve(): C´lculo simb´lico a o >> symbols; x=sym(’x’); y=sym(’y’); Visualizaci´n gr´fica o a >> f=x^2+3*x-1; g=x*y-y^2+3; Ficheros en Octave >> a = symfsolve(f,g); %los valores iniciales se toman a 0 Desarrollo de algoritmos >> a = symfsolve(f,g,x,1,y,5); %valores iniciales, x=1 e y=5 Importaci´n de o >> a = symfsolve(f,g,{x==1,y==5}); %´dem ı datos Aplicaciones al >> a = symfsolve(f,g,[1 5]); %´dem ı c´lculo num´rico a e Interpolaci´n y o Si las variables no se especifican en las condiciones iniciales, ajuste Resoluci´n de o se toman alfab´ticamente. e ecuaciones Resoluci´n simb´lica o o de ecuaciones Optimizaci´no Integraci´n o Ecuaciones 63 / 66 diferenciales
  • 64. Optimizaci´n o ´ Indice del documento Precisa del paquete optim de Octave-Forge. Introducci´n a o fminsearch, b´squeda de un m´ u ınimo (Nelder-Mead lenguajes avanzados de computaci´n o Simplex): t´cnica e >> f=@(x)x^2*cos(x); Introducci´n al o lenguaje Octave >> fminsearch(f,2) %parte de x0 = 2 Matrices y arrays. Estructuras de datos Se aplica a funciones multidimensionales: C´lculo simb´lico a o >> f = @(x) x(1)^2+x(2)^2; fminsearch(f,[1 1]) Visualizaci´n gr´fica o a fminbnd, b´squeda de un m´ u ınimo con restricciones (Golden Ficheros en Octave Desarrollo de Search): algoritmos >> fminbnd(f,2,4) %en [2, 4] Importaci´n de o datos Aplicaciones al c´lculo num´rico a e Interpolaci´n y o ajuste Resoluci´n de o ecuaciones Resoluci´n simb´lica o o de ecuaciones Optimizaci´no Integraci´n o Ecuaciones 64 / 66 diferenciales
  • 65. Integraci´n o ´ Indice del documento quad, integraci´n definida: o Introducci´n a o >> f=@(x) x*sin(x); quad(f,0,3) lenguajes avanzados de computaci´n o quadl, quadgk y quadv, integraci´n num´rica adaptativa. o e t´cnica e trapz, integraci´n definida (regla de trapecios): o Introducci´n al o lenguaje Octave >> x=[0 1 2 3]; y = [0.5 0.85 0.67 0.9]; Matrices y arrays. >> trapz(x,y) Estructuras de datos C´lculo simb´lico a o dblquad, integraci´n doble: o Visualizaci´n gr´fica o a >> f=@(x,y) sin(pi.*x.*y).*sqrt(x.*y); Ficheros en Octave >> I=dblquad(f, 0,1, 0,1) Desarrollo de algoritmos Para integraci´n triple, triplequad. o Importaci´n de o datos Aplicaciones al c´lculo num´rico a e Interpolaci´n y o ajuste Resoluci´n de o ecuaciones Resoluci´n simb´lica o o de ecuaciones Optimizaci´no Integraci´n o Ecuaciones 65 / 66 diferenciales
  • 66. Ecuaciones diferenciales ´ Indice del documento Consideremos el problema de valor inicial: Introducci´n a o  dx = x2 log(t + 1) − x ,  lenguajes avanzados de computaci´n o t´cnica e dt t+1 Introducci´n al o x(0) = 1. lenguaje Octave Matrices y arrays. Estructuras de datos lsode, resoluci´n de una e.d.o.: o C´lculo simb´lico a o >> t = 0:0.1:3; Visualizaci´n gr´fica o a >> x = lsode(f,1,t) Ficheros en Octave >> plot(t,x) Desarrollo de algoritmos Se ha creado, previamente, el fichero funci´n: o Importaci´n de o function xp=f(x,t) datos Aplicaciones al xp=x^2*log(t+1)-x/(t+1); c´lculo num´rico a e Interpolaci´n y ajuste o Para sistemas de ecuaciones, hay que usar argumentos Resoluci´n de o ecuaciones vectoriales en la funci´n f. o Resoluci´n simb´lica o o de ecuaciones Optimizaci´no Integraci´n o Ecuaciones 66 / 66 diferenciales