Documentazione / Forme / Espressione

Forma Espressione

La forma Espressione è il cuore matematico di ogni modello di Modellus. È qui che definisci le equazioni, i parametri, le equazioni differenziali, le ricorrenze e le condizioni che guidano la simulazione.

Forma Espressione sulla lavagna con le equazioni in vista

Panoramica

Una forma Espressione contiene una o più istruzioni matematiche scritte con una sintassi simile al LaTeX in un campo matematico MathLive. Ogni istruzione occupa una riga. Tutte le forme Espressione di un modello condividono un unico sistema di calcolo: i nomi dei termini devono essere unici in tutto il modello, non solo nella singola forma.

Usa più forme Espressione piccole, raggruppate per argomento (parametri, equazioni, grandezze derivate), per mantenere il modello ordinato e leggibile.

Leggere un'espressione

Quando una forma contiene due o più equazioni, vengono mostrate come un unico blocco con una sola colonna per il segno di uguale: i primi membri sono allineati a destra contro il segno di uguale, i secondi membri sono allineati a sinistra dopo di esso, e il blocco è centrato nella scheda. Si allinea solo il segno di uguale principale di ogni riga: un segno di uguale dentro una condizione, una frazione o delle parentesi resta dov'è. Una forma con una sola equazione si vede come prima. L'allineamento riguarda solo la presentazione: il modello memorizza sempre una riga semplice per ogni equazione.

Tre forme Espressione con equazioni allineate e colori secondo il significato

Ogni parte di un'espressione è colorata secondo il suo significato:

Se il modello non riesce a leggere una riga, lo dice sulla scheda stessa, non nascosto dietro un passaggio del mouse. La riga è scritta in rosso e attraversata da una fascia, la scheda ha un bordo rosso così la riconosci anche da lontano sulla lavagna, e un pannello in fondo alla scheda spiega il perché, nella stessa lingua del resto dell'editor. Dove alla riga manca qualcosa (un valore, una parentesi) viene disegnato uno spazio tratteggiato nel punto in cui andrebbe, come lo spazio vuoto di uno schema da completare; quando il pezzo mancante è dentro una frazione o una radice, viene invece sottolineata quella frazione o radice, perché il punto non si può indicare con più precisione del simbolo che lo contiene. Un simbolo che non può stare dove è stato scritto viene sottolineato lì dov'è. Il pannello si apre ogni volta che ti avvicini alla scheda (con il puntatore sopra, con la scheda selezionata o con il cursore dentro) e mostra soltanto le spiegazioni, senza un titolo sopra e senza il nome della riga davanti a ciascuna: puntando una spiegazione si illumina la riga a cui si riferisce, e facendo clic il cursore va lì. Le righe vengono controllate mentre scrivi e non solo quando ti sposti altrove, tranne la riga in cui si trova il cursore: una riga è incompleta finché la stai scrivendo, quindi viene lasciata stare finché non la lasci.

I colori indicano una famiglia, non una tonalità fissa. Ognuno viene letto dai token del tema --math-* e poi adattato alla scheda su cui è dipinto: la tinta resta, la luminosità si sposta finché il testo non si stacca bene dallo sfondo, e allo stesso tempo il colore si fa più intenso. Una scheda bianca riceve colori profondi e saturi; una scheda nera o grigio scuro riceve colori brillanti; cambiando il colore della scheda l'espressione si ridipinge subito. Ogni colore mantiene almeno il contrasto richiesto dalle linee guida sull'accessibilità, e gli operatori restano un tono più discreti delle variabili. Il cursore e l'evidenziazione della selezione seguono la stessa regola, e così anche il colore del testo della scheda, che è quello con cui si disegnano le parentesi, le linee di frazione e i segni di radice: resta esattamente come l'hai scelto e viene schiarito solo quando altrimenti la scheda lo farebbe sparire. Niente di tutto questo arriva al modello: un'espressione salvata o copiata non porta mai con sé un colore.

Barra degli strumenti

Barra degli strumenti della forma Espressione con selettore del colore, selettore delle scorciatoie e pulsante Elimina

La barra degli strumenti compare quando selezioni una forma Espressione. Offre:

Tipi di istruzione

Ogni riga di una forma Espressione viene letta come uno di questi tipi di istruzione:

Tipo Sintassi Esempio Descrizione
Parametro name = value g = 9.8 Un valore costante. Non dipende da altri termini né dalla variabile indipendente.
Funzione name = expression E = ½·m·v² Un valore calcolato che dipende da altri termini o dalla variabile indipendente.
Differenziale dx/dt = expression dx/dt = v Equazione differenziale ordinaria del primo ordine. Richiede un valore iniziale nelle proprietà della forma.
Ricorrenza x_{n} = expression x_{n} = x_{n-1} + v·Δt Definizione passo per passo. Il pedice determina lo scarto di passi.
Condizionale name = \begin{cases}...\end{cases} v = { 0 & t=0 \\ a·t & otherwise } Definizione a tratti. Servono almeno due rami.
Funzione con argomento f(t) = expression h(t) = v₀·t - ½·g·t² Notazione con argomento esplicito (solo estetica; si comporta come Funzione).
Visualizzazione expression F = ma Solo etichetta visiva. Il calcolatore non la calcola.

Operatori aritmetici

Operatore LaTeX Tasti Descrizione
Addizione++Somma di due espressioni
Sottrazione--Differenza di due espressioni
Moltiplicazione\cdot*Moltiplicazione esplicita (simbolo ·)
Moltiplicazione implicita2x2xCoefficiente seguito da un nome o da una parentesi
Divisione in linea//Notazione in linea a/b
Frazione\frac{a}{b}/ (in posizione di numeratore)Frazione verticale, in stile tipografico
Potenza^{n}^Elevamento a potenza
Fattorialex!!Fattoriale in notazione postfissa per interi non negativi
Radice quadrata\sqrt{x}\sqrtRadice quadrata
Opposto-x-Cambio di segno (meno unario)

Nota sul fattoriale: il fattoriale usa la notazione postfissa (n!) ed è pensato per valori interi non negativi.

Operatori di confronto

Si usano nei rami delle condizioni (\begin{cases}):

Operatore LaTeX Significato
==Uguale a
>>Maggiore di
<<Minore di
≥\ge o \geqMaggiore o uguale
≤\le o \leqMinore o uguale
≠\neqDiverso da

Le condizioni si possono concatenare (per esempio 0 < x < 1) o combinare con \lor (O) e \land (E). La parola chiave \text{otherwise} fa da ramo «altrimenti».

Funzioni predefinite

Categoria Funzione LaTeX Argomenti
GoniometricheSeno\sin\left(x\right)1
Coseno\cos\left(x\right)1
Tangente\tan\left(x\right)1
Cotangente\cot\left(x\right)1
Secante\sec\left(x\right)1
Cosecante\csc\left(x\right)1
Goniometriche inverseArcoseno\arcsin\left(x\right)1
Arcocoseno\arccos\left(x\right)1
Arcotangente\arctan\left(x\right)1
IperbolicheSeno iperbolico\sinh\left(x\right)1
Coseno iperbolico\cosh\left(x\right)1
Tangente iperbolica\tanh\left(x\right)1
LogaritmicheLogaritmo naturale\ln\left(x\right)1
Logaritmo in base 10\log\left(x\right)1
A due argomentiMassimo\max\left(a, b\right)2
Minimo\min\left(a, b\right)2
Modulo (resto)\mod\left(a, b\right)2
Di utilitàSegnosign\left(x\right)1 — restituisce -1, 0 o 1
Valore casualernd\left(x\right)1 — numero decimale casuale in [0, x]
Valore intero casualeirnd\left(x\right)1 — intero casuale in [0, x]
Parte interaint\left(x\right)1 — tronca all'intero
Arrotondamentoround\left(x\right)1 — arrotonda all'intero più vicino
AltroDeterminante\det\left(x\right)1
Tutte le chiamate di funzione usano i delimitatori \left( e \right). Le parentesi semplici non sono valide nelle chiamate di funzione. Il campo matematico le inserisce automaticamente.

Costanti

NomeLaTeXValore
Pi greco\pi3.14159…
Numero di Neperoe o \E2.71828…
g non è una costante predefinita. Definiscila come parametro: g = 9.8.

Sintassi speciale

Differenza finita (Δ)

SintassiSignificato
\Delta xx(attuale) − x(precedente). Per la variabile indipendente: l'ampiezza del passo.
\Delta\left(expr\right)Differenza finita applicata a una sottoespressione.

Pedici (riferimenti ai passi)

SintassiSignificato
x_{n-1}Valore di x nell'iterazione precedente
x_{n}Iterazione attuale (primo membro della ricorrenza)
x_0Valore iniziale di x (cifra semplice, senza graffe)
x_{0}Valore iniziale (forma con le graffe)

Termini indicizzati (riferimenti agli elementi)

Un termine può rappresentare molti valori insieme, per esempio gli oscillatori di un'onda, se lo definisci su un indice di elemento invece che sul tempo. L'indice è vincolato dall'assegnazione, quindi non diventa mai una variabile del modello:

y\left[i\right] = A\cdot\cos\left(k\cdot i - \omega\cdot t\right)
SintassiSignificato
y\left[i\right] = …Definisce y sugli indici degli elementi; il secondo membro viene valutato una volta per ogni elemento richiesto
y\left[3\right]L'elemento 3 di y
y\left[i\right]L'elemento i, dove i è un'espressione qualsiasi
s = y + zSovrapposizione: anche s è indicizzato, e si somma elemento per elemento

È un terzo spazio di indici, accanto ai due precedenti: y_3 legge y all'iterazione 3 e y\left(3\right) la legge per il valore 3 della variabile indipendente, mentre solo le parentesi quadre leggono un elemento. Un termine indicizzato non ha un valore singolo, quindi se ne leggono gli elementi invece di mostrarlo come un numero.

Un oggetto Oscilloscopio li legge: indica i termini indicizzati nella sua riga Onde e ciascuno viene disegnato sul suo reticolo, una traccia per riga. Due onde progressive sommate in questo modo, una con -\omega\cdot t e una con +\omega\cdot t, danno un'onda stazionaria con i nodi fissi. Un Pianoforte ne pubblica uno: l'accordo che sta tenendo, un elemento per campione.

Un oggetto Onda meccanica lavora invece a partire da un termine semplice. Indica nella sua riga Onda un termine che il modello calcola da sé, come y=A\cdot\sin\left(\omega\cdot t\right), e la catena ripete quello che quel termine ha fatto: a ogni iterazione il primo oscillatore riceve il valore che il termine ha appena assunto e passa avanti quello di prima, così la catena contiene gli ultimi valori dell'esecuzione, con il più vecchio in fondo, e il moto si propaga lungo di essa man mano che l'esecuzione procede. Contiene un valore per oscillatore, quindi Campioni indica anche quanto indietro arriva. Se scrivi un nome che il modello non definisce, l'oggetto fa il contrario: calcola la sua onda a partire da ampiezza, frequenza, velocità e fase e passa al modello, con quel nome, ciò che fa il suo oscillatore di riferimento. Il nome diventa un termine del modello (compare in tutti gli elenchi dei termini, come un nome a cui il modello assegna un valore), quindi puoi tracciarne il grafico in funzione del tempo, leggerlo in una definizione (z=2\cdot y) e sommarlo alla lettura di un altro oggetto (s=forward+back). Un nome che il modello definisce appartiene al modello: un'assegnazione, sul tempo o sugli indici degli elementi, viene letta e non sovrascritta; e un oggetto tolto dalla lavagna si porta via il suo termine.

Indicazione delle unità di misura

Aggiungi dopo qualsiasi istruzione delle unità di misura solo da mostrare:

v = 10 \quad\textcolor{gray}{\mathrm{m/s}}

Le unità sono solo estetiche: il motore non le controlla né le converte.

Nomi con il punto (riferimenti alle forme figlie)

Fai riferimento ai termini delle forme figlie dentro un Sistema di riferimento: body.x, particle.velocity.

Scorciatoie da tastiera

Il campo matematico MathLive supporta queste scorciatoie da tastiera per scrivere più in fretta:

AzioneScorciatoiaRisultato
Apri la tavolozza degli schemi ⌘. (macOS) · Ctrl+. (Windows/Linux) Scegli uno schema matematico dalla tavolozza compatta
Potenza (apice) ^ x^2
Pedice (indice) _ x_{t-1}
Opposto (meno unario) ~ -x
Fattoriale ! n!
Radice quadrata # \sqrt{x}
Delta % \Delta x
Valore assoluto | \left|x\right|
Diverso <> x \ne y
Maggiore o uguale >= x \ge 1
Minore o uguale <= x \le 1
Condizione (a tratti) \ \begin{cases} 1 & t=0 \\ y & t\ge2 \end{cases}
O ⌥v (macOS) · Alt+v (Windows) x>0 \lor x<5
E ⌥^ (macOS) · Alt+^ (Windows) x>0 \land x<5
Schema del differenziale ⌥/ (macOS) · Alt+/ (Windows) \frac{dx}{dt}
Arrotondamento per difetto ⌥_ (macOS) · Alt+_ (Windows) \lfloor x \rfloor
Arrotondamento per eccesso ⌘_ (solo macOS) \lceil x \rceil
Frazione ⌘/ (macOS) · Ctrl+/ (Windows) \frac{a}{b}
Punto di moltiplicazione * a \cdot b
Nuova riga (nuova istruzione) Enter —
Esci / spazio successivo Tab —

Selettore delle scorciatoie

Forma Espressione selezionata con la barra degli strumenti visibile

Mentre scrivi, premi ⌘. su macOS o Ctrl+. su Windows/Linux per aprire la tavolozza delle scorciatoie. Puoi aprirla anche con il pulsante della barra degli strumenti.

Notazione degli integrali

Puoi scrivere integrali con la notazione LaTeX, per esempio \int_{a}^{b} f\left(x\right)\,\mathrm{d}x. Per la parte intera, usa la funzione di utilità int\left(x\right).

Pannello delle proprietà

Pannello delle proprietà della forma Espressione

Quando è selezionata una forma Espressione, il pannello delle proprietà mostra:

ProprietàDescrizione
Variabile indipendenteLa variabile dell'iterazione (predefinita: t)
PassoL'incremento a ogni iterazione (Δt)
Inizio / FineIntervallo della variabile indipendente
Valori inizialiValori di partenza per le equazioni differenziali e le ricorrenze
ScenariPiù insiemi di valori iniziali per studiare l'effetto dei parametri

Esempi

Cinematica semplice

g = 9.8
v₀ = 20
θ = 45
vx = v₀·\cos\left(θ\right)
vy = v₀·\sin\left(θ\right) - g·t
\frac{dx}{dt} = vx
\frac{dy}{dt} = vy

Crescita di una popolazione (ricorrenza)

r = 0.05
P_{n} = P_{n-1}·\left(1 + r\right)

Velocità definita a tratti

v = \begin{cases} 0 & t = 0 \\ a·t & 0 < t < 5 \\ a·5 & \text{otherwise} \end{cases}