ค้นหารากทั้งหมดของฟังก์ชันในช่วงเวลาที่กำหนด
ฉันต้องการค้นหารากทั้งหมดของฟังก์ชันสเกลาร์ในช่วงเวลาที่กำหนด ฟังก์ชั่นอาจไม่ต่อเนื่อง อัลกอริทึมสามารถมีความแม่นยำของε (เช่นมันก็โอเคถ้าอัลกอริทึมไม่พบสองรากที่แตกต่างที่ใกล้กว่าε) อัลกอริทึมดังกล่าวมีอยู่จริงหรือไม่? คุณช่วยชี้เอกสารเกี่ยวกับเรื่องนี้ให้ฉันฟังได้ไหม ที่จริงฉันมีฟังก์ชั่นเพื่อค้นหาศูนย์ในช่วงเวลาที่กำหนดโดยใช้อัลกอริทึมของ Brent และฟังก์ชั่นเพื่อค้นหาขั้นต่ำในช่วงเวลาที่กำหนด เมื่อใช้ทั้งสองฟังก์ชั่นฉันสร้างอัลกอริทึมของตัวเอง แต่ฉันสงสัยว่ามีอัลกอริทึมที่ดีกว่า อัลกอริทึมของฉันเป็นเช่นนั้น: ผมเริ่มต้นด้วยช่วงเวลาและฟังก์ชั่น[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และbextrema มีเครื่องหมายเดียวกันกว่าทั้งสองช่วงเวลาสิ้นสุดและไม่มีความไม่ต่อเนื่องที่ extrema ทั้งสองฉันจะลบช่วงเวลาออกจากสแต็ก อัลกอริทึมจะสิ้นสุดลงเมื่อไม่มีช่วงเวลาอีกต่อไป