ลบลอการิทึมสูงสุดจากบันทึกทั้งหมด ทิ้งผลลัพธ์ทั้งหมดที่มีค่าเป็นลบ (ความเป็นไปได้ของพวกเขาคือเพื่อวัตถุประสงค์ในทางปฏิบัติทั้งหมดเป็นศูนย์)
อันที่จริงถ้าคุณต้องการความแม่นยำญาติของ (เช่นสำหรับตัวเลขของความแม่นยำ) และคุณมีโอกาสเกิดทิ้งผลใด ๆ น้อยกว่าลอการิทึมของ n จากนั้นดำเนินการตามปกติเพื่อยกกำลังค่าที่เป็นผลลัพธ์และหารแต่ละค่าด้วยผลรวมของเลขชี้กำลังทั้งหมดϵ = 10 - d d n ϵ / nϵϵ=10−ddnϵ/n
สำหรับผู้ที่ชอบสูตรให้ลอการิทึมจะกับlambda_i) สำหรับลอการิทึมถึงฐานb \ gt 1ให้นิยามλ n = สูงสุด( λ i ) b > 1λ1,λ2,…,λnλn=max(λi)b>1
αผม= { bλผม- λn, λผม- λn≥ บันทึก( ϵ ) - บันทึก( n )0มิฉะนั้น
ความเป็นไปได้ที่ทำให้เป็นมาตรฐานเท่ากับ , วิธีนี้ใช้ได้ผลเนื่องจากการแทนที่ underflowingเป็นศูนย์ทั้งหมดทำให้เกิดข้อผิดพลาดทั้งหมดที่มากที่สุดในขณะที่เพราะและทั้งหมดไม่ใช่แบบลบตัวดังนั้นข้อผิดพลาดสัมพัทธ์ทั้งหมดเนื่องจากกฎศูนย์เปลี่ยนมีขนาดเล็กกว่าตามที่ต้องการฉัน= 1 , 2 , ... , n α i ( n - 1 ) ϵ / n < ϵ α n = b λ n - λ n = b 0 = 1 α i A = ∑ j α j ≥ 1 ( ( n - 1αผม/ ∑nj = 1αJฉัน= 1 , 2 , ... , nαผม( n - 1 ) ϵ / n < ϵαn= bλn- λn= b0= 1αผมA = ∑JαJ≥ 1( ( n - 1 ) ϵ / n ) / A < ϵ
เพื่อหลีกเลี่ยงการมากเกินไปปัดเศษข้อผิดพลาดการคำนวณผลรวมที่เริ่มต้นด้วยค่าที่เล็กที่สุดของ\สิ่งนี้จะทำโดยอัตโนมัติเมื่อถูกเรียงลำดับตามลำดับที่เพิ่มขึ้นเป็นครั้งแรก นี่เป็นข้อพิจารณาสำหรับมีขนาดใหญ่มากเท่านั้นλ i nαผมλผมn
BTW ยานี้สันนิษฐานว่าฐานของบันทึกที่มีค่ามากกว่า1สำหรับฐานน้อยกว่า , ลบล้างแรกบันทึกและดำเนินการเช่นถ้าฐานเท่ากับ bb 1 1 / b1ข11 / b
ตัวอย่าง
ให้มีสามค่าด้วยลอการิทึม (บันทึกธรรมชาติ, พูด) เท่ากับและ สุดท้ายคือที่ใหญ่ที่สุด; การลบออกจากแต่ละค่าจะให้และ- 231444.981 , - 231444.699 - 38202.733 , - 0.282 , 0- 269647.432 , - 231444.981 ,- 231444.699- 38202.733 , - 0.282 ,0
สมมติว่าคุณต้องการความแม่นยำเทียบเคียงได้กับมาตรฐาน IEEE คู่ผสม (ประมาณ 16 หลักทศนิยม) เพื่อให้และ 3 (คุณไม่สามารถบรรลุความแม่นยำนี้ได้จริง ๆ เพราะนั้นมอบให้กับบุคคลสำคัญเพียงสามตัวเท่านั้น แต่ก็ไม่เป็นไร: เราแค่ทิ้งค่าที่รับรองว่าจะไม่ส่งผลต่อความแม่นยำที่คุณต้องการและความแม่นยำที่แท้จริงของคุณ มี.) คำนวณ = = ความแตกต่างสามอย่างแรกคือน้อยกว่านี้ดังนั้นจงทิ้งมันทิ้งไปแค่และ ยกกำลังพวกมันให้ n = 3 - 0.282 บันทึก( ϵ / n ) บันทึก( 10 - 16 ) - บันทึก( 3 ) - 37.93997 - 38202.733 , - 0.282 0. exp ( - 0.282 ) = 0.754 exp ( 0 ) = 1 0 0.754 / ( 1 + 0.754 ) =ϵ = 10- 16n = 3- 0.282เข้าสู่ระบบ( ϵ / n )เข้าสู่ระบบ( 10)- 16) - บันทึก( 3 )- 37.93997- 38202.733 ,- 0.2820ประสบการณ์( - 0.282 ) = 0.754และ (แน่นอน) ค่าปกติเป็น - ใน order--สำหรับคนที่คุณโยนออกไปและ1ประสบการณ์( 0 ) = 100.754 / ( 1 + 0.754 ) = 0.4301 / ( 1 + 0.754 ) = 0.570
log1p