Simbolo matematico della fase

  • Questo topic ha 21 risposte, 6 partecipanti ed è stato aggiornato l'ultima volta 19 anni, 5 mesi fa da DMW.
  • Creatore
    Topic
  • #6840
    DMW
      Up
      0
      Down
      ::


      Dovrei sapere quale è il codice della funzione o simbolo matematico della fase di un numero complesso o di una funzione di trasferimento che è riportata di seguito: (anche se fa schifo)

      / W(j*\Omega)
      /—————-
      Naturalmente le linee sono continue e la scritta W(z) e appena sopra la linea orizzontale.

      Ho provato a vedere sulla lista dei simboli matematici ma non c’è.

      Ciao

    Visualizzazione 20 filoni di risposte
    • Autore
      Risposte
      • #6841
        Up
        0
        Down
        ::


        Ho capito a che simbolo ti riferisci solo perché so di che parli…
        Prova a googlare

        comprehensive latex symbol list

        E vedi se trovi il simbolo che fa al caso tuo.

        A mio modesto parere, però, supposto che esista tale simbolo in grado di effettuare anche la “sottolineatura”, la resa deve essere piuttosto bruttina. Magari potresti trovare qualcosa che faccia una sorta di angolo “prima” della funzione di trasferimento, senza sottolinearlo.

      • #6842
        Up
        0
        Down
        ::

        A mio modesto parere, però, supposto che esista tale simbolo in grado di effettuare anche la “sottolineatura”, la resa deve essere piuttosto bruttina. Magari potresti trovare qualcosa che faccia una sorta di angolo “prima” della funzione di trasferimento, senza sottolinearlo.

        Sono d’accordo per indicare la fase è meglio utilizzare solo il simbolino senza sottilineare tutto. Tutti i miei libri utilizzano questa notazione!

        Ciao!

      • #6843
        Up
        0
        Down
        ::


        Hai provato con

        \angle

        una volta caricato il pacchetto amssymb? Magari non è la soluzione migliore. Facci sapere.

      • #6844
        DMW
          Up
          0
          Down
          ::


          Ragazzi, insieme al mio prof., anzi l’ha fatta quasi tutta lui, ho provato a fare la funzione fase, con discreti risultati.

          `
          \def\fase#1{
          \lower3.7pt\hbox{{\vbox{\ialign{$\mathsurround=0pt##$\crcr
          \raise3.75pt\hbox{$\left/\raise.5pt\hbox{$#1$}\right.$}\mathrel{\mkern14mu}\crcr
          \noalign{\nointerlineskip\vskip-.7pt}
          \mkern1.3mu\leaders\hrule
          height0.4pt\hfill\mkern20mu\crcr}}}}\hskip-8pt}
          ….

          `

          Il problema è che a volte la parentesi / sfora la linea orizzontale.

          Comunque il problema si può risolvere con questa definizione
          `
          \def\fasebis#1#2#3{
          \lower3.7pt\hbox{{\vbox{\ialign{$\mathsurround=0pt##$\crcr
          \raise3.75pt\hbox{$\left/\raise#2pt\hbox{$#1$}\right.$}\mathrel{\mkern14mu}\crcr
          \noalign{\nointerlineskip\vskip#3pt}
          \mkern1.3mu\leaders\hrule
          height0.4pt\hfill\mkern20mu\crcr}}}}\hskip-8pt}`

          Dove il primo argomento è la funzione, Il secondo argomento e’ un numero n (determina
          di quanti punti “alzare” la funzione di n pt) ed il terzo è il salto che si può far fare alla linea orizzontale per allinearla con la barra obliqua.
          Esempio: notare la differenza
          tra questi due output
          `\begin{equation}
          -\frac{1}{2\pi j}\fase{\dfrac{W(s)}{I(s)}}=\pi
          \end{equation}
          \begin{equation}
          -\frac{1}{2\pi j}\fasebis{\dfrac{W(s)}{I(s)}}{0.5}{-.4}=\pi
          \end{equation}`

          Il problema ora è l’allineamento verticale, perché la funzione fase è troppo in alto.
          Avevo provato a scrivere:

          `
          …..
          \setbox0=\hbox{$\left\barra\raise#2pt\hbox{$#1$}\right.$}
          \dimen0=\ht0 \divide\dimen0 by 2
          \lower\dimen0\hbox{{\vbox{\ialign{$\mathsurround=0pt##$\crcr%
          …..
          `
          per abbassarla di metà altezza però non va. Mi sa che bisogna andare a occhio modificando a mano, mediante un parmetro il valore dopo \lower.

          Se qualcuno ha suggerimenti o modifiche…..

          Ciao

          Andrea

        • #6845
          lorenzo.pantieri
          Partecipante
            Up
            0
            Down
            ::

            Ragazzi, insieme al mio prof., anzi l’ha fatta quasi tutta lui, ho provato a fare la funzione fase, con discreti risultati…

            Ciao Andrea, scusa la banalità, ma sei sicuro che non esista un pacchetto apposito che eviti di procedere in modo così… “manuale”?

            Ciao,
            L.

          • #6846
            DMW
              Up
              0
              Down
              ::

              Ragazzi, insieme al mio prof., anzi l’ha fatta quasi tutta lui, ho provato a fare la funzione fase, con discreti risultati…

              Ciao Andrea, scusa la banalità, ma sei sicuro che non esista un pacchetto apposito che eviti di procedere in modo così… “manuale”?

              Ciao,
              L.

              No, purtroppo no. E’ l’unica funzione che manca, per quel che so io.

              Cè il comando
              `
              \angle(F(s))`
              ma a me non piace affatto.

              Si potrebbe anche creare una funzione \DeclareMathOperator{\arg}{arg}, ma quella che dico io purtroppo non c’è.

              Ciao

              Andrea

            • #6847
              Up
              0
              Down
              ::

              [quote]Ragazzi, insieme al mio prof., anzi l’ha fatta quasi tutta lui, ho provato a fare la funzione fase, con discreti risultati…

              Ciao Andrea, scusa la banalità, ma sei sicuro che non esista un pacchetto apposito che eviti di procedere in modo così… “manuale”?

              Ciao,
              L.

              No, purtroppo no. E’ l’unica funzione che manca, per quel che so io.

              Cè il comando
              `
              \angle(F(s))`
              ma a me non piace affatto.

              Si potrebbe anche creare una funzione \DeclareMathOperator{\arg}{arg}, ma quella che dico io purtroppo non c’è. [/quote]
              Dici che questo possa andare?
              `\makeatletter
              \def\fase#1{\vcenter{\offinterlineskip\vskip1pt
              \ialign{##\cr
              $\left/\raise.7pt\hbox{$#1$}\right.$\cr
              \noalign{\vskip-.3pt}
              $\mkern1.3mu\hrulefill\mkern4mu$\cr}}}
              \makeatother`
              Ciao
              Enrico

            • #6848
              DMW
                Up
                0
                Down
                ::

                [quote][quote]Ragazzi, insieme al mio prof., anzi l’ha fatta quasi tutta lui, ho provato a fare la funzione fase, con discreti risultati…

                Ciao Andrea, scusa la banalità, ma sei sicuro che non esista un pacchetto apposito che eviti di procedere in modo così… “manuale”?

                Ciao,
                L.

                No, purtroppo no. E’ l’unica funzione che manca, per quel che so io.

                Cè il comando
                `
                \angle(F(s))`
                ma a me non piace affatto.

                Si potrebbe anche creare una funzione \DeclareMathOperator{\arg}{arg}, ma quella che dico io purtroppo non c’è. [/quote]
                Dici che questo possa andare?
                `\makeatletter
                \def\fase#1{\vcenter{\offinterlineskip\vskip1pt
                \ialign{##\cr
                $\left/\raise.7pt\hbox{$#1$}\right.$\cr
                \noalign{\vskip-.3pt}
                $\mkern1.3mu\hrulefill\mkern4mu$\cr}}}
                \makeatother`
                Ciao
                Enrico[/quote]

                😀 😀 😀 😀 😀 Non ho nulla da dire! 😀 😀 😀 😀

                Sua Maestà.

                Ciao

                Andrea

              • #6849
                Up
                0
                Down
                ::


                Se davvero questa funzione è di uso comune e non è presente in LaTeX, credete che sia il caso di suggerirne l’aggiunta?

              • #6850
                DMW
                  Up
                  0
                  Down
                  ::

                  Se davvero questa funzione è di uso comune e non è presente in LaTeX, credete che sia il caso di suggerirne l’aggiunta?

                  Se hai fatto l’esame di teoria dei sistemi e controlli automatici, dovresti conoscerla.
                  Iin molti libri che ho, stranieri e non, c’è e si usa spesso.

                  Inoltre bisogna aggiungere anche una sua variante. Faccio un esempio.

                  `
                  \makeatletter
                  \def\fase#1{\vcenter{\offinterlineskip\vskip1pt
                  \ialign{##\cr
                  $\left/\raise.7pt\hbox{$#1$}\right.$\cr
                  \noalign{\vskip-.3pt}
                  $\mkern1.3mu\hrulefill\mkern4mu$\cr}}}
                  \def\fasebig#1#2{\vcenter{\offinterlineskip\vskip1pt
                  \ialign{##\cr
                  $\left/\raise#2pt\hbox{$#1$}\right.$\cr
                  \noalign{\vskip-.3pt}%o-.4pt
                  $\mkern1.3mu\hrulefill\mkern4mu$\cr}}}
                  \makeatother

                  …………
                  \begin{equation}
                  \fase{\dfrac{1}{1+2\zeta\tfrac{j\omega}
                  {\omega_n}+\big(\tfrac{j\omega}{\omega_n}\big)^2}}=\pi
                  \end{equation}
                  \begin{equation}
                  \fasebig{\dfrac{1}{1+2\zeta\tfrac{j\omega}
                  {\omega_n}+\big(\tfrac{j\omega}{\omega_n}\big)^2}}{2.5}=\pi
                  \end{equation}
                  `

                  ingrandisci e vedi come nella prima equazione la riga orizzontale va troppo giù, o meglio, è la formula che è troppo in basso. Ed allora occorre tirare su tutto con il secondo parametro. Ancora peggio se a posto di \big, che tra l’altro da un ottimo risultato, metti \left e \right.

                  Ciao

                  Andrea

                • #6851
                  Up
                  0
                  Down
                  ::

                  Se davvero questa funzione è di uso comune e non è presente in LaTeX, credete che sia il caso di suggerirne l’aggiunta?

                  Se hai fatto l’esame di teoria dei sistemi e controlli automatici, dovresti conoscerla.
                  Iin molti libri che ho, stranieri e non, c’è e si usa spesso.
                  ì

                  So cosa significa e l’ho usata, ma mai con questo simbolo. Se confermi che è di uso comune, credo che sia il caso di suggerirne l’aggiunta.

                • #6852
                  DMW
                    Up
                    0
                    Down
                    ::

                    [quote]Se davvero questa funzione è di uso comune e non è presente in LaTeX, credete che sia il caso di suggerirne l’aggiunta?

                    Se hai fatto l’esame di teoria dei sistemi e controlli automatici, dovresti conoscerla.
                    Iin molti libri che ho, stranieri e non, c’è e si usa spesso.
                    ì

                    So cosa significa e l’ho usata, ma mai con questo simbolo. Se confermi che è di uso comune, credo che sia il caso di suggerirne l’aggiunta.[/quote]

                    Lapo,

                    Non mi riferivo al significato della funzione fase, lo so che la conosci, però è strano che non conosci quel tipo di funzione scritta in quel modo. Di solito, specialmente in elettronica, chi scrive documenti elettronici usa sempre \varphi o \angle() o \arg. Se poi devono scrivere a mano allora molti la usano, ma non tutti.

                    Tra l’altro su word non c’è nemmeno se la sogni di notte. 😀 😀 😀

                    Secondo me si potrebbe aggiungere anche se non è così importante.

                    Ciao

                    Andrea

                  • #6853
                    Up
                    0
                    Down
                    ::

                    Tra l’altro su word non c’è nemmeno se la sogni di notte. 😀 😀 😀

                    Secondo me si potrebbe aggiungere anche se non è così importante.

                    Ti regalo questo “perfezionamento”
                    `\makeatletter
                    \def\ph@sefill{\leaders\hrule height .12ex\hfill}
                    \newcommand\phase[2][23]{\vcenter{\offinterlineskip
                    \ialign{##\cr
                    $\left/\raise.#1ex\hbox{$#2$}\right.$\cr
                    \noalign{\vskip-.1ex}
                    $\mkern1.3mu\ph@sefill\mkern4mu$\cr}\vskip-.#1ex}}
                    \makeatother`
                    Adesso prova con
                    `{\Large
                    \begin{equation}
                    \phase[60]{\dfrac{1+2\zeta\tfrac{j\omega}{\omega_n}}{1+2\zeta\tfrac{j\omega}
                    {\omega_n}+\big(\tfrac{j\omega}{\omega_n}\big)^2}}=\pi
                    \end{equation}
                    }

                    \begin{equation}
                    \phase[60]{\vphantom{\dfrac{\tfrac{j\omega}{\omega_n}}{\tfrac{j\omega}{\omega_n}}}
                    \dfrac{1}{1+2\zeta\tfrac{j\omega}
                    {\omega_n}+\big(\tfrac{j\omega}{\omega_n}\big)^2}}=\pi
                    \end{equation}

                    \begin{equation}
                    \phase{\dfrac{W(s)}{I(s)}}\dfrac{W(s)}{I(s)}\phase{W(j*\omega)}W(s)
                    \end{equation}`
                    Difficile tenere conto di tutto e, come vedi, qualche \vphantom mette le cose a posto. Ma almeno, per le cose più comuni, funziona senza aggiustamenti.

                    Il comando \phase ha un argomento opzionale (default 23 perché .23ex = 1pt a corpo 10) e uno obbligatorio. L’argomento opzionale è un valore compreso fra 10 e 99 che serve per fare l’aggiustamento che tu facevi con il secondo argomento di \fasebig.

                    Ho espresso tutte le misure in ex, in modo che non dipendano dal corpo in uso; ho aggiustato lo spessore della riga orizzontale in modo che sia come quella obliqua. Se, senza argomento opzionale, la riga orizzontale si stacca, puoi usare quello per rimettere le cose a posto.

                    Fa’ un po’ di prove e vediamo che ne pensi.

                    Ciao
                    Enrico

                  • #6854
                    DMW
                      Up
                      0
                      Down
                      ::


                      Perfetto.

                      Grazie mille,

                      Andrea

                    • #6855
                      Up
                      0
                      Down
                      ::

                      Perfetto.

                      Prova anche questa
                      `\newsavebox{\phasebox}
                      \newlength{\phasedp}
                      \newlength{\phaseht}
                      \newlength{\phasetot}
                      \newlength{\phasewd}

                      \makeatletter
                      \def\phase#1{%
                      \sbox\phasebox{$\displaystyle#1$}%
                      \phaseht=\ht\phasebox
                      \phasedp=\dp\phasebox
                      \phasetot=\phasedp \advance\phasetot 0.23ex
                      \advance\phasetot\phaseht
                      \phasewd=\wd\phasebox
                      \advance\phasewd .5\phasetot
                      \vbox to\phaseht{\hbox{\setlength{\unitlength}{1pt}\linethickness{.6pt}%
                      \edef\ph@x{\strip@pt\phasewd}\edef\ph@y{\strip@pt\phasetot}%
                      \dimen@ .5\phasetot \edef\ph@dx{\strip@pt\dimen@}%
                      \begin{picture}(\ph@x,\ph@y)
                      \put(0,0){\circle*{.4}}
                      \put(0,0){\line(1,0){\ph@x}}\put(0,0){\line(1,2){\ph@dx}}
                      \put(\ph@dx,1){\raise\phasedp\vbox{\box\phasebox}}
                      \end{picture}%
                      }\vss}}
                      \makeatother`
                      Non ci dovrebbero essere più necessità di aggiustamenti. Occorre caricare il pacchetto pict2e, in modo da avere linee e cerchi di grandezza arbitraria.

                      Ciao
                      Enrico

                    • #6856
                      DMW
                        Up
                        0
                        Down
                        ::


                        😯 😯 😯 Sei un mago 😀 😀 😀 😀 😀

                        Non c’è bisogno di fare nulla, fa tutto lei. Inoltre la barra obliqua si adatta alla funzione in tutta la sua altezza, mentre quelle in precedenza non lo fanno.

                        Ti do un consiglio: Fatti visitare, perché non sei umano. 😀 😀

                        Grazie mille.

                        Andrea

                      • #6857
                        DMW
                          Up
                          0
                          Down
                          ::


                          Sono sincero. Non ci sarei mai arrivato, però a dire la verità il codice non è molto complicato.

                          Se non erro \strip@pt trasmorma una lunghezza in un numero puro “toglie pt”.
                          Phasetot è pari all’antezza più la profondità della box \phasebox, è cioè pari all’altezza totale.
                          Poi aumenti di 0.23ex per allineare verticalmente.
                          La stessa cosa fai in lunghezza ed aumenti di 0.5\phasetot per aumentare la linea sotto e per allineare orizzontalmente quello che c’è dopo la funzione.

                          Poi scrivi
                          ` \begin{picture}(\ph@x,\ph@y)
                          \put(0,0){\circle*{.4}}
                          \put(0,0){\line(1,0){\ph@x}}\put(0,0){\line(1,2){\ph@dx}}
                          \put(\ph@dx,1){\raise\phasedp\vbox{\box\phasebox}}
                          \end{picture}%`

                          L’unica cosa che non ho capito è il compito di questo comando, poi con calma mi leggo la doc di pict2e.

                          Perché scrivi \put(0,0){\circle*{.4}}?.

                          Poi di seguito metti la linea obligua e quella orizzontale e poi la funzione tramite \box\phasebox.

                          Inoltre confermami se il comando \line(x,y){lungezza} funziona in questo modo.

                          con \put dai il primo estremo e poi con \line(x,y){valore} disegni una linea lunga valore e con un angolo pari ad arctg(y/x). In pratica con \put(0,0){\line(1,2){\ph@dx}} disegni una linea con il primo estremo in (0,0) lunga {\ph@dx} e con un angolo di 63,43° circa.

                          Ciao e grazie ancora

                          Andrea

                        • #6858
                          Up
                          0
                          Down
                          ::

                          Sono sincero. Non ci sarei mai arrivato, però a dire la verità il codice non è molto complicato.

                          Se non erro \strip@pt trasmorma una lunghezza in un numero puro “toglie pt”.
                          Phasetot è pari all’antezza più la profondità della box \phasebox, è cioè pari all’altezza totale.
                          Poi aumenti di 0.23ex per allineare verticalmente.
                          La stessa cosa fai in lunghezza ed aumenti di 0.5\phasetot per aumentare la linea sotto e per allineare orizzontalmente quello che c’è dopo la funzione.

                          Poi scrivi
                          ` \begin{picture}(\ph@x,\ph@y)
                          \put(0,0){\circle*{.4}}
                          \put(0,0){\line(1,0){\ph@x}}\put(0,0){\line(1,2){\ph@dx}}
                          \put(\ph@dx,1){\raise\phasedp\vbox{\box\phasebox}}
                          \end{picture}%`

                          L’unica cosa che non ho capito è il compito di questo comando, poi con calma mi leggo la doc di pict2e.

                          Perché scrivi \put(0,0){\circle*{.4}}?.

                          Poi di seguito metti la linea obligua e quella orizzontale e poi la funzione tramite \box\phasebox.

                          Inoltre spiegami come funziona il comando \line(x,y){lunghezza}, perché non ho capito quale è il punto di partenza e quello finale, cioè i due estremi.

                          Aumento la dimensione verticale totale di 0.23ex (cioè, a corpo 10, di un punto, ma scalando se si usano corpi maggiori) per lasciare lo spazio fra il simbolo e la linea orizzontale.

                          L’aumento di .5\phasetot della dimensione orizzontale è per lasciare lo spazio per la barra obliqua. All’inizio avevo messo .58, che è l’inverso della radice di 3, geometricamente corretto, ma non veniva altrettanto bene, a occhio.

                          L’ambiente picture serve a disegnare le due linee. Il piccolo disco pieno (cioè \circle*{.4}) serve a mascherare gli attacchi dei due segmenti. Se lo commenti puoi vedere l’effetto. Non è proprio il massimo, ma a dimensioni normali sembra che funzioni.

                          Il comando \line ha una sintassi curiosa: \line(x,y){n} disegna il segmento di retta di coefficiente angolare y/x che corrisponde a uno spostamento orizzontale di n (le misure sono rispetto a \unitlength). Per esempio, con \put(0,0){\line(2,1){4}} il punto iniziale è (0,0) e quello finale è (4,2); con \put(1,3){\line(1,2){8}} il punto iniziale è (1,3), quello finale è (1+8,3+8*2)=(9,19)

                          Ho scelto una \line(1,2) perché ha la stessa inclinazione della barra usuale.

                          La supposizione su \strip@pt è corretta; ne ho bisogno per trasformare una lunghezza nella sua misura rispetto a \unitlength.

                          Ciao
                          Enrico

                        • #6859
                          DMW
                            Up
                            0
                            Down
                            ::


                            Ecco fatto, con un po’ di prove ho capito.
                            Il cerchio \put(0,0){\circle*{.4}}, serve per smussare l’intersezione tra la linea obliqua e quella dritta.

                            Ciao

                            Andrea
                            ________________________________________________________________________
                            (seconda parte)
                            Ops! abbiamo scritto in contemporanea e poi mente scrivevi il tuo mesaggio ho modificato quello precedente perché avevo intuito più o meno come funge \line.

                            Comunque ho capito tutto molto bene. Grazie per la spiegazione. Credo che posso andare a dormire, che è ora e non rompo più le scatole.

                            Ciao

                          • #6860
                            Up
                            0
                            Down
                            ::


                            Nuova versione, un po’ più definitiva 😀
                            `\newsavebox{\phasebox}
                            \newlength{\phasedp}
                            \newlength{\phaseht}
                            \newlength{\phasetot}
                            \newlength{\phasewd}

                            \makeatletter
                            \newcommand\phase[2][0]{%
                            \sbox\phasebox{%
                            $\ifcase#1\relax
                            \displaystyle\or\textstyle\or\scriptstyle\or\scriptscriptstyle
                            \fi#2$}
                            \phaseht=\ht\phasebox
                            \phasedp=\dp\phasebox
                            \phasetot=\phasedp \advance\phasetot .35ex %0.23ex
                            \advance\phasetot\phaseht
                            \phasewd=\wd\phasebox
                            \advance\phasewd .5\phasetot
                            \setbox0=\vbox to\phaseht{\hbox{\setlength{\unitlength}{1pt}\linethickness{.6pt}%
                            \edef\ph@x{\strip@pt\phasewd}\edef\ph@y{\strip@pt\phasetot}%
                            \dimen@ .5\phasetot \edef\ph@dx{\strip@pt\dimen@}%
                            \begin{picture}(\ph@x,\ph@y)
                            \put(0,0){\circle*{.4}}
                            \put(0,0){\line(1,0){\ph@x}}\put(0,0){\line(1,2){\ph@dx}}
                            \put(\ph@dx,1.5){\raise\phasedp\vbox{\box\phasebox}}
                            \end{picture}%
                            }\vss}\advance\phasedp .35ex \advance\phasedp .6pt \dp0=\phasedp \box0 }
                            \makeatother`
                            A differenza della precedente il risultato ha altezza e profondità corrette. Inoltre è possibile specificare un argomento opzionale per forzare un particolare stile di formula:
                            `\phase[0]{X}
                            \phase[1]{X}
                            \phase[2]{X}
                            \phase[3]{X}`
                            compongono X all’interno dell’angolo rispettivamente in \displaystyle, \textstyle, \scriptstyle e \scriptscriptstyle.

                            Ciao
                            Enrico

                          • #6861
                            DMW
                              Up
                              0
                              Down
                              ::


                              Be’, ancora meglio. Tra l’altro ho imparato il costrutto case, che conoscevo solo in c e c++.

                              Grazie

                              Andrea

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

                          Go to top