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. L’editor mostra i numeri di riga e la sintassi colorata; le indicazioni sotto il campo aiutano a trovare parentesi e righe da correggere. Clicca un’indicazione per selezionare la riga.
- 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 iniziali. Il menu «Cifre significative» permette di mostrarne 6, 10 o 15: cambia la presentazione, non la precisione del motore. «Esporta CSV» conserva i valori originali e tutti i campioni delle serie temporali; usa la virgola tra i campi e il punto decimale. - Se cambi il programma compare «Programma modificato: ricalcola»: valori e grafici precedenti non descrivono le nuove equazioni. Il vecchio risultato non viene inviato all’assistente e non può essere esportato. Anche le modifiche effettuate durante un calcolo vengono rilevate.
- Annulla calcolo interrompe il calcolo locale e prepara un nuovo motore, conservando il testo. Il lavoro avviene in un worker per mantenere l’interfaccia utilizzabile; dopo 30 secondi un calcolo locale viene interrotto. Se il motore è indisponibile, resta necessaria la scelta esplicita per ogni invio al server.
- 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
Il riquadro «Calcolo non riuscito» mostra il motivo del solutore, anche quando la spiegazione proviene dal log. La mancata convergenza non dimostra che non esistano soluzioni: controlla dominio, numero di equazioni e stime iniziali. «Cerca altre soluzioni con l’assistente» apre una domanda già compilata: la richiesta AI parte soltanto quando premi Invia.
Quando il calcolo non converge
Se il solutore non arriva a una soluzione, sotto «Calcolo non riuscito» compaiono la causa probabile, un dato del fallimento (per esempio il residuo dopo le iterazioni) e un elenco di cosa provare. Le cause riconosciute sono:
- Nessuna soluzione reale trovata (una equazione in una incognita):
x^2+1=0non ne ha, perché il membro sinistro è sempre positivo. Se la soluzione deve esistere, cambia il valore iniziale o allarga l'intervallo conx = 1 range(-100, 100); con divisioni, riscrivi senza dividere (2*x = 1al posto di1/x = 2). - Fuori dominio: radice o logaritmo di un numero negativo. Parti da un valore dentro il dominio (
x = 1persqrt(x)elog(x)). - Il sistema non converge: o non ha soluzioni reali (
x^2+y^2=1conx+y=5), o il punto di partenza è lontano. Dai stime iniziali plausibili e diverse da zero, indica un intervallo conrange, oppure rendi costanti alcune incognite, risolvi il caso ridotto e riparti da quei valori. - Sistema mal condizionato: equazioni dipendenti (
x+y=2e2x+2y=4) o incognita che non compare in nessuna equazione. - Valori non finiti: divisioni per zero, logaritmi di zero, esponenziali enormi.
Sono indicazioni, non una prova: la mancata convergenza non dimostra che la soluzione non esista. Gli errori di sintassi e di conteggio tra equazioni e incognite hanno già un messaggio specifico e non hanno questo elenco.
Errori di scrittura più comuni
| 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
«Controllo delle unità» analizza le unità dichiarate in <iniz> e segnala dimensioni incompatibili e scale differenti. Riconosce unità SI, prefissi, bar, litri, ore e alcune unità derivate. I numeri letterali e i parametri fissi senza unità sono considerati adimensionali. Le equazioni con unità mancanti, tabelle o costrutti non riconosciuti possono restare non verificabili: il riepilogo indica la copertura. Gli avvisi non modificano e non bloccano il calcolo. Per x' = v dichiara anche l’unità di t; per gli integrali la dimensione della variabile locale deriva dagli estremi. La verifica resta indicativa e non certifica il modello fisico.
- MATH risolve uguaglianze: non ottimizza e non impone disuguaglianze come vincoli.
- Il motore non converte 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.