Ho creato un'espressione simbolica utilizzando il pacchetto SymPy (https://github.com/jverzani/SymPy.jl). Ora voglio trovare le radici di quell'espressione usando il pacchetto Roots (https://github.com/JuliaLang/Roots.jl). Tuttavia, non riesco a capire come utilizzare il metodo fzeros
per trovare le radici, poiché questo può essere applicato solo su un oggetto con il tipo Function
anziché su Sym
, che è il tipo della mia espressione.Julia: come posso convertire un'espressione simbolica in una funzione?
Ecco un esempio di ciò che sto cercando di fare. Creo un simbolico "x"
e un'espressione simbolica sin(x)
. Ora lascia cercare di trovare gli zeri di sin(x)
tra i valori -10 e 10:
using SymPy
x = sym"x"
expr = sin(x)
using Roots
fzeros(expr,-10,10)
Ecco l'errore:
ERROR: `fzeros` has no method matching fzeros(::Sym, ::Int64, ::Int64)
Come faccio a convertire un'espressione con Sym
tipo di Function
tipo, così ho puoi trovare le radici?
È nsolve esposto? – smichr
Grazie. Sì, ho dimenticato che, 'nsolve (expr, x0)' funzionerà per trovare un singolo zero. La funzione 'fzeros' nella domanda originale è un po 'di hack, che cerca di trovare tutti gli zeri semplici nell'intervallo specificato. Questo è più sulla falsariga di 'solve'. – jverzani