Sia f: x → sin(10x) + cos(3x). Trovare, usando opportunamente R o altro software, senza calcolare derivate, il valore massimo di f e i valori in cui f assume tale valore.

Per l'uso di R, vedi.

source("http://macosa.dima.unige.it/r.R")
f = function(x) sin(10*x)+cos(3*x)
BF=5; HF=2.5
graph2F( f, -1,13, "brown")
   
## e' evidente che il periodo e' 6.28… = 2*pi; verifica grafica:
graph2( f, 0,2*pi, "blue"); coldash="yellow"; graph2( f, 0,2*pi, 0)
   
## e numerica:
f(3); f(3+2*pi)
# -1.899162  -1.899162
#
## Capisco che il massimo e' intorno a 2. Posso trovarlo con successivi zoom:
graph2F(f, 1.8, 2.2, "brown")
  
# ...
## Ma posso piu' semplicemente usare il comando "maxmin"
maxmin(f, 1.8,2.2)
# 2.046346
f( maxmin(f,1.8,2.2) )
# 1.9887
## I punti di massimo sono 2.046346 + 2*n*pi con n intero
## Posso verificare la cosa con WolframAlpha, battendo  max of sin(10*x)+cos(3*x)
## e  period of sin(10*x)+cos(3*x)

Il grafico, migliore, realizzato con questo script:

Potrei fare facilmente (e con più precisione) tutti i calcoli con questa calcolatrice online (vedi).

Tabulo la funzione per trovare il punto di minimo che è intorno ad 1:
sin(10*Q)+cos(3*Q)
0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5
F(data):  -0.8881870729954355, -0.5066175928920127, 0.15214049411893193, 0.251964531082136, -0.4919536567753046, -1.5340136074898152, -1.9874699764595682, -1.4333313343345822, -0.30576526737349896, 0.5003465343541702, 0.43949204072633713
Il minimo è tra 1 e 1.2. Usando [m] ne preciso il valore:
Metto in a e b     1   1.2   e clicco più volte [m]:
Q= 1.0666666666666667 dif= 0.1333333333333333    F(Q)= -1.9274941761139037
...
Q= 1.0952466387052955 dif= 1.2058363640932157e-8 F(Q)= -1.9886997585349235
Q= 1.0952466366955682 dif= 8.038909093954771e-9  F(Q)= -1.9886997585349238
Q= 1.0952466353557502 dif= 5.359272803318049e-9  F(Q)= -1.9886997585349242
Q= 1.0952466362489623 dif= 3.572848461530498e-9  F(Q)= -1.9886997585349242

F(Q) si è stabilizzato. Q è tra i due ultimi valori. Prendo 1.09524664 dove F vale -1.988699758534924
[ con più precisione potrei trovare 1.095246636318383 ]

Tabulo la funzione per trovare il punto di massimo che è intorno ad 2:
1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5
F(data):  0.43949204072633713, -0.20040433322561801, -0.5834197491665766, -0.11629437082904148, 0.9845899945021117, 1.8731155373779935, 1.8365142749194712, 0.9413812826681254, -0.030495304049813265, -0.29722704747436857, 0.2142835677372528
Metto in a e b     1.9   2.2   e clicco più volte [M]:
Q= 2 dif= 0.20000000000000018 F(Q)= 1.8548149061487322
...
Q= 2.046346020690665  dif= 2.713131808107505e-8  F(Q)= 1.988699758534921
Q= 2.046346016168779  dif= 1.808754523935363e-8  F(Q)= 1.9886997585349224
Q= 2.0463460191833693 dif= 1.2058363640932157e-8 F(Q)= 1.9886997585349238
Q= 2.0463460171736423 dif= 8.038909093954771e-9  F(Q)= 1.9886997585349238

F(Q) si è stabilizzato. Q è tra i due ultimi valori. Prendo 2.04634602 dove F vale 1.988699758534924
[ con più precisione potrei trovare 2.046346017271411 ]

Ovviamente se il problema fosse in qualche modo di tipo applicativo basterebbe conoscere le soluzioni con minore precisione.