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