Roberto Di Vito

Risposte nei forum create

Stai visualizzando 6 risposte – dal 1 al 6 (di 6 totali)
  • Autore
    Risposte
  • Up
    0
    Down
    ::


    Allora, ho creato un esempio funzionante di codice. L’ho anche migliorato perché adesso permette di inserire il segno di oggetti di secondo grado (o superiore) direttamente.

    Il codice è il seguente.

    `
    \documentclass[11pt]{article}

    \usepackage{tikz, pgfplots, pgfmath, pgffor, amssymb}

    \begin{document}

    Sign table for the function
    \[
    f(x) = \frac{x(x^2-1)}{x+2}
    \]

    \bigskip

    \begin{tikzpicture}[scale=.80]

    % variables and sign array
    %
    \def\h{0.9}; % row height
    \def\w{2.5}; % column width
    %
    \def\zeros{{“-2”, “-1”, 0, 1}}; % zeros and point of not existence
    \def\factors{{“x+2”, “x”, “x^2-1”, “f(x)”}};
    \def\signs{{{“-” ,”\nexists” ,”+” , ,”+” , ,”+” , ,”+”},
    {“-” , ,”-” , ,”-” ,”0″ ,”+” , ,”+”},
    {“+” , ,”+” ,”0″ ,”-” , ,”-” ,”0″ ,”+”},
    {“+” ,”\nexists” ,”-” ,”0″ ,”+” ,”0″ ,”-” ,”0″ ,”+”},
    }};
    %
    \pgfmathsetmacro\nzeros{dim(\zeros)-1}; % number of zeros
    \pgfmathsetmacro\ncol{2*dim(\zeros)}; % Number of columns
    \pgfmathsetmacro\nrow{dim(\factors)-1}; % number of rows

    % Abscissa axis
    %
    \draw[->] (-\w, 0) — ({(\nzeros+1)*\w+0.125}, 0) node[above]{$x$};
    \draw (-\w, {-\nrow*\h}) — ({(\nzeros+1)*\w}, {-\nrow*\h});

    % Zeros and vertical (dotted) lines
    %
    \foreach \i in {0,…,\nzeros} {
    \draw[dotted, gray!80] (\i*\w, {-(\nrow+0.125)*\h}) — (\i*\w, 0);
    \draw (\i*\w, 0) — (\i*\w, +0.125) node[above] {$\pgfmathparse{\zeros[\i]}\pgfmathresult$};
    }

    % Signs and zeros table
    %
    \foreach \row in {0,…,\nrow} {
    \node

    at (-\w-0.125, {-(\row+0.5)*\h}) {\footnotesize signs of\, $\pgfmathparse{\factors[\row]}\pgfmathresult$};
    \foreach \col in {0,…,\ncol} {
    \node at ({(\col-1)*\w/2}, {-(\row+0.5)*\h}) {$\pgfmathparse{\signs[\row][\col]}\pgfmathresult$}; % <-- (1) } } \end{tikzpicture} \end{document} ` Purtroppo non riesco ancora a risolvere il problema della sovrapposizione della riga punteggiata con gli zeri. Ho provato con un box ma crea un box vuoto anche sulla linea tratteggiata. Ho provato con un \contour ma mi restituisce un errore del tipo: Incomplete \iffalse; all text was ignored after line 52.} dove la linea 52 è la fine dell'ultimo \foreach. Immagino che sia dovuto ad una eccezione dovuta al tentativo di creare un contorno di un carattere nullo (da cui il riferimento ad un \iffalse che probabilmente è nella definzione di \contour). Questo suggerisce anche una possibile strada per sistemare il codice. Gestendo l'eccezione del contenuto nullo in contour. Ma anche questa al momento è una ipotesi di lavoro Ciao R.

    Up
    0
    Down
    ::


    Ciao,

    grazie per aver risposto. Il problema che ho non riguarda la parte tikz (quindi il codice da te proposto per creare lo spazio bianco) quanto in realtà nei controlli. Non riesco a gestire i tipi di dati e a realizzare controlli funzionanti. Né riesco a trovare una fonte su questo argomento che sia completa e mi permetta di agire a mio piacimento

    Detto questo, cercando sui forum in inglese ho trovato diverse alternative. Quella che mi sembra più promettente è questa:

    https://tex.stackexchange.com/questions/598780/sign-table-with-bullets-and-circles

    Che però va assolutamente modificata da un punto di vista estetico (per farla assomigliare a quella creata da me).

    Ora sono un po’ impegnato a scuola, ma nel weekend ci metto un po’ mano. Pur conoscendo Tikz non coscevo Tikz-tab che è stato usato.

    Dopo alcuni tentativi ti aggiorno se vuoi per vedere cosa sono riuscito a fare.

    Grazie di nuovo,

    Roberto

    P.S. Per interropere la linea punteggiata in un certo punto (nota 1) ci vuole comunque un controllo che è proprio il mio problema

    (nota: oppure al contrario farla sempre interrotta e metterla solo dove non vanno gli zeri e i \nexists)

    Up
    0
    Down
    ::


    Sto parlando del grafico dei segni che si usa per risolvere una disequazione.

    Il codice che ho copiato (e che ho creato) produce questo:
    https://drive.google.com/file/d/1RtrLDg31cLv9Gr4e7zDwZbQP4nBDm9jx/view?cf_lbyyhhwhyjj5l3rs65cb3w=ppte4rhs9nl6j6hwtw7fc

    Io vorrei solo perfezionarlo per evitare la sovrapposizione di 0 e \nexists sulle righe punteggiate verticali.

    Up
    0
    Down
    ::


    Perdonami, ma io ho usato chiaramente TikZ con pgfplots. E conosco la chilometrica documentazione.

    Quello che non riesco a trovare è come definire opportunamente array misti e come fare i controlli in base alla tipologia delle variabili.

    Se riuscissi a capire come scrivere la condizione che mi identifica gli elementi (volutamente) nulli nell’array potrei perfezionare il codice. Ma non li trovo

    I controlli che cerco sono del tipo
    Se array[j] not= nullo allora scrivi questo
    Se array[j] = 0 OR array[j] = “\nexists” allora scrivi questo

    o, più semplicemente un ciclo FOR che da solo esclude i valori nulli dell’array

    e non serve neanche l’else

    R.

    Up
    0
    Down
    ::


    tabularray lo uso già per le tabelle. Però vorrei fare il grafico vero e proprio

    in risposta a: Il plot su tikz genera un grafico sbagliato #120654
    Up
    0
    Down
    ::


    Rispondo a tutti,

    Seguendo il suggerimento di OldClaudio, ho provato ad impostare un numero basso di campioni: 80, poi sperimentando ho trovato che con 160 si riesce ad avere un buon grafico, (fig 1 allegata).

    In precedenza avevo però adottato la medesima soluzione al caso di x sin (1/x) (in figura 2) ma il grafico continuava ad avere problemi. Però allora scelsi un numero di campioni elevatissimo 500, 1000 convinto che maggiore fosse il numero di campioni e migliore sarebbe stata la resa.

    Scegliendo un numero più piccolo di campioni (sempre 160) si ottiene un buon grafico anche di x sin (1/x), ma qui bisogna usare in combinazione smooth (figura 3)

    Quanto a pgfplots, sicuramente lo studierò in estate ora avevo bisogno di una soluzione “in time” e mi trovavo comodo con questo sistema customizzato da me.

    Ringrazio tutti per gli interventi.
    Roberto

    Attachments:
    You must be logged in to view attached files.
Stai visualizzando 6 risposte – dal 1 al 6 (di 6 totali)

Go to top