Cara Penghampiran Carian Berfungsi
Untuk memahami cara carian anggaran berfungsi, mari kita pertimbangkan analogi carian binari klasik. Dalam carian binari, kami mencari nilai tertentu dalam senarai yang diisih dengan membahagikan selang carian secara berulang kepada separuh. Walau bagaimanapun, carian penghampiran berbeza daripada carian binari kerana ia tidak memerlukan fungsi yang kami cari bersifat monotonik, bermakna ia boleh mengendalikan kedua-dua nilai yang meningkat dan menurun.
Gambaran Keseluruhan Algoritma:
-
Tentukan Selang Carian: Tentukan selang permulaan [a0, a1] di mana kami menjangkakan penyelesaiannya terletak.
-
Mata Probe: Agihkan titik x(i) secara sekata dalam selang [a0, a1] menggunakan saiz langkah da.
-
Kira Ralat (ee): Untuk setiap titik x(i), hitung ralat atau jarak ee antara output fungsi y=f(x(i)) dan nilai sasaran y0.
-
Kenalpasti Titik Penyelesaian: Jejaki titik aa dengan ralat minimum ee.
-
Ulang Secara Rekursif: Hentikan carian apabila semua titik x(i) telah disiasat atau ketepatan tertentu telah dicapai. Jika tidak, tingkatkan ketepatan secara rekursif dengan mengecilkan selang carian dan memperhalusi saiz langkah da.
Contoh Pelaksanaan:
Dalam C , kita boleh menggunakan kelas berikut untuk melaksanakan carian anggaran:
class approx {
public:
double a, aa, a0, a1, da, *e, e0;
int i, n;
bool done, stop;
};
Untuk menggunakan ini kelas:
approx aa;
double ee, x, y, x0, y0;
aa.init(0.0, 10.0, 0.1, 6, &ee);
while (!aa.done) {
x = aa.a;
y = f(x);
ee = fabs(y - y0);
aa.step();
}
Pertimbangan Utama:
- Selang carian [a0, a1] mesti dipilih dengan teliti untuk merangkumi penyelesaian sambil meminimumkan lebarnya.
- Saiz langkah awal da harus dipilih dengan sewajarnya untuk mengelakkan kehilangan minima atau maksimum tempatan semasa mengimbangi kelajuan.
- Carian anggaran boleh digunakan untuk menyelesaikan pelbagai masalah, termasuk pemadanan polinomial, mencari parameter yang tidak diketahui dan menyelesaikan persamaan transendental.
Atas ialah kandungan terperinci Bagaimana Carian Penghampiran Mencari Penyelesaian Tanpa Monotoni Ketat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!
Kenyataan:Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn