Polinomiale inversa

Il forum di Base5, dove è possibile postare problemi, quiz, indovinelli, rompicapo, enigmi e quant'altro riguardi la matematica ricreativa e oltre.

Moderatori: Gianfranco, Bruno

Rispondi
franco
Livello 7
Livello 7
Messaggi: 906
Iscritto il: mar dic 12, 2006 12:57 pm
Località: Bèrghem (Sardegna)

Polinomiale inversa

Messaggio da franco » dom mag 22, 2016 8:36 pm

Ciao a tutti.

Sul lavoro mi trovo un problema che vorrei risolvere.

Ho due grandezze (X e Y) legate da questa formula:

Y = aX + bX^2 + cX^3 + dX^4 + eX^5

Tutto facile quando è noto X e devo trovare Y, molto meno se conosco Y e devo trovare X.

Ci arrivo per approssimazioni successive con una semplice routine in basic ma mi piacerebbe poter dare una formula ai colleghi.

Mi date una mano?


Ciao
Franco

ENGINEER
noun. (en-juh-neer)
someone who does precision guesswork based on unreliable data provided by those of questionable knowledge.
See also wizard, magician

panurgo
Livello 8
Livello 8
Messaggi: 1155
Iscritto il: sab nov 19, 2005 3:45 pm
Località: Padova

Re: Polinomiale inversa

Messaggio da panurgo » lun mag 23, 2016 6:09 pm

Se $Y$ è noto possiamo indicarlo come $Y=-f$ quindi quella che tu vuoi è la formula risolutiva (generale) dell'equazione

$a X + b X^2 + c X^3 + d X^4 + e X^5 + f = 0$

Confesso che va al di là delle mie capacità... :cry:
il panurgo

Principio di Relatività: {\bb m} \not \right {\bb M} \ \Longleftrightarrow \ {\bb M} \not \right {\bb m}
"Se la montagna non va a Maometto, Maometto NON va alla montagna"

Gianfranco
Supervisore del sito
Supervisore del sito
Messaggi: 926
Iscritto il: ven mag 20, 2005 8:51 pm
Località: Sestri Levante
Contatta:

Re: Polinomiale inversa

Messaggio da Gianfranco » lun mag 23, 2016 8:40 pm

Risposta banale: se ti servono soltanto le soluzioni numeriche puoi usare i classici metodi per trovare gli zeri di una funzione o più semplicemente dare l'equazione in pasto a un software di calcolo algebrico, tipo Maxima.
Pace e bene a tutti.
Gianfranco

Info
Livello 5
Livello 5
Messaggi: 321
Iscritto il: lun nov 21, 2005 1:11 pm
Contatta:

Re: Polinomiale inversa

Messaggio da Info » lun mag 23, 2016 11:05 pm

puoi usare il metodo di Newton Rhapson.... mi ricordo l'avevo fatto a scuola

parti da una soluzione plausibile della tua polinomiale cosi` puoi avvicinarti velocemente :-)
per quello non hai problemi a fare la derivata di una polinomiale e il metodo converge velocemente verso la soluzione.

Non ci sono soluzioni precise a meno di non trovare delle soluzioni o tue o con il metodo specificato e ridurre di grado la polinomiale dividendo per l' (x+n) dove n e`la soluzione, fino ad arrivare ad un secondo grado del quale utilizzi la formula quadratica classica

x_{1/2}=\frac{-b\pm\sqr{b^2-4\cdot a\cdot c}}{2\cdot a}

dove le lettere alfabetiche sono i coefficenti della tua equazione cosi`trovata
Fai sorridere il tuo HD diventando opensource oriented, scopri come

franco
Livello 7
Livello 7
Messaggi: 906
Iscritto il: mar dic 12, 2006 12:57 pm
Località: Bèrghem (Sardegna)

Re: Polinomiale inversa

Messaggio da franco » mer mag 25, 2016 7:47 am

Info ha scritto:puoi usare il metodo di Newton Rhapson.... mi ricordo l'avevo fatto a scuola
...
Grazie mille.

Non conoscevo questo metodo, estremamente elegante e facilissimo da applicare su una funzione polinomiale dove il calcolo della derivata è banale.
Ho realizzato una macro per automatizzarlo (la soluzione precisa al terzo decimale arriva in una frazione di secondo) e guadagnato un sacco di "like" dai colleghi :D
In più, ho avuto anche l'opportunità di rinfrescare la memoria sul visual basic con l'applicazione di un ciclo "DO WHILE - LOOP".


ciao
Franco

ENGINEER
noun. (en-juh-neer)
someone who does precision guesswork based on unreliable data provided by those of questionable knowledge.
See also wizard, magician

Pasquale
Livello 11
Livello 11
Messaggi: 2307
Iscritto il: mer mag 25, 2005 1:14 am

Re: Polinomiale inversa

Messaggio da Pasquale » mar mag 31, 2016 6:25 pm

per gli appassionati del Decimal Basic, esempio di un migliorabile algoritmo di calcolo con approssimazione alla 5^cifra decimale, che mostra una serie di valori per la x, i quali determinano per f(x) valori sempre più vicini a quello già noto della y:

!'Predisporre per la doppia precisione
!'Come esempi, inserire i seguenti valori, separati da virgole:
!' 1,-15,95,-225,274,220 oppure: 1,-15,95,-225,274,390 oppure: 1,2,3,4,5,6
!'attendere un po' di secondi dopo il primo stop, per un risultato leggermente tardivo, ma approssimato alla 5^ cifra decimale

INPUT PROMPT "inserisci i valori di e,d,c,b,a,y -->":e,d,c,b,a,y
PRINT
LET difmin=1/100000
LET mi=y*1000
LET p=0
LET q=y
LET i=y/10000

LET es=0
do
LET es=es+1
FOR x= p TO q step i
LET fx= e*x^5+d*x^4+c*x^3+b*x^2+a*x
LET dif=ABS(fx-y)
IF dif<mi THEN
LET mi=dif
LET m=x
PRINT "x =";m;" fx =";INT(fx*100000)/100000
ELSEIF dif=0 THEN
GOTO 50
end if
next X

if (y-m)<m then
LET p=2*m-y
LET q=y
else
LET p=0
LET q=2*m
end if
LET i=(q-p)/10^es
loop while dif > difmin

50
print
Print "x =";m
print "verifica: fx =";fx

END
_________________

\text {     }ciao Immagine ciao
E' la somma che fa il totale (Totò)

Rispondi