[Mathematica] Grafico animato
Ho bisogno di studiare una famiglia di polinomi con Mathematica.
Considero la funzione $y=x^2+ax+b$ al variare dei parametri reali $a$ e $b$.
Devo rappresentare in un grafico nel piano ab il luogo dei punti in cui il determinante si annulla, ovvero $a^2-4b=0$. Nello stesso grafico devo porre un Locator, che permetta di variare i parametri a e b.
Al variare dei parametri devo rappresentare un secondo grafico nel piano complesso: le due radici complesse del polinomio che avente i parametri descritti dal Locator.
Come posso fare?
Considero la funzione $y=x^2+ax+b$ al variare dei parametri reali $a$ e $b$.
Devo rappresentare in un grafico nel piano ab il luogo dei punti in cui il determinante si annulla, ovvero $a^2-4b=0$. Nello stesso grafico devo porre un Locator, che permetta di variare i parametri a e b.
Al variare dei parametri devo rappresentare un secondo grafico nel piano complesso: le due radici complesse del polinomio che avente i parametri descritti dal Locator.
Come posso fare?
Risposte
Una funzione unica non credo, però basta usare Re ed Im come nell'esempio precedente.
val = {Re[z], Im[z]}
Grazie ancora. Un'ultima cosa. Esiste una funzione che dato un numero complesso restituisce una coppia di valori che sono relativamente la parte reale e quella immaginaria?
Prova con questo esempio, modificandolo un po' dovresti riuscire a fare quello che ti serve
DynamicModule serve per creare l'interfaccia dinamica. Il resto sono due grafici su cui sono posizionati dei locator e una lista che contiene i valori espliciti della loro posizione. Muovendo uno dei due l'altro si muove di conseguenza, inoltre vengono scritte nella lista le coordinate. Per accedere e passare i valori del locator devi usare Dynamic
DynamicModule[{p = {0.5, 0.5}}, { Show[{ Plot[Sin[x], {x, 0, 1}], Graphics[Locator[Dynamic[p]]] }], Show[{ Plot[Sin[x], {x, 0, 1}], Graphics[Locator[Dynamic[p]]] }], Dynamic[p] }]
DynamicModule serve per creare l'interfaccia dinamica. Il resto sono due grafici su cui sono posizionati dei locator e una lista che contiene i valori espliciti della loro posizione. Muovendo uno dei due l'altro si muove di conseguenza, inoltre vengono scritte nella lista le coordinate. Per accedere e passare i valori del locator devi usare Dynamic
.
Il problema principale è proprio come prendere i valori del locator del primo grafico in modo che muovendo il locator anche le radici vengano aggiornate dinamicamente.
Per cosa ti serve aiuto esattamente?
Per la prima parte ti basta fare il grafico della parabola e mettere il Locator.
Per selezionare il punto ti conviene guardare il secondo esempio nella pagina dell'help del Locator.
Per la seconda, una volta ottenuti i valori di a e b, puoi fare una cosa del genere
dove ovviamente al posto di a e b vanno i valori selezionati dal grafico.
Per la prima parte ti basta fare il grafico della parabola e mettere il Locator.
Per selezionare il punto ti conviene guardare il secondo esempio nella pagina dell'help del Locator.
Per la seconda, una volta ottenuti i valori di a e b, puoi fare una cosa del genere
root = x /. Solve[x^2 + a x + b == 0, x] /. {a -> 3, b -> 6} ListPlot[{ {Re[root[[1]]], Im[root[[1]]]}, {Re[root[[2]]], Im[root[[2]]]} }, PlotMarkers -> {Automatic, Large}]
dove ovviamente al posto di a e b vanno i valori selezionati dal grafico.