2011-08-23 7 views
5

In Mathematica, chiamando Solve, restituisce una lista di regole, per esempio,Mathematica: Estrarre valore numerico quando si usa Risolvi

In[1]:= g = Solve[(x - 1) (x - 2) == 0, x] 
Out[1]= {{x -> 1}, {x -> 2}} 

Come posso estrarre i valori numerici o 12 da g?

Ho provato a utilizzare Part ad esempio g[[1]] ma restituisce {x -> 1} e non 1.

Si prega di avvisare.

+0

possibile duplicato di [Come creare una funzione direttamente dall'uscita del Solve] (http://stackoverflow.com/questions/5319771/how-to-create- a-function-direttamente dall'output-of-solve) –

risposta

9
x /. g[[1]] 

Filler -> Trenta char del minimo

+0

C'è un modo per farlo senza usare una variabile dove mettere i risultati della risoluzione? Ho provato 'x ./ Risolvi [(x - 1) (x - 2) == 0, x]' ma non è riuscito ... – Andry

+0

@Andry 'x /. Risolvi [(x - 1) (x - 2) == 0, x] '... hai la barra e il punto invertito –

+1

@Andry leggi questo http://mathematica.stackexchange.com/a/18706/193 e tutte le altre risposte lì, se possibile –

10

Per completare la risposta Belisario,

x /. g 

con g = {{x -> 1}, {x -> 2}}, restituisce la lista

{1, 2} 

Quindi, per estrarre il primo valore, 1, potremmo usare

First[x /. g] 

Altre alternative sono

x /. g[[1]] 
(x /. g)[[1]] (* this is equivalent to the version using First *) 
g[[1,1,2]] 
Problemi correlati