Liverpool

Risposte nei forum create

Stai visualizzando 15 risposte – dal 826 al 840 (di 865 totali)
  • Autore
    Risposte
  • in risposta a: Mathematica! #64651
    Liverpool
    Partecipante
      Up
      0
      Down
      ::


      Perdonami, ma poiché il primo intervento l’ho scritto un po’ di tempo fa, non ricordavo più bene a che livello di dettaglio eravamo arrivati e sono stato superficiale.
      Ti ho fatto usare array proprio perché questo ambiente tabulare tratta prevalentemente matematica e va per forza inserito tra \[ \], il che ti garantisce che comandi come \times o ^, che sono matematici, verranno riconosciuti senza problemi.
      Con questo metodo, dando per scontato che nel preambolo abbia inserito \usepackage{booktabs} per avere le linee orizzontali, ciò che devi scrivere nel corpo del documento è esattamente:

      `
      \[\begin{array}{ccccccc}
      \toprule
      \rho & q_0 & q_1 & q_2 & q_3 & q_4 & q_5\\
      \midrule
      % qui copia i dati
      \bottomrule
      \end{array}\]
      `
      Longtable non lo devi usare, perché con array non funziona, e credo che nell’esempio che hai riportato non serva. Se la tabella non riesce a stare in una pagina, prima di usare Longtable puoi provare una o entrambe le soluzioni seguenti:
      1) ridurre il corpo del font utilizzando le dichiarazioni opportune. Per esempio potresti inserire tutto quanto tra {\footnotesize e };
      2) inserire tutto quanto in un ambiente flottante in modo che LaTeX trovi una pagina con spazio sufficiente. In tal caso, nel preambolo devi aggiungere queste due righe:

      `
      \usepackage{caption}
      \captionsetup[table]{position=top}
      `
      e nel corpo del documento devi scrivere esattamente:

      `
      \begin{table}
      \caption[Distribuzione di equilibrio del Modello $A$]{Distribuzione di equilibrio del Modello $A$\rule{0pt}{4ex}}\label{tab:table2}
      \centering
      \[\begin{array}{ccccccc}
      \toprule
      \rho & q_0 & q_1 & q_2 & q_3 & q_4 & q_5\\
      \midrule
      % qui copia i dati
      \bottomrule
      \end{array}\]
      \end{table}
      `
      Se proprio non riesci a far stare la tabella su una sola pagina, devi necessariamente usare Longtable e il codice va modificato in modo da poter usare l’ambiente tabular. Nel preambolo devi aggiungere queste righe:

      `
      \usepackage{array}
      \newcolumntype{C}{>{$}c<{$}} \usepackage{longtable} \usepackage{caption} \captionsetup[table]{position=top} ` e nel corpo del documento devi scrivere qualcosa del genere: ` \begin{longtable}{CCCCCCC} \caption[Distribuzione di equilibrio del Modello $A$]{Distribuzione di equilibrio del Modello $A$\rule{0pt}{4ex}}\label{tab:table2} \toprule \rho & q_0 & q_1 & q_2 & q_3 & q_4 & q_5\\ \midrule \endfirsthead \multicolumn{7}{l}{\footnotesize\itshape Continua dalla pagina precedente}\\ \toprule \rho & q_0 & q_1 & q_2 & q_3 & q_4 & q_5\\ \midrule \endhead \midrule \multicolumn{7}{r}{\footnotesize\itshape Continua nella pagina seguente}\\ \endfoot \bottomrule \endlastfoot % qui copia i dati \end{longtable} ` Visto che siamo arrivati fin qui e diventa sempre più difficile, se vuoi provare qualcosa di più personalizzabile, te la senti di fare qualche passo avanti? Scrivi in Mathematica questo codice: ` \[Rho] = {0.05, 0.10, 0.15, 0.20, 0.25, 0.30, 0.35, 0.40, 0.45, 0.50, 0.55, 0.60, 0.65, 0.70, 0.75, 0.80, 0.85, 0.90, 0.95}; Q = Table[((\[Rho]^n)/n!)*Exp[-\[Rho]], {n, 0, 5}]; NumberForm[TableForm[Join[{\[Rho]}, Q]\[Transpose]], NumberFormat -> (Row[{#, “e”, #3}] &), ExponentFunction -> (# &)]
      `
      Dai il solito shift + invio, seleziona la tabella e cliccando col pulsante destro del mouse scegli “copia come testo normale”.
      Apri un editor di testo, incolla la tabella appena copiata e salvala nella cartella del sorgente LaTeX con il nome “mathematica.txt”, ad esempio.

      Nel preambolo devi inserire (se mancano) le seguenti righe:

      `
      \usepackage{booktabs}
      \usepackage{pgfplotstable}
      `
      e nel corpo del documento devi inserire esattamente questo codice:

      `
      \pgfplotstableread{mathematica.txt}\tabella
      \pgfplotstabletypeset[columns/0/.style={column name=$\rho$},
      columns/1/.style={column name=$q_0$},
      columns/2/.style={column name=$q_1$},
      columns/3/.style={column name=$q_2$},
      columns/4/.style={column name=$q_3$},
      columns/5/.style={column name=$q_4$},
      columns/6/.style={column name=$q_5$},
      precision=5, use comma, dec sep align,
      every head row/.style={before row=\toprule, after row=\midrule},
      every last row/.style={after row=\bottomrule}]{\tabella}
      `
      Che te ne pare? Hai i numeri incolonnati alla virgola e non hai più il problema del \times. Inoltre è proprio LaTeX che si occupa di prendere 5 cifre decimali, ma solo dove sono significative (se vuoi anche gli zeri non significativi, basta aggiungere “zerofill” dopo “precision=5”). Puoi cambiare automaticamente il separatore decimale (“use comma”) o la notazione esponenziale e, se vuoi, puoi anche usare una longtable. Per tutte le possibilità di personalizzazione, ti rimando al manuale di pgfplotstable.

      Ciao

      P.S.: ma a che serve la riga “res =” nel codice di Mathematica? Non ti basta la precedente?

      in risposta a: Mathematica! #64649
      Liverpool
      Partecipante
        Up
        0
        Down
        ::


        L’errore dipende dal fatto che nell’esponenziale hai scritto rho tra parentesi graffe:

        `Q = Table[(\[Rho]^n)/n!*Exp[-\[Rho]], {n, 0, 5}];`
        a me funziona.
        Per il \times è colpa mia. Fai così, elimina l’ambiente tabulare e scrivi questo:

        `\[\begin{array}{lllllll}
        % qui ci metti la tua tabella di numeri
        \end{array}\]`
        Ti do anche un metodo alternativo al salvataggio: seleziona la tua tabella di numeri, cliccaci su col pulsante destro e scegli copia come LaTeX. Otterrai direttamente l’ambiente array che devi semplicemente copiare nel tuo sorgente tra \[ e \].
        Per ottenere esattamente cinque cifre decimali devi usare la funzione NumberForm:

        `NumberForm[TableForm[Join[{\[Rho]}, Q]\[Transpose]], {6, 5}]`
        Stai dicendo che vuoi 6 cifre, delle quali 5 a destra della virgola. E’ questo quello che vuoi?

        Ciao

        P.S.: fa male la tua insegnante a non fidarsi di Excel. Ti posso assicurare che lo usano anche nei settori scientifici più avanzati (con mia somma meraviglia).

        in risposta a: Matlab – luogo delle radici – PGF & TikZ #65280
        Liverpool
        Partecipante
          Up
          0
          Down
          ::


          Il codice che ti ho scritto alla fine del messaggio precedente non mi convince, perché non posso prevedere il comportamento del luogo quando ci sono zeri al finito e dai valori di k sparisce Inf (magari funziona lo stesso). Per sicurezza, ti indico una variante che si basa sul fatto che, se Matlab passa direttamente da un valore finito all’infinito, probabilmente ritiene che non ci siano variazioni significative in quel tratto:

          `
          ni = 1; % numero di nodi intermedi tra due adiacenti
          [r, k] = rlocus(FDT)
          [r, k] = rlocus(FDT, [interp1(k(1:end-1), 1:1/(ni+1):length(k)-1) Inf]);
          `Aumentando ni, puoi aumentare il numero di nodi intermedi.
          I punti che ottieni in questo modo appartengono sicuramente al luogo delle radici, mentre, interpolando i valori di r, non puoi esserne certo e, quando si analizza la stabilità, bisogna prestare attenzione.
          Ciao

          P.S.: Ci puoi dire direttamente la funzione di trasferimento?

          in risposta a: Matlab – luogo delle radici – PGF & TikZ #65279
          Liverpool
          Partecipante
            Up
            0
            Down
            ::

            tonegas” post=64432Ora una cosa che mi chiedevo è se era possibile rendere il grafico un po’ smooth.

            Anch’io ti consiglio di lavorare sui dati di Matlab, ma ti sconsiglio di usare l’interpolazione cubica perché i due rami di destra hanno un punto angoloso e la spline potrebbe non essere adatta.
            Invece, potresti aumentare il numero di punti del grafico semplicemente imponendo tu i valori di guadagno in corrispondenza dei quali determinare la posizione dei poli in anello chiuso con il comando:
            `
            r = rlocus(FDT, k);
            `
            dove k, nel tuo caso, è un vettore con più di 17 elementi, ovviamente. Il problema è come scegliere i valori di k senza risparmiare (perché potresti ottenere un grafico che non corrisponde alla realtà) o senza esagerare (perché ti troveresti tanti punti inutili magari dove non servono, ad esempio in un segmento). Siccome Matlab non li sceglie a casaccio, una soluzione potrebbe essere:
            1) fai una prima chiamata [r, k] = rlocus(FDT); e ti determini automaticamente i valori di k di partenza;
            2) a partire da questi, ti costruisci un nuovo vettore k nel quale, tra ogni coppia di elementi di quello di partenza, andrai ad inserire uno o più valori intermedi a seconda del dettaglio che vuoi ottenere;
            3) fai una seconda chiamata [r, k] = rlocus(FDT, k); con il vettore k appena determinato.
            Il vantaggio, rispetto all’interpolazione, è che i valori che ottieni sono effettivamente punti del luogo.
            Il metodo più semplice per scegliere i valori da inserire è, ovviamente, l’interpolazione lineare (che nel caso di un solo valore intermedio corrisponde alla media aritmetica). Chiaramente questo metodo non è comunque ottimo, perché potresti sempre generare punti che non ti servono in un segmento, ma sfruttando i valori di partenza forniti da Matlab, ti permette di non strafare.
            Esempio di interpolazione lineare con un solo nodo intermedio:
            *** Edit *** Ignora da qui in poi e passa al messaggio successivo
            `
            ni = 1; % numero di nodi intermedi tra due adiacenti
            [r, k] = rlocus(FDT);
            [r, k] = rlocus(FDT, interp1([k(1:end-1) realmax], 1:1/(ni+1):length(k)));`
            Aumentando ni, puoi aumentare il numero di nodi intermedi. Nota che interp1 non accetta il valore Inf, che è sempre l’ultimo elemento di k quando calcolato automaticamente. Allora ho sostituito Inf con realmax, che per Matlab è il più grande numero reale. Così facendo, se provi a tracciare il grafico senza indicare manualmente gli assi, probabilmente vedrai qualcosa che non ti convince (ma tanto in pgfplots gli assi li hai indicati quindi non ci sono problemi). Volendo, puoi sostituire realmax con un numero più piccolo, ad esempio un multiplo del penultimo elemento di k: 10*k(end-1).

            Ciao

            P.S.: ma ci puoi dire direttamente la funzione di trasferimento?

            in risposta a: Matlab – luogo delle radici – PGF & TikZ #65276
            Liverpool
            Partecipante
              Up
              0
              Down
              ::


              Premessa: penso che Claudio (cfiandra) ti abbia dato un consiglio d’oro. Potresti generare il codice TikZ e poi modificare quello.

              tonegas” post=64389– In più sarebbe bello che capisse in automatico il numero di campioni totale così da inserire gli zeri nel grafico.

              Comando \pgfplotstablegetrowsof a pag. 56 del manuale di pgfplotstable. Un esempio che ti può essere utile, lo trovi qui.

              tonegas” post=64389– sarebbe bello si riuscisse a fare in automatico le coppie [numero reale, numero immaginario] indipendentemente dal numero di poli.

              Con \pgfplotstablegetcolsof, sempre a pag. 56 del manuale di pgfplotstable, puoi conoscere il numero di colonne. Utilizzando \foreach e i puntini di sospensione, puoi andare da 0 ad (ncol – 1) / 2 – 1 per le parti reali e da (ncol – 1) / 2 ad (ncol – 1) per le parti immaginarie. Il -1 tra parentesi serve perché l’ultima colonna riporta i valori di k che non ci interessano (e non ho capito perché li hai salvati).

              Cosiderazioni su Matlab.
              Tieni presente che, se ci sono zeri all’infinito, Matlab ti darà degli Inf tra i valori numerici e non so come verrebbero trattati da pgfplots. Se dovessero dare problemi, la soluzione potrebbe essere di sostituirli con dei nan che pgfplots ignorerebbe.
              Non mi fido troppo del metodo con il quale Matlab individua i rami del luogo. Penso che Mathematica sia più affidabile.
              Dal punto di vista dell’interpretazione dei dati, sarebbe meglio se le coppie parte reale/immaginaria si trovassero in colonne adiacenti. Un codice per ottenerlo potrebbe essere:

              `
              [nrow, ncol] = size(r);
              r_re_im = [real(r) imag(r)]';
              r_re_im = [reshape(r_re_im, ncol, 2*nrow) k'];`
              corrispondente al più sintetico:

              `
              r_re_im = [reshape([real(r) imag(r)]', size(r, 2), 2*size(r, 1)) k'];`
              Ovviamente poi dovresti riscrivere il codice del \foreach prendendo le colonne pari a partire da 0 per le parti reali e quelle dispari per le parti immaginarie.

              Ciao

              in risposta a: Matlab – luogo delle radici – PGF & TikZ #65273
              Liverpool
              Partecipante
                Up
                0
                Down
                ::

                tonegas” post=64295

              • – salvare il grafico di matlab in un formato a vettori, essendo il luogo delle radici di fatto una funzione parametrica, o in un qualsiasi altro formato che possa essere letto da PGF e TikZ;
              • Matlab genera un vettore di numeri complessi per ogni ramo del luogo e disegna ogni elemento dei singoli vettori come punto sul piano di Gauss con un colore differente, partendo dai poli; quindi, di fatto, non si tratta di un grafico parametrico, ma di N grafici cartesiani sovrapposti. Per conoscere i punti del luogo, devi usare il comando

                `r = rlocus(h);`

                Ogni riga corrisponde ad un ramo differente e ogni elemento complesso della riga corrisponde ad una coppia ordinata sul piano di Gauss.
                Quando scrivi su file, devi separare le parti reali da quelle immaginarie e incolonnare i valori. Questo è il punto di partenza. Se ti servono ulteriori indicazioni possiamo provare ad andare avanti insieme.

                Per pgfplot però mi tiro indietro, non avendo mai provato.

                Ciao

                in risposta a: Mathematica! #64646
                Liverpool
                Partecipante
                  Up
                  0
                  Down
                  ::

                  robitex” post=64041
                  Non è il caso di utilizzare un po’ di Lua?

                  Purtroppo io Lua non lo conosco e per me è più semplice scrivere tre righe (dico tre) di codice Mathematica piuttosto che imparare un nuovo linguaggio da zero. Claudio Mathematica non lo conosce e per lui è più semplice utilizzare un foglio di calcolo piuttosto che studiarsi la sintassi di un nuovo software. Alla fine, come ho detto, il metodo più immediato mi sembra proprio quello di Claudio, ma visto che si chiedeva espressamente di Mathematica, ho ritenuto utile scrivere comunque la procedura.
                  Sarebbe interessante se potessi postare il codice Lua, anche perché potremmo effettivamente stabilire qual è il metodo più semplice, per chi li conosce tutti e tre.

                  Ciao

                  in risposta a: Mathematica! #64644
                  Liverpool
                  Partecipante
                    Up
                    0
                    Down
                    ::

                    nicotinagroove” post=63740ma io con mathematica nn sono riuscita a produrre il risultato…

                    Penso che la soluzione più immediata sia quella che ti ha indicato Claudio (un foglio elettronico), ma visto che chiedi di Mathematica, magari ti può servire per il futuro:

                    `r = {.1, .2, .3};
                    Q = Table[(1 – r) r^n, {n, 0, 5}];
                    TableForm[Join[{r}, Q]\[Transpose]]`

                    Nella prima riga, tra le graffe, inserirai i valori di \ro che ti interessano. Se sono distribuiti in maniera regolare tra gli estremi, puoi vedere anche il comando Range dalla guida. Dopo aver generato l’output con shift+invio, scegli “Salva come…” dal menù File e l’opzione “LaTeX Document (*.tex)” nella finestra di dialogo che si apre. Dopo aver salvato il file, aprilo con l’editor che usi regolarmente e vedrai questo listato:

                    `%% AMS-LaTeX Created by Wolfram Mathematica 8.0 : http://www.wolfram.com

                    \documentclass{article}
                    \usepackage{amsmath, amssymb, graphics, setspace}

                    \newcommand{\mathsym}[1]{{}}
                    \newcommand{\unicode}[1]{{}}

                    \newcounter{mathematicapage}
                    \begin{document}

                    \begin{doublespace}
                    \noindent\(\pmb{r=\{.1,.2,.3\};}\\
                    \pmb{Q=\text{Table}[(1-r)r{}^{\wedge}n,\{n,0,5\}];}\\
                    \pmb{\text{TableForm}[\text{Join}[\{r\},Q]\mathsf{T}]}\)
                    \end{doublespace}

                    \begin{doublespace}
                    \noindent\(\(\begin{array}{lllllll}
                    0.1 & 0.9 & 0.09 & 0.009 & 0.0009 & 0.00009 & 9.\times 10^{-6} \\
                    0.2 & 0.8 & 0.16 & 0.032 & 0.0064 & 0.00128 & 0.000256 \\
                    0.3 & 0.7 & 0.21 & 0.063 & 0.0189 & 0.00567 & 0.001701
                    \end{array}\)\)
                    \end{doublespace}

                    \begin{doublespace}
                    \noindent\(\pmb{\text{}}\)
                    \end{doublespace}

                    \end{document}
                    `

                    A te servono soltanto le righe (di dati) comprese tra \begin{array} ed \end{array}, che copierai nel tuo sorgente in un ambiente tabulare, come ti ha spiegato Claudio qui, nel post 63736 (attenzione che manca l’intestazione di colonna $q_0$).

                    Ciao

                    P.S.: è possibile che esista anche una maniera più elegante di creare la tabella, che al momento non mi sovviene (la sintassi di Mathematica è un po’ oscura).

                    in risposta a: Errori ClassicThesis classe articolo #64813
                    Liverpool
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      In ogni caso, la penultima riga:
                      `\bibliography{h. . .i/Bibliografia}`
                      ti darà errore, finché non inserisci prima della barra un percorso valido per la bibliografia.

                      in risposta a: L’Arte di scrivere con LaTeX — nuova edizione #47567
                      Liverpool
                      Partecipante
                        Up
                        0
                        Down
                        ::


                        A pag. 125 (143 di 207) a circa metà altezza leggo %clearpage. Non dovrebbe essere %\clearpage?
                        Sempre nella stessa pagina, nell’esempio in fondo c’è scritto \emph{arte}, ma non manca un \index{arte}?

                        Ciao

                        Edit: a pag. 131, a un terzo di altezza dall’alto, dopo “pagina 23” manca un punto fermo.
                        A pag. 137, il secondo punto dell’elenco in basso dovrebbe terminare con un punto e virgola, seguendo la convenzione adottata nel resto del documento.

                        in risposta a: L’Arte di scrivere con LaTeX — nuova edizione #47561
                        Liverpool
                        Partecipante
                          Up
                          0
                          Down
                          ::

                          lorenzo.pantieri” post=63425
                          leggi il mio articolo su ClassicThesis che spiega le motivazioni di quella scelta tipografica.

                          Dici questo paragrafo?
                          E, infine, viene fornito al lettore un accesso più semplice ai numeri di pagina, negli indici: i numeri di pagina si trovano subito di fianco alle relative voci. Sì, i numeri non sono ordinatamente allineati a destra e non sono connessi alle rispettive voci con punti che guidano l’occhio lungo una distanza non necessaria. Per chi non fosse ancora convinto: il lettore è interessato a conoscere il numero di pagina o vuole fare la somma dei numeri?

                          Se sì, l’avevo già letto e non mi aveva convinto… Anche perché, come ho già detto, io a volte voglio fare la differenza, che con la somma qualcosa in comune ce l’ha. E poi preferisco l’ordine al disordine.
                          A questo punto, visto che si parla di distanza non necessaria, perché non inserire uno spazio semplice tra titolo e numero di pagina invece di un centimetro di spazio? Tanto i numeri di pagina hanno un colore differente! Mi sembrerebbe già più ordinato.

                          Grazie per avermi risposto.

                          in risposta a: L’Arte di scrivere con LaTeX — nuova edizione #47558
                          Liverpool
                          Partecipante
                            Up
                            0
                            Down
                            ::


                            Mi chiedo perché tutti i possessori di Mac sentano la necessità di rivelare che hanno fatto qualcosa con il loro computer (vedi colophon). Sinceramente non credo che sia un dato essenziale – il libro si sarebbe potuto scrivere anche senza – e allo stesso tempo, quando non ne capisco il motivo, lo ritengo poco elegante.
                            Perdonatemi ma è solo la mia opinione.

                            E già che ci sono, mi voglio fare lapidare con un’altra opinione che provocherà mancamenti in molti di voi. Trovo veramente poco pratico, per non dire brutto, l’indice con i numeri di pagina non allineati al margine: mi dà l’idea di numeri buttati a casaccio sulla pagina. Tra l’altro non riesco a colpo d’occhio a vedere quanto è lungo un paragrafo, un capitolo o quanto distano due paragrafi, cosa che nell’altro caso è molto più semplice. Io penso che se la stragrande maggioranza dei libri ha l’indice con i numeri di pagina allineati, un motivo ci dovrà pure essere.

                            Detto questo, mi immergerò nella lettura dei contenuti…

                            in risposta a: da Latex a Word #63831
                            Liverpool
                            Partecipante
                              Up
                              0
                              Down
                              ::


                              Sfogo OT
                              Anche a me fu chiesta la versione in Word ed io spiegai che ci voleva troppo tempo perché significava rifarla da zero (ed effettivamente era così visto che si trattava di una tesi scientifica). Allora mi fu detto di lasciare il dvd con tutti i sorgenti, le immagini (fatte quasi tutte da me), la bibliografia (cioè i pdf) e le licenze utilizzate, tanto c’era un prof. assistente che si sarebbe occupato della conversione (proprio così). Questa storia del dvd mi fu detta più volte. Addirittura il relatore mi chiamò a casa (e dico a casa) all’ora di pranzo per ricordarmi di fare il dvd.
                              Qualche mese dopo, su google scholar, ho visto che era spuntato un articolo, a nome del relatore sull’argomento della tesi. L’abstract era palesemente la traduzione in inglese di un estratto della mia tesi. L’articolo, che ha partecipato ad una conferenza, non l’ho acquistato perché mi sembrava il colmo, perciò non posso dire quanto sia stato copiato. Un annetto dopo, il relatore pubblicò una riedizione del suo libro di testo con un capitolo in più sull’argomento della tesi.
                              Quello che mi ha dato fastidio è che il prof. non ci avrebbe perso niente a mettere anche il mio nome tra gli autori dell’articolo.

                              Il senso dell’intervento è che se il relatore intende copiare, lo farà comunque; a costo di riscriversi tutta la tesi leggendo il cartaceo.

                              in risposta a: [Risolto] Due problemi con circuitikz #60052
                              Liverpool
                              Partecipante
                                Up
                                0
                                Down
                                ::


                                1) forse avevo sbagliato qualcosa, perché oggi wrapfig funziona come dovrebbe
                                2) ho risolto con xscale e yscale

                                in risposta a: Plottare funzioni in forma implicita con pgf/tikz #55450
                                Liverpool
                                Partecipante
                                  Up
                                  0
                                  Down
                                  ::

                                  In realtà, sono in grado di ottenere buoni plot con programmi tipo Mathematica o Maple, ma l’esportazione in un file immagine e il seguente inserimento nel file .tex non da, alla fine, risultati soddisfacenti.

                                  Perché dici che non dà risultati soddisfacenti? Da che punto di vista? Mathematica può esportare direttamente in pdf.

                                  Ciao

                                Stai visualizzando 15 risposte – dal 826 al 840 (di 865 totali)

                                Go to top