আমাকে একটি নির্দিষ্ট ব্যবধানে স্কেলার ফাংশনের সমস্ত শেকড় খুঁজে বের করতে হবে । ফাংশনটির বিরতি থাকতে পারে। অ্যালগরিদমে ε এর যথার্থতা থাকতে পারে (উদাঃ এটি ঠিক আছে যদি অ্যালগরিদম দুটি পৃথক শিকড় খুঁজে না পায় যা than এর চেয়ে বেশি কাছাকাছি থাকে)।
এই ধরনের অ্যালগরিদম কি বিদ্যমান? আপনি কি আমাকে সম্পর্কে কাগজপত্র নির্দেশ করতে পারেন?
প্রকৃতপক্ষে, ব্রেন্টের অ্যালগরিদম ব্যবহার করে প্রদত্ত বিরতিতে শূন্য খুঁজে পাওয়ার জন্য আমার একটি ফাংশন রয়েছে এবং প্রদত্ত বিরতিতে ন্যূনতম সন্ধান করার জন্য একটি ফাংশন রয়েছে। এই দুটি ফাংশন ব্যবহার করে, আমি আমার নিজস্ব অ্যালগরিদম তৈরি করেছি, তবে আমি ভাবছিলাম যে আরও ভাল অ্যালগরিদম বিদ্যমান কিনা। আমার অ্যালগরিদম এর মতো:
আমি একটি বিরতি [a,b]
এবং একটি ফাংশন দিয়ে শুরু f
। তাহলে sign(f(a+ε)) ≠ sign(f(b-ε))
, আমি জানি আছে অন্তত একটি শূন্য মধ্যে a
এবং b
, এবং আমি এটি z = zero(]a,b[)
। আমি পরীক্ষা করে z
সত্যিই মান দেখার মাধ্যমে, (এটা বিচ্ছিন্নভাবে কিছু হতে পারে) একটি শূন্য হয় z-ε
এবং z+ε
। যদি তা হয় তবে আমি এটি পাওয়া শূন্যগুলির তালিকায় যুক্ত করব। যদি f(a+ε)
এবং f(b-ε)
উভয়ই ইতিবাচক হয় তবে আমি অনুসন্ধান করি m = min(]a, b[)
। যদি f(m)
এখনও ইতিবাচক হয় তবে আমি অনুসন্ধান করি m = max(]a,b[)
কারণ সেখানে a
এবং এর মধ্যে বিচ্ছিন্নতা থাকতে পারে b
। আমি বিপরীত না যদি f(a+ε)
ও f(b-ε)
নেগেটিভ ছিল।
এখন, আমি যে বিন্দুটি দেখতে পেয়েছি ( z
বা m
) থেকে আমি আমার ফাংশনের শূন্য, বিচ্ছিন্নতা এবং প্রতিস্থাপনের পয়েন্ট সমন্বিত একটি স্ট্যাক তৈরি করি। প্রথম পুনরাবৃত্তির পরে, স্ট্যাকটি এখন মনে হচ্ছে [a, z, b]
। আমি আবার বিরতি থেকে অ্যালগরিদম ]a,z[
এবং ]z,b[
। যখন দুটি পয়েন্টের মধ্যে a
এবং b
উভয় বিরতি শেষের চেয়ে এক্সট্রিমার একই চিহ্ন থাকে এবং উভয় এক্সট্রিমায় কোনও বিরতি থাকে না, তখন আমি স্ট্যাক থেকে অন্তর সরিয়ে ফেলি। যখন আরও বিরতি নেই তখন অ্যালগরিদম শেষ হয়।