Υπολογισμός ελάχιστου συνάρτησης με τυχαία αναζήτση στο Octave/matlab

Έστω η συνάρτηση

$$ f(x_1, x_2) = x_1^2 + x_2^2 $$

Η οποία έχει ελάχιστο $$ f(x_1,x_2)=0 $$

στο σημείο $$x_1 = x_2 = 0$$

Το παρακάτω πρόγραμμα δείχνει πως μπορούμε να υπολογίσουμε το ελάχιστο μιας συνάρτησης χρησιμοποιώντας την μέθοδο της τυχαίας αναζήτησης, χωρίς καμία γνώση των παραγώγων της συνάρτησης.

#define [xmin xmax]
xmin = -1;
xmax =  1;

# function definition
function y = f(x)
        y = x(:,1).**2 + x(:,2).**2;
endfunction

# create x, y
N = 10000;
x = [ unifrnd(xmin, xmax, N, 2) ];
y = f(x);

# find what x corresponds to y minimum
[val pos] = min(y)
x(pos,:)
val

Συνδεθείτε για περισσότερες δυνατότητες αλληλεπίδρασης,
σχολιασμοί, εξωτερικοί σύνδεσμοι, βοήθεια, ψηφοφορίες, αρχεία, κτλ.

Creative Commons License
Εκπαιδευτικό υλικό από τον Αθανάσιο Σταυρακούδη σας παρέχετε κάτω από την άδεια Creative Commons Attribution-NonCommercial-ShareAlike 4.0 License.
Σας παρακαλώ να ενημερωθείτε για κάποιους επιπλέον περιορισμούς
http://stavrakoudis.econ.uoi.gr/stavrakoudis/?iid=401.