Guida alla calcolatrice
Come scrivere equazioni, sistemi, integrali ed equazioni differenziali, con esempi che puoi provare con un clic.
La calcolatrice risolve ciò che le scrivi: equazioni e sistemi non lineari, integrali definiti ed equazioni differenziali con condizioni iniziali. Normalmente gira nel tuo browser: il testo resta sul dispositivo. Se il motore locale non è disponibile, compare una richiesta: solo scegliendo «Calcola sul server» invii il programma a MATH, per quel singolo calcolo. Con «Annulla» non viene inviato. Il calcolo sul server non usa servizi di intelligenza artificiale e il programma non viene conservato. La sintassi è simile alla matematica scritta a mano, ma non è Python: le differenze principali sono in evidenza.
- 1. Come si usa
- 2. Equazioni e sistemi
- 3. Valori iniziali, parametri e intervalli
- 4. Confronti e logica
- 5. Tabelle
- 6. Integrali
- 7. Equazioni differenziali
- 8. Il grafico
- 9. Unità di misura
- 10. L'assistente
- 11. Errori frequenti
- 12. Limiti e cosa fare dopo
1. Come si usa
- Scrivi nel campo Equazione o sistema, una equazione per riga.
- Premi Calcola o Ctrl+Invio. Il tasto Tab inserisce quattro spazi.
- Il risultato compare nel pannello Risultati, accanto al programma sulle finestre larghe e sotto sulle finestre strette, come
nome = valoreper ogni variabile, con sei cifre significative. - Log computazionale mostra i passaggi del solutore (le iterazioni e i residui): utile per capire se e come ha convergiuto.
- Apri Messaggi del calcolo per consultare il registro; Pulisci messaggi svuota soltanto quel registro, conservando programma e risultato. Il menu Esempi… apre modelli completi, con descrizione e risultato atteso: razzo verticale, integrale gaussiano, equazione con 7 soluzioni, sistema 4×4, predatore-preda, perdite in un tubo (Colebrook), periodo del pendolo, svuotamento di un serbatoio, punto di lavoro di una pompa e circuito RC. «Carica nel form» lo copia nel campo.
- Il pulsante Grafico compare dopo un calcolo con una sola variabile, o dopo una equazione differenziale (vedi il paragrafo 8).
- Il pulsante Assistente, nella riga dei comandi, apre una chat che scrive un programma da una descrizione, spiega gli errori e cerca tutte le soluzioni di un sistema provando molte stime iniziali. Vede il programma nel campo e l'ultimo risultato. Ogni numero che riporta viene dal motore, e non scrive mai nel campo da sola: propone un programma e tu scegli Carica nel form o Carica ed esegui. Ha un limite di messaggi al giorno (più basso nella demo). Vedi il paragrafo 9.
Se incolli testo da una pagina web, un PDF o Word, i simboli tipografici più comuni (−, ′, ×, ÷, ≤, ≥, ≠) vengono convertiti da soli nei corrispondenti ASCII. Lettere accentate, √, ² o emoji nelle equazioni sono invece un errore.
2. Equazioni e sistemi
Ogni riga è una equazione nella forma sinistra = destra. Servono tante equazioni quante incognite. Una equazione in una incognita:
3*x + 2 = 11
Un sistema lineare di due equazioni in due incognite:
x + y = 10
x - y = 2
Un sistema non lineare. Qui sono date delle stime iniziali per x e y (vedi il paragrafo 3): senza, il solutore parte da punti casuali:
<iniz>
x = 3
y = 2
</iniz>
x^2 + y^2 = 25
x - y = 1
Operatori, funzioni, numeri
- Operatori
+ - * /e^per la potenza (associativa a destra:2^3^2vale 512), con le parentesi. - Esponente negativo tra parentesi:
2^(-1), non2^-1. - Moltiplicazione implicita solo senza spazio:
3xe2(x+1)vanno bene,3 xno. - Funzioni:
sin cos tan asin acos atan atan2(y,x) sinh cosh tanh exp sqrt log log10 pow(a,b) abs.logelnsono il logaritmo naturale;log10quello in base 10.asineacosaccettano solo argomenti tra −1 e 1 (fuori è un errore di dominio, e vicino a ±1 la convergenza può peggiorare).atan2(y, x)dà l'angolo del punto (x, y) tra −π e π, col quadrante giusto. Non sono disponibiliasinh,acosheatanh. - Numeri con il punto decimale (
1.5, non1,5), anche con esponente:0.001,1e-3,2.5E+6. - Nomi di variabili: lettera iniziale, poi lettere, cifre o
_, al massimo 64 caratteri. - Radici e logaritmi di numeri negativi sono errori di dominio: il solutore riprova da altri punti, ma deve esistere una soluzione reale.
a = 2^(-1) + sqrt(16) + abs(-3)
b = 2.5e-3 * 4
c = pow(2, 10) + log10(1000)
Funzioni inverse e iperboliche, e l'angolo di un punto con atan2(y, x):
p = asin(0.5)
q = acos(0.5)
r = atan2(1, -1)
s = tanh(0.5)
u = sinh(1)
3. Valori iniziali, parametri e intervalli
Il blocco <iniz> … </iniz> si scrive all'inizio e contiene una riga nome = valore per ogni variabile che vuoi inizializzare:
- Senza altro, il valore è una stima di partenza: il solutore parte da lì e itera. Se le soluzioni sono più d'una, la stima decide quale viene trovata.
- Con
const, il valore è fisso: è un parametro, non una incognita, e non conta nel numero di equazioni necessarie. - Con
range(min, max), la variabile ha un intervallo: il solutore ne estrae i punti di partenza casuali quando deve ripartire, e il grafico lo usa come asse x. Non è un vincolo sulla soluzione. Gli estremi devono essere numeri (non espressioni), separati da virgola.
Un parametro fisso, usato in una equazione:
<iniz>
p = 5 const
</iniz>
q = p * 2
Più soluzioni. L'equazione x^2 = 4 ha due soluzioni, 2 e −2. La stima iniziale decide quale arriva:
<iniz>
x = 1
</iniz>
x^2 = 4
<iniz>
x = -1
</iniz>
x^2 = 4
Per le altre soluzioni di una equazione o di un sistema basta cambiare la stima. Il solutore trova una soluzione per volta e non garantisce di trovarle tutte; la stima giusta non è sempre quella più vicina. Il menu Esempi… contiene due modelli con una tabella dei valori iniziali che portano a ciascuna soluzione (l'equazione con sette soluzioni e il sistema 4×4).
L'intervallo range serve anche al grafico (vedi il paragrafo 8):
<iniz>
x = 1 range(-6, 6)
</iniz>
x^2 - 4 = 0
4. Confronti e logica
I confronti < > <= >= == != valgono 1 se veri e 0 se falsi, quindi si possono moltiplicare per un valore: 100*(t>=5) vale 100 per t>=5 e 0 prima. È il modo di scrivere un gradino o un interruttore.
- Gli operatori logici sono
and,orenot, scritti in maiuscolo o in minuscolo (AND,and,And), e valgono 0 o 1. Con più condizioni usa le parentesi:(a<b) and (c>d). Sono riconosciuti come parola intera:order,androidonoterestano nomi di variabili. - Il segno
=isolato separa i due membri dell'equazione, e ce n'è uno solo per riga.==confronta. !da solo non è la negazione: usaNOT; per «diverso» usa!=.==è un confronto esatto tra numeri in virgola mobile: va bene per valori interi o scelti, non per risultati di calcoli.
x = 100*(7>=5) + 7*(7<5)
y = (3>2) and (2>1)
z = not (4==5)
w = (1>2) OR (2>1)
5. Tabelle
Una tabella è una curva y(x) data per punti, che il motore interpola linearmente (e estrapola oltre gli estremi) e che usi come una funzione: p(x). Serve per proprietà o curve misurate che non hanno una formula, come la curva di una pompa o di una valvola.
<tabella ident="p">
<dato x="0" y="0"/>
<dato x="2" y="4"/>
</tabella>
x = p(1)
y = p(3)
- Il nome della tabella (
ident) segue le regole dei nomi e non può coincidere con una funzione o con una variabile. - I punti si scrivono uno per riga,
<dato x="0" y="0"/>, oppure in forma compatta con<dati>: una riga di valori di x, una di valori di y, separati da virgola. - Nei tag delle tabelle i numeri sono solo decimali, senza esponente (
"1000", non"1e3"). Sono ammessi solo gli attributi indicati: qualunque altro tag o attributo viene rifiutato.
<tabella ident="cp">
<dati>
0, 100
1.0, 1.2
</dati>
</tabella>
q = cp(50)
L'argomento può essere una incognita: qui si cerca il punto in cui la curva vale 3.
<iniz>
x = 1
</iniz>
<tabella ident="p">
<dato x="0" y="0"/>
<dato x="2" y="4"/>
</tabella>
p(x) = 3
Una matrice è una famiglia di curve per diversi valori di un parametro p, con <curva valore="…">, e si usa come M(p, x): il motore interpola in x e in p.
<tabella ident="M">
<curva valore="0"><dato x="0" y="0"/><dato x="2" y="2"/></curva>
<curva valore="10"><dato x="0" y="10"/><dato x="2" y="12"/></curva>
</tabella>
x = M(5, 1)
Le tabelle sono supportate nei sistemi algebrici, non nei programmi differenziali.
6. Integrali
La sintassi è integral(espressione, variabile, minimo, massimo). Il risultato è numerico.
I = integral(x, x, 0, 20)
I = integral(sin(x), x, 0, 3.141592653589793)
- La variabile di integrazione è locale all'espressione: non crea una incognita e non cambia una variabile esterna con lo stesso nome.
- Gli estremi sono espressioni e devono essere finiti. Se li inverti, cambia il segno; se coincidono, il risultato è zero.
- Un integrale può contenere incognite: così si risolve una equazione del tipo «quanto deve valere
aperché l'integrale faccia 6».
<iniz>
a = 1
</iniz>
integral(a*x, x, 0, 2) = 6
Un estremo può essere una variabile del sistema, e gli integrali si possono annidare:
b = 3
A = integral(x^2, x, 0, b)
I = integral(integral(x+y, y, 0, x), x, 0, 2)
7. Equazioni differenziali
Un sistema di equazioni differenziali ordinarie con condizioni iniziali si scrive con la derivata nel tempo. Le due notazioni sono equivalenti:
y' = f(t, y)(un solo apice; spazi ammessi prima dell'apice);der(y) = f(t, y).
y' significa dy/dt: come cambia la variabile y nel tempo. t è il tempo, riservato. Non è una funzione per derivare simbolicamente un'espressione: der(x^2) non ha senso qui.
- Ogni stato (variabile con la derivata) deve avere in
<iniz>il suo valore iniziale a t = 0, che qui è imposto, non una stima. - I parametri vanno dichiarati con
const. campo_finale = 10in<iniz>imposta il tempo finale (predefinito 10, deve essere maggiore di 0).
Decadimento y' = −k·y. La riga x = y è una equazione algebrica, che viene calcolata a ogni istante:
<iniz>
k = 0.3 const
y = 10
campo_finale = 10
</iniz>
y' = -k*y
x = y
La derivata può dipendere dal tempo. Qui y' = −y·t, la cui soluzione è exp(−t²/2):
<iniz>
y = 1
campo_finale = 2
</iniz>
y' = -y*t
Secondo ordine e sistemi
Non esiste y'': un'equazione di secondo ordine si scrive come due stati di primo ordine. L'oscillatore armonico x'' = −x diventa x' = v, v' = −x, con v la velocità. Qui un periodo intero, da 0 a 2π, che riporta a x = 1 e v = 0:
<iniz>
x = 1
v = 0
campo_finale = 6.283185307179586
</iniz>
x' = v
v' = -x
Le derivate leggono tutti gli stati allo stesso istante, quindi puoi scrivere sistemi accoppiati e non lineari, come il modello predatore-preda negli Esempi.
Equazioni algebriche insieme alle differenziali
Alle derivate puoi affiancare equazioni algebriche che dipendono dagli stati e dal tempo. Le incognite algebriche non hanno bisogno di valore iniziale; una stima in <iniz> aiuta a scegliere la soluzione quando ce n'è più d'una (qui x = −3 porta alla radice negativa):
<iniz>
k = 0.3 const
y = 10
x = -3
</iniz>
y' = -k*y
x^2 = y
range sugli stati; vincoli sugli stati; le variabili algebriche nelle derivate (feedback algebrico); derivate implicite o parziali; eventi; integrazione all'indietro. Il metodo (Dormand-Prince 5(4), a passo adattativo) è pensato per sistemi non rigidi. La tolleranza controlla l'errore locale di ogni passo, non l'errore globale: su tempi lunghi lo scarto può crescere. Le tolleranze si cambiano solo dall'API. Valori molto piccoli (sotto 1e-9) non sono accurati nelle cifre relative.8. Il grafico
Equazione in una variabile
Dopo il calcolo di una equazione con una sola variabile compare Grafico: disegna f(x) = sinistra − destra per x in un intervallo; le radici sono dove la curva attraversa lo zero, e il punto rosso è la soluzione trovata.
- L'intervallo iniziale è attorno alla soluzione; se hai scritto un
range(min, max)in<iniz>, parte da quello. - Cambia i valori nelle caselle da … a … e premi Ridisegna: la curva viene ricalcolata sull'intervallo scelto.
- Se un punto dell'intervallo è fuori dal dominio della funzione (per esempio
log(x)con x negativo), il grafico non è disponibile: restringi l'intervallo.
Equazione differenziale
Dopo una equazione differenziale, Grafico disegna le serie nel tempo:
- Ogni variabile ha la propria scala verticale: la prima sull'asse sinistro, la seconda sul destro, e la legenda riporta l'intervallo di ciascuna. Così una quota e una velocità si leggono insieme anche se differiscono di ordini di grandezza.
- Le caselle colorate mostrano o nascondono le singole curve; Scala comune le riporta tutte su un asse solo.
- Piano delle fasi (con almeno due variabili): una variabile contro un'altra, per esempio la velocità contro la posizione. Per l'oscillatore è una circonferenza.
9. Unità di misura
Puoi scrivere l'unità di una variabile tra parentesi quadre, in <iniz>, in fondo alla riga: h = 2 [m], k = 0.3 const [1/s]. Una riga con solo l'etichetta, come t [s], dichiara l'unità del tempo.
- Le unità sono etichette: compaiono accanto ai risultati e nei grafici (assi e legenda), ma il motore non le controlla e non converte. Se mescoli bar e Pa, i numeri restano quelli che hai scritto.
- Una sola unità per variabile; al massimo 32 caratteri; sono ammessi simboli come
°C,m³/h,Ω,µm. Non sono ammessi[ ] = , ; < > &. - Per essere sicuro dei risultati usa unità coerenti (per esempio tutto in SI) e converti i dati prima di scriverli.
Caduta di un grave, con le unità dichiarate; il risultato mostra h = 0.38 m (20 − ½·9,81·2²), v = −19.62 m/s e Risultato a t = 2 s:
<iniz>
h = 20 [m]
v = 0 [m/s]
t [s]
g = 9.81 const [m/s^2]
campo_finale = 2
</iniz>
h' = v
v' = -g
Nell'editor di processo le unità dei terminali sono controllate quando colleghi due componenti: se una linea unisce due terminali che dichiarano la stessa variabile con unità diverse (per esempio bar e Pa), compare un avviso, non bloccante.
10. L'assistente
L'assistente è una chat dentro la calcolatrice che sa la sintassi del motore e lo usa come strumento. Apri la calcolatrice con l'assistente
Dove si trova
Nella pagina della calcolatrice, il pulsante Assistente è nella riga dei comandi, accanto a Calcola, Pulisci ed Esempi…. Un clic apre il pannello. Il link qui sopra apre la calcolatrice con il pannello già aperto. È disponibile anche nella demo.
Cosa sa fare
- Scrivere un programma da una descrizione: «scrivi il programma per un oscillatore armonico con x(0)=1 e velocità iniziale 0, per 6.28 unità di tempo».
- Spiegare un errore: con il programma nel campo, «perché mi dà errore?». Vede il programma e l'ultimo risultato, e propone la versione corretta.
- Cercare tutte le soluzioni di un'equazione o di un sistema: «trova tutte le soluzioni di x^3/10 − 2x + 3 sin(2x) = 1». Prova molte stime iniziali e riporta le soluzioni distinte, dicendo da quali stime si arriva a ciascuna.
- Rispondere su come si scrive qualcosa: «come scrivo un'equazione differenziale del secondo ordine?», «quanto fa asin(0.5) in gradi?».
Come lavora
- Ogni numero viene dal motore, mai dal modello: l'assistente esegue il programma e ti riporta il risultato.
- Non scrive mai nel campo da sola. Propone un programma già eseguito con successo e sotto il messaggio compare una scheda con Carica nel form (lo copia nel campo) e Carica ed esegui (lo copia, lo esegue nel tuo browser e mostra i risultati e il Grafico come sempre).
- La conversazione resta nella pagina finché non la chiudi o premi «Nuova conversazione», in alto nel pannello. Invio invia, Maiusc+Invio va a capo, Esc chiude il pannello.
Limiti
- Non garantisce di aver trovato tutte le soluzioni: l'elenco dipende dalle stime provate, e un'equazione può averne altre in zone strette.
- Può sbagliare nel modello fisico del tuo problema: i numeri sono del motore, la verifica del modello è tua. Non ha proprietà fisiche di fluidi o materiali e non conosce unità di misura.
- Risponde solo su equazioni, matematica applicata e uso della calcolatrice.
- Ha un limite di messaggi al giorno, più basso nella demo (pochi messaggi per demo). Se lo raggiungi, il pannello te lo dice.
11. Errori frequenti
| Sbagliato | Giusto |
|---|---|
x = 1,5 | x = 1.5 (punto decimale) |
2^-1 | 2^(-1) |
3 x | 3x oppure 3*x |
!x | NOT x (negazione) o x != 3 (diverso) |
asin(2), acos(-1.5) | errore di dominio: l'argomento deve stare tra −1 e 1 |
asinh(x), acosh(x), atanh(x) | non disponibili |
due = in una riga, come x = y = 2 | una equazione per riga: x = 2 e y = 2 |
y'' = −y | due stati: y' = v e v' = −y |
| stato differenziale senza valore iniziale | aggiungi y = 1 in <iniz> |
parametro senza const in un programma differenziale | k = 0.3 const |
| più incognite che equazioni (o viceversa) | serve una equazione per ogni incognita: dai un valore fisso con const alle altre |
| tag o attributi extra nelle tabelle | solo <dato x y/>, <dati> e <curva valore> |
12. Limiti e cosa fare dopo
- MATH risolve uguaglianze: non ottimizza e non impone disuguaglianze come vincoli.
- Non controlla le unità di misura e non include proprietà fisiche di fluidi o materiali: i numeri sono usati come scritti.
- Un programma può avere al più 20000 caratteri; un programma differenziale al più 128 stati.
- Non verifica il tuo modello: dimostra che il motore risolve bene le equazioni che gli dai, non che descrivano il tuo problema. Vedi Verifica dei risultati per i casi noti su cui il motore è confrontato, che puoi rieseguire nel tuo browser.
Per modelli più grandi, con componenti collegati da linee, usa l'applicazione completa (Componenti, Tabelle e Processo). Il motore può anche essere interrogato da un assistente AI collegato via MCP, che prova diversi valori iniziali e riporta le soluzioni trovate.