আমি প্রায়শই এমন পরিস্থিতিতে পড়েছি যেখানে প্রাপ্ত পার্থক্যটি মেশিনের নির্ভুলতার চেয়ে উপরে কিনা তা পরীক্ষা করা দরকার। এই উদ্দেশ্য আর একটি সহজ পরিবর্তনশীল হয়েছে মত মনে হয়: .Machine$double.eps
। তবে আমি যখন এই মানটি ব্যবহারের দিকনির্দেশগুলির জন্য আর উত্স কোডটিতে ফিরে যাই তখন আমি একাধিক বিভিন্ন নিদর্শন দেখতে পাই।
উদাহরণ
এখানে stats
গ্রন্থাগার থেকে কয়েকটি উদাহরণ দেওয়া হয়েছে :
t.test.R
if(stderr < 10 *.Machine$double.eps * abs(mx))
chisq.test.R
if(abs(sum(p)-1) > sqrt(.Machine$double.eps))
integrate.R
rel.tol < max(50*.Machine$double.eps, 0.5e-28)
lm.influence.R
e[abs(e) < 100 * .Machine$double.eps * median(abs(e))] <- 0
princomp.R
if (any(ev[neg] < - 9 * .Machine$double.eps * ev[1L]))
প্রভৃতি
প্রশ্নাবলি
- কিভাবে এক সব পিছনে যারা বিভিন্ন যুক্তি বুঝতে পারেন
10 *
,100 *
,50 *
এবংsqrt()
সংশোধনকারীদের? .Machine$double.eps
নির্ভুলতার কারণে পার্থক্য সামঞ্জস্য করার জন্য ব্যবহারের বিষয়ে গাইডলাইন রয়েছে ?
double.eps
। যদি আপনি কোনও ফ্লোটিং পয়েন্ট নম্বরে বেশ কয়েকটি ক্রিয়াকলাপ সম্পাদন করে থাকেন তবে আপনার ত্রুটি সহনশীলতাটিও সামঞ্জস্য করা উচিত। এজন্য all.equal আপনাকে একটি tolerance
যুক্তি দেয় ।