Operatore diag

  • Creatore
    Topic
  • #66914
    Andrea
    Partecipante
      Up
      0
      Down
      ::


      Buongiorno a tutti,

      ho la necessità di definire un nuovo operatore in ambiente matematico che esprima l’operazione di creare una matrice quadrata che abbia sulla diagonale il vettore passato all’operatore. Per chi ha famigliarità con matlab:
      `
      A=diag(x)
      `

      questo operatore dovrebbe essere reso in tondo:
      `
      \DeclareMathOperator{\diag}{diag}
      `
      oppure in typewriter
      `
      \newcommand{\diag}{\text{\ttfamily diag}}
      `
      visto che non è un vero e proprio operatore (a quanto ne so) ma un comando mutuato da un linguaggio?

      Grazie in anticipo

    Visualizzazione 7 filoni di risposte
    • Autore
      Risposte
      • #66915
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Be’, casomai:
          `
          \newcommand{\diag}{\mathtt{diag}}
          `

          Per la scelta del font dipende da come lo usi; se descrivi Matlab e come si costruiscono le matrici diagonali con Matlab usa lo stesso carattere che usi per gli altri comandi di Matlab. In matematica preferirei il tondo, ma lo userei così:
          `
          A= \diag{a_1, a_2, a_3, \dots, a_n}
          `

        • #66916
          Up
          0
          Down
          ::

          Iovem” post=65855Buongiorno a tutti,

          ho la necessità di definire un nuovo operatore in ambiente matematico che esprima l’operazione di creare una matrice quadrata che abbia sulla diagonale il vettore passato all’operatore. Per chi ha famigliarità con matlab:
          `
          A=diag(x)
          `

          questo operatore dovrebbe essere reso in tondo:
          `
          \DeclareMathOperator{\diag}{diag}
          `
          oppure in typewriter
          `
          \newcommand{\diag}{\text{\ttfamily diag}}
          `
          visto che non è un vero e proprio operatore (a quanto ne so) ma un comando mutuato da un linguaggio?

          Grazie in anticipo

          Qual è la domanda?

          Ciao
          Enrico

        • #66917
          Andrea
          Partecipante
            Up
            0
            Down
            ::


            Grazie non sapevo dell’esistenza di
            `
            \mathtt
            `
            e mi ero dato ad una soluzione un po’ grezza.

            Per il contesto: è una descrizione di un modello numerico per un problema ingegneristico, quindi la descrizione di per se è teorica, ma la soluzione sarà poi implementata in matlab. Quindi consiglieresti comunque il tondo? Visto che sei un grande esperto di norme, dicono qualcosa a riguardo?

            Per quanto riguarda il tuo secondo consiglio
            `
            A= \diag{a_1, a_2, a_3, \dots, a_n}
            `
            mi sembra un po’ troppo “verboso”per i miei scopi… o sbaglio a valutarlo? 🙂

          • #66918
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Si tratta di due cose diverse; se \diag serve per essere usato per rappresentare l’operatore informatico che fa costruire a matlab una matrice diagonale metterei il tt. se \diag serve per descrivere in matematica una matrice diagonale userei il tondo, comunque lo stesso carattere usato per le matrici, spesso il corsivo nero, ma le norme non lo richiedono, si accontentano di un carattere come quello degli operatori o del corsivo; non ho le norme sotto mano, ma ho il documento pdf sp811.pdf emesso dal NIST, National Institute of Science and Technology (l’ex National Bureau of Standards degli USA) che userebbe il corsivo per le matrici e il corsivo nero per i vettori (mah… (come se le matrici non potessero essere considerate colonne di vettori, insiemi di vettori; chissà cosa dice Enrico a questo proposito 🙂 )

            • #66919
              Andrea
              Partecipante
                Up
                0
                Down
                ::


                Come sempre un pozzo di scienza….grazie mille per le delucidazioni.

              • #66920
                Liverpool
                Partecipante
                  Up
                  0
                  Down
                  ::

                  OldClaudio” post=65866ho il documento pdf sp811.pdf emesso dal NIST, National Institute of Science and Technology (l’ex National Bureau of Standards degli USA) che userebbe il corsivo per le matrici e il corsivo nero per i vettori

                  Le norme UNI CEI ISO 80000-2 (aprile 2010) suggeriscono il corsivo grassetto maiuscolo per le matrici (par. 15) e il corsivo grassetto minuscolo per i vettori (par. 17) ma, come dice Claudio, non vietano l’uso di altre combinazioni.

                  Piuttosto, Claudio, non ho capito perché consigli di usare il newcommand al posto del DeclareMathOperator :?. Mi sfugge qualcosa?

                  Ciao

                • #66921
                  OldClaudio
                  Partecipante
                    Up
                    0
                    Down
                    ::

                    Liverpool” post=66160
                    Le norme UNI CEI ISO 80000-2 (aprile 2010) suggeriscono il corsivo grassetto maiuscolo per le matrici (par. 15) e il corsivo grassetto minuscolo per i vettori (par. 17) ma, come dice Claudio, non vietano l’uso di altre combinazioni.

                    Sì infatti; solo che ora non ho piì accesso alle norme, quindi devo riferirmi a surrogati; il migliore che conosco è il documento sp811.pdf emesso da NIST, liberamente scaricabile dal sito del NIST. Non è la norma, ma è l’interpretazione della norma ad uso degli scienziati del NIST; non dico che sia più autorievole, ma certamante contiene molte più indicazioni.

                    Liverpool” post=66160
                    Piuttosto, Claudio, non ho capito perché consigli di usare il newcommand al posto del DeclareMathOperator :?. Mi sfugge qualcosa?

                    Non ti sfugge niente: Certo che DeclareMathOperator sarebbe stato il comando giusto, ma io avevo conservato \newcommand per correggere il testo sostitutivo. Del resto @Iovem voleva un simbolo alternativo per indicare l’operatore diag di matlab, quindi questo scritto in tt con \newcommand va benissimo per quello scopo perché non viene usato in matematica, ma viene usato nei brani di codice matlab.

                    Se avessi voluto indicargli l’operatore matematico, avrei certamente usato \DeclareMathOperator

                  • #66922
                    Liverpool
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      Grazie della risposta. Mi sono accorto solo ora che Andrea dava due opzioni e che tu ti riferivi alla seconda.
                      Il documento del NIST lo conosco e lo trovo molto ben fatto e di facile lettura, perciò anch’io spesso lo uso come riferimento. In particolare trovo molto comoda la check list all’inizio, quando devo rivedere rapidamente ciò che ho scritto (anche se alla fine l’esperienza riduce la percentuale di errori).

                      Ciao

                  Visualizzazione 7 filoni di risposte
                  • Devi essere connesso per rispondere a questo topic.

                  Go to top