1 REM MASSIMO FUNZIONE
2 CLS
3 LOCATE 3,20:PRINT STRING$(55,177)
4 LOCATE 5,20:PRINT "RICERCA DEL MASSIMO "
5 LOCATE 7,20:PRINT STRING$(55,177)
6 LOCATE 10,20:PRINT "Assegnata f(x) e l'intervallo [A,B] si calcolano "
7 LOCATE 11,20:PRINT "i valori della funzione in 10 punti equidistanti "
8 LOCATE 12,20:PRINT "dell'intervallo ."
9 LOCATE 14,20:PRINT "Selezionato l'XM in cui si trova il valore maggiore,si ripete"
10 LOCATE 15,20:PRINT "il procedimento su un nuovo intervallo, pi piccolo"
11 LOCATE 16,20:PRINT "di centro XM, ... e cos via fino ad intervalli ampi <.001"
12 LOCATE 21,20:PRINT "La funzione,assegnata nella 100,pu essere cambiata. "
13 LOCATE 18,20:PRINT "Si stampa l'ultimo XM trovato e l'ultimo MAX, probabile "
14 LOCATE 19,20:PRINT "(!!...) approssimazione del massimo cercato."
15 A$="":B$=INKEY$:IF A$=B$ THEN 15
16 CLS
17 REM ***************** FINE DEL PROLOGO **************************************
100 DEF FNF(X) = X*X:LOCATE 3,10:PRINT "f(x) = x*x "
110 LOCATE 5,1:INPUT " [A,B] : A = ",A:LOCATE 5,30:INPUT " B = ",B
120 MAX = FNF(A)
130 XM=A
140 H=(B-A)/10
150 FOR I=1 TO 10 'si esplorano 10 punti equidistanti in [A,B]...
160 Z=FNF(A+I*H)
170 IF Z<MAX THEN 200 ' se il valore basso si passa oltre...
180 MAX=Z ' altrimenti si prende questo valore come ®massimo¯...
190 XM=A+I*H
200 NEXT I
210 PRINT "XM = ";XM;" MAX = ";MAX
220 IF H<.001 THEN 280
230 IF XM-H<A THEN 250
240 A=XM-H 'questo l'estremo sinistro del nuovo intervallino...
250 IF XM+H>B THEN 270
260 B=XM+H ' e questo l'estremo destro...
270 GOTO 120
280 LOCATE 20,5:PRINT " XM = ";XM;" MAX = ";MAX
289 GOSUB 1000
290 END
1000 LOCATE 23,1:PRINT "Premere un tasto, I per tornare all'indice "
1001 A$="":B$=INKEY$:IF A$=B$ THEN 1001
1002 IF B$="I" OR B$="i" THEN CHAIN"INDICE.BAS",1020
1003 RETURN
_______________________________________________________
RICERCA DEL MASSIMO
_______________________________________________________
Assegnata f(x) e l'intervallo [A,B] si calcolano
i valori della funzione in 10 punti equidistanti
dell'intervallo .
Selezionato l'XM in cui si trova il valore maggiore,si ripete
il procedimento su un nuovo intervallo, più piccolo
di centro XM, ... e così via fino ad intervalli ampi <.001
Si stampa l'ultimo XM trovato e l'ultimo MAX, probabile
(!!...) approssimazione del massimo cercato.
La funzione,assegnata nella 100,può essere cambiata.
f(x) = x*x
[A,B] : A = -2 B = 20
XM = 20 MAX = 400
XM = 20 MAX = 400
XM = 20 MAX = 400
XM = 20 MAX = 400
XM = 20 MAX = 400
XM = 20 MAX = 400
ritorna