Plot di funzioni definite implicitamente

  • Creatore
    Topic
  • #38711
    Up
    0
    Down
    ::


    Sto cercando di plottare (con PSTricks, preferibilmente, ma mi arrangerei anche con TiKZ) il grafico di una cubica liscia, nelle due forme di Weierstrass e di Legendre.
    La curva però ha la (s)fortuna di non essere razionale, e quindi non è possibile disegnarla parametricamente in modo pulito: mi sono risolto a usare una cosa del tipo
    `\begin{pspicture}(-2,-2)(2,2)
    \psset{algebraic}
    \psplot[linecolor=red]{0}{3}{sqrt(x*(x-1)*(x-1.5))}
    \end{pspicture}`
    spezzando il plot in ue carte separate, ma purtroppo, non so perchè, ogni volta che cerco di compilare il tutto TeX si inchioda (ossia non riesco a visualizzare il file .ps, e il pdf non riesce a convertirlo).

    Esiste un modo di ovviare alla cosa? Magari che consenta di plottare curve come curve di livello di superfici?
    Grazie delle eventuali risposte.

Visualizzazione 7 filoni di risposte
  • Autore
    Risposte
    • #38712
      robitex
      Amministratore del forum
        Up
        0
        Down
        ::

        Sto cercando di plottare (con PSTricks, preferibilmente, ma mi arrangerei anche con TiKZ) il grafico di una cubica liscia, nelle due forme di Weierstrass e di Legendre.
        La curva però ha la (s)fortuna di non essere razionale, e quindi non è possibile disegnarla parametricamente in modo pulito: mi sono risolto a usare una cosa del tipo
        `\begin{pspicture}(-2,-2)(2,2)
        \psset{algebraic}
        \psplot[linecolor=red]{0}{3}{sqrt(x*(x-1)*(x-1.5))}
        \end{pspicture}`
        spezzando il plot in ue carte separate, ma purtroppo, non so perchè, ogni volta che cerco di compilare il tutto TeX si inchioda (ossia non riesco a visualizzare il file .ps, e il pdf non riesce a convertirlo).

        Esiste un modo di ovviare alla cosa? Magari che consenta di plottare curve come curve di livello di superfici?
        Grazie delle eventuali risposte.

        Prova pgfplot. L’alternativa comunque è quella di far plottare un insieme di punti con coordinate ottenute con qualche programma di calcolo matematico.

        Oppure, e forse è la cosa migliore, rivolgersi a software dedicati ed includere l’immagine grafica così ottenuta, nel documento.

        Recentemente ho provato un po’ Sage, anche direttamente on-line via web, per certi calcoli che richiedevano notevole precisione numerica.

        Saluti.

      • #38713
        Up
        0
        Down
        ::


        Vorrei evitare la scelta migliore (o meglio, mi è preclusa da un vincolo estetico): mi piacerebbe infatti rispettare le direttiva grafiche del resto del documento, le etichette in Computer Modern, gli assi di quella misura, i punti di intersezione “alla PTricks”…
        Non c’è proprio alcun modo? Mi stupisce…

      • #38714
        Up
        0
        Down
        ::

        Sto cercando di plottare (con PSTricks, preferibilmente, ma mi arrangerei anche con TiKZ) il grafico di una cubica liscia, nelle due forme di Weierstrass e di Legendre.
        La curva però ha la (s)fortuna di non essere razionale, e quindi non è possibile disegnarla parametricamente in modo pulito: mi sono risolto a usare una cosa del tipo
        `\begin{pspicture}(-2,-2)(2,2)
        \psset{algebraic}
        \psplot[linecolor=red]{0}{3}{sqrt(x*(x-1)*(x-1.5))}
        \end{pspicture}`
        spezzando il plot in ue carte separate, ma purtroppo, non so perchè, ogni volta che cerco di compilare il tutto TeX si inchioda (ossia non riesco a visualizzare il file .ps, e il pdf non riesce a convertirlo).

        Esiste un modo di ovviare alla cosa? Magari che consenta di plottare curve come curve di livello di superfici?
        Grazie delle eventuali risposte.

        Caro figliolo, se chiedi di disegnare il grafico anche per x tra 1 e 1.5, qualsiasi programma ti dirà che la radice quadrata non è definita. 🙂 È precisamente il messaggio che dà Ghostscript: “Error: /rangecheck in –sqrt–“. Proverei con
        `\begin{pspicture}(-2,-2)(2,2)
        \psset{algebraic}
        \psplot[linecolor=red]{0}{1}{sqrt(x*(x-1)*(x-1.5))}
        \psplot[linecolor=red]{1.5}{3}{sqrt(x*(x-1)*(x-1.5))}
        \psplot[linecolor=red]{0}{1}{-sqrt(x*(x-1)*(x-1.5))}
        \psplot[linecolor=red]{1.5}{3}{-sqrt(x*(x-1)*(x-1.5))}
        \end{pspicture}`
        Ciao
        Enrico

      • #38715
        Up
        0
        Down
        ::


        Ok, ora posso vergognarmi,. 😳

      • #38716
        Up
        0
        Down
        ::

        Ok, ora posso vergognarmi,. 😳

        Dai, su! Come va con la forma di Weierstrass?

        Ciao
        Enrico

      • #38717
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::


          Aggiungo solo la possibilità di utilizzare Asymptote per creare grafici. In questo linguaggio è possibile gestire espressioni matematiche complesse e non perdere la coerenza tipografica delle etichette.
          Forza con la matematica!!!

        • #38718
          Up
          0
          Down
          ::


          La cubica di Weierstrass viene troppo “schiacciata” lungo l’asse x… non ricordo come si fa a riscalare un solo asse dei due, esiste un comando xyscale, xunit che faccia al caso mio?[/i]

        • #38719
          Up
          0
          Down
          ::


          Intanto ce l’ho fatta con questa:
          `\begin{pspicture}(-2,-2)(2,2)
          \psset{algebraic}
          \begin{psclip}{\pspolygon(-3,-3)(-3,3)(3,3)(3,-3)}
          \psaxes[ticks=none, linewidth=.3pt, xunit=2](0,0)(-4,-4)(4,4)
          \psplot[linecolor=red]{0}{\la2}{sqrt(x*(x-1)*(x-\la2))}
          \psplot[linecolor=red]{1}{3}{sqrt(x*(x-1)*(x-\la2))}
          \psplot[linecolor=red]{0}{\la2}{-sqrt(x*(x-1)*(x-\la2))}
          \psplot[linecolor=red]{1}{3}{-sqrt(x*(x-1)*(x-\la2))}
          \psplot[linewidth=.4pt]{-4}{4}{.7*x+1}
          %
          \pnode(-1.97509, -0.382565){A}
          \pnode(-0.288693, 0.797915){A*B}
          \pnode(1.75379, 2.22765){B}
          \pnode(-1.7, 1.17346){O}
          \psdot(A)\uput[0](A){$A$}
          \psdot[linecolor=blue](A*B)\uput[0](A*B){$A*B$}
          \psdot(B)\uput[0](B){$B$}
          \psdot(O)\uput[0](O){$O$}
          \psplot[linewidth=.4pt]{-4}{4}{0.721095 – 0.266095*x}
          \pnode(1.0595, 0.439168){A+B}
          \psdot(A+B)\uput[0](A+B){$A+B$}
          \end{psclip}
          \end{pspicture}`

          Suggerimenti per qualche miglioria?

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

      Go to top