In sostanza, data una funzione che produce uscite come questo per diversi parametri:trovando rapidamente il primo punto in cui una funzione è uguale a 0 utilizzando scipy.optimize
voglio trovare rapidamente il primo a x che la funzione è uguale a 0. Quindi con i parametri che producono la curva blu su x, voglio trovare x = 134. Per la curva verde, voglio trovare x = 56, etc.
ho pensare la funzione sarà sempre monotonicamente decrescente fino a raggiungere lo zero, ma non ne sono del tutto sicuro.
La funzione non è necessariamente monotonicamente decrescente.
I am sicuro che verrà colpito solo 0 una volta e quindi rimarrà zero.
Attualmente sono bruto-forzandolo iterando attraverso i valori x fino a quando non raggiungo lo zero, ma voglio qualcosa che sia migliore nel fare ipotesi plausibili (basate sulla pendenza?) E iterare.
Idealmente, voglio usare qualcosa già cotto (since 90% of programmers can't even write a binary search correctly), come qualcosa da scipy.optimize, ma sembra che tutti vogliano trovare un minimo globale o uno zero-crossing.
(Questa funzione è una sorta di distanza_della parete del cubo RGB per un dato croma nello spazio di colore Lch (quindi fondamentalmente la costruzione di una funzione "sanely clip to RGB"), ma poiché la mappatura tra IRGB e LCh può variare in base alla libreria e con parametri come illuminante, ecc. Penso che sia meglio provare solo alcuni valori fino a trovare quello giusto invece di provare a calcolare il valore direttamente?)
È la funzione integer-ranged (o simile discreto)? Altrimenti, come si può iterare attraverso i valori x? – abarnert
Inoltre, se si dispone di un algoritmo minimo globale e non si riesce a trovare un algoritmo a passaggio zero ... si può sempre usare 'global_minimum (lambda x: abs (foo (x)))'. (Non sto dicendo che sia la soluzione giusta, ovviamente.) – abarnert
Non credo che le equazioni siano tali da poterle semplicemente risolvere usando il calcolo. In altre parole, è necessario utilizzare metodi numerici per approssimare? – vossad01