Metodo iterativo

Devo risolvere in modo iterativo una equazione.
Per esempio y = x/Y * (…)
quindi parto da un valore di x/y e ottengo y, a questo punto aggiorno x/y (conosco x) e rifaccio il calcolo.

Volevo chiedervi se conoscete il modo migliore per scrivere questa operazione con Xojo e come impostare il termine della iterazione (per esempio quando x/y non cambia più di 0.01)
Inoltre mi piacerebbe registrare in una TextArea il numero della iterazione, il valore x/y e il valore y, per esempio:
n. x/y y
1 0.5 1000
2 0.6 950
3 …

Grazie

dim oldY as double

do oldY=Y .... il tuo calcolo ....scrivi i valori (come nell'altro suggerimento) loop until abs(oldY-Y)<limite //Dove limite il valore al di sotto del quale vuoi interrompere

Per prima cosa la ringrazio per la risposta.
Ho fatto cos:

Do

If xsuy = … Then 'nel calcolo alcuni valori dipendono da xsuy)
w=##
z= ##
ElseIf xsuy=…
w=##
z=##
Else
w=##
z=##
End

oldxsuy = xsuy

y=funz(w,z,xsuy) 'l’equazione dipende da xsuy, w ez (che dipendono da xsuy)

'qui poi scrivo i risultati per xsuy e y

'poi aggiorno xsuy
xsuy = x/y

Loop Until abs(oldxsuy-xsuy) < 0.01 (cio mi fermo quando il rapporto x/y non cambia pi di 0.01)

Ho provato a lanciare il programma ma scrive solo la prima riga.
Se prendo per la y che ottengo dal calcolo e faccio x/y ottengo un valore che differisce di pi dello 0.01 di quello “old” usato nel primo calcolo.
Dove sto sbagliando?

Non so. Prova a scrivere nel campo di testo anche oldxsuy e xsuy e il valore assoluto della differenza, vedendo i risultati magari puoi capire cosa stai sbagliando

Partendo con un valore di xsuy di 0.50 e considerando un valore di x di 600 ottengo la sola riga:
oldxsuy xsuy abs(oldxsuy-xsuy) y
0.50 0.50 0.00 1082.96

ma il nuovo x/y sarebbe 600/1082.96=0.55 e dovrebbe quindi continuare il loop perch abs(0.55-0.50)>0.01

C’ un problema nell’aggiornare il valore di xsuy

Esatto

C’era un exit che non serviva, ora mi da una serie di righe ma non corrette:
il secondo x/y viene 0.55 come previsto ma ottengo poi un valore di y che differisce da quello che ottengo facendo poi manualmente il conto con x/y di 0.55. Adesso il problema legato al calcolo, ma non capisco il problema.
No corretto, subito prima del Loop Until, mettere xsuy =x/y? Poi c’ la verifica del modulo della differenza. Se non inferiore a 0.01 rif il Loop da Do quindi l’xsuy ottenuto alla fine diventa oldxsuy e ho altri valori nel calcolo.

Nel “Do…Until Loop” scrivere xsuy =x/y subito prima dell’Until finale e oldxsuy subito dopo il Do fa in modo che si aggiorni il valore dell’xsuy per ogni calcolo (loop) e lo renda quindi “old” nel calcolo successivo? o devo scriverlo in altro modo o in altra posizione?