Gia sư Cần Thơ, Dạy Kèm Cần Thơ

VỮNG TIN - TIẾP BƯỚC - THÀNH CÔNG


Bài 5. Tìm x' sao cho f(x') lớn nhất trong khoảng [a, b] bằng nguyên lý tham lam

Share
avatar
admin
Admin
Admin

Tổng số bài gửi : 1207
Points : 3010
Join date : 11/11/2009
Age : 37
Đến từ : Cần Thơ

Bài 5. Tìm x' sao cho f(x') lớn nhất trong khoảng [a, b] bằng nguyên lý tham lam

Bài gửi  admin on Wed Dec 15, 2010 11:50 am

Tìm x' sao cho f(x') lớn nhất trong khoảng [a, b]


THUẬT TOÁN LEO ĐỒI THEO NGUYÊN LÝ THAM LAM
- n là hằng nguyên dương cho trước.
- delta là 1 hằng thực xác định
Code:
x1 = Random[Real, {a, b}];
For[i = 1, i ≤ n, i++,
       x2 = Random[Real, {x1 - delta, x1 + delta}];
       If[f[x1] < f[x2], x1 = x2];
    ];
CODE MẪU
Code:
(*Tim x1 sao cho f(x1) lon nhat tron khoang [a, b]
    Phuong phap : leo doi theo nguyen ly tham lam.*)
Clear[y, f, x, a, b, x1, x2, i, delta, m];
y = Input["Nhap f(x) = "];
f[x_] = y;
a = Input["Nhap vao a"];
b = Input["Nhap vao b"];
n = Input["Nhap so lan lap n "];
m = Input["Nhap so doan can chia m"];
delta = (b - a)/m;
x1 = Random[Real, {a, b}];
For[i = 1, i ≤ n, i++,
       x2 = Random[Real, {x1 - delta, x1 + delta}];
       If[f[x1] < f[x2], x1 = x2];
    ];
Print["f(x)=", y, " tren [", a, ",", b, "], co f(", x1, ") lon nhat"];

    Hôm nay: Tue Dec 11, 2018 8:15 pm