উত্তর:
এটি ঠিক আপনি কী খুঁজছেন তার উপর নির্ভর করে । নীচে কয়েকটি সংক্ষিপ্ত বিবরণ এবং রেফারেন্স দেওয়া হল।
ফাংশন Q ( x ) = ∫ ∞ x 1 এর আশেপাশে প্রায় আনুমানিক কেন্দ্রগুলির সাহিত্যের বেশিরভাগ অংশ
জন্য । এটি কারণ আপনার প্রদত্ত ফাংশনটি উপরের ফাংশনের সাধারণ পার্থক্য হিসাবে পচে যেতে পারে (সম্ভবত একটি ধ্রুবক দ্বারা সামঞ্জস্য করা হয়েছে)। এই ফাংশনটি কয়েকটি নাম উল্লেখ করে "সাধারণ বিতরণের উপরের লেজ", "ডান সাধারণ অবিচ্ছেদ্য" এবং "গাউসিয়ান ফাংশন" সহ কয়েকটি নাম উল্লেখ করে। আপনি মিলের অনুপাতের প্রায় অনুমানও দেখতে পাবেন , এটি যেখানেφ(এক্স)=(2π)-1/2ই-এক্স2/2গসিয়ান পিডিএফ হয়।
এখানে আমি আগ্রহী হতে পারে বিভিন্ন উদ্দেশ্যে কিছু রেফারেন্স তালিকাবদ্ধ।
কম্প্যুটেশনাল
ফাংশন বা সম্পর্কিত পরিপূরক ত্রুটি ফাংশনটি গণনার জন্য ডি-ফ্যাক্টো স্ট্যান্ডার্ড
ডাব্লুজেড কোডি, ত্রুটি ফাংশন , গণিতের জন্য রেশনাল চেবিশেভ অনুমান । বন্দীরা। , 1969, পৃষ্ঠা 631--637।
প্রতিটি (স্ব-সম্মানজনক) বাস্তবায়ন এই কাগজটি ব্যবহার করে। (ম্যাটল্যাব, আর, ইত্যাদি)
"সরল" আনুমানিকতা
আব্রামোভিটস এবং স্টেগুনের একটি ইনপুট রূপান্তরের বহুপদী বিস্তারের উপর ভিত্তি করে রয়েছে। কিছু লোক এটি "উচ্চ-নির্ভুলতা" সান্নিধ্য হিসাবে ব্যবহার করে। আমি এটির জন্য এটি পছন্দ করি না কারণ এটি শূন্যের কাছাকাছি খারাপ আচরণ করে। উদাহরণস্বরূপ, তাদের পড়তা নেই না উত্পাদ প্রশ্ন ( 0 ) = 1 / 2 , যা আমি মনে বড় চল নেই। কখনও কখনও খারাপ জিনিস এই কারণে ঘটে।
বোরজেসন এবং সানডবার্গ একটি সাধারণ অনুমান দেয় যা বেশিরভাগ অ্যাপ্লিকেশনগুলির জন্য বেশ ভাল কাজ করে যেখানে একমাত্র কয়েকটি সংখ্যক নির্ভুলতার প্রয়োজন। পরম আত্মীয় ত্রুটি কখনোই খারাপ 1%, যা তার সরলতা বিবেচনায় বেশ ভাল চেয়ে। মৌলিক পড়তা হয় প্রশ্নঃ ( এক্স ) = 1 এবং ধ্রুবক তাদের পছন্দের পছন্দএকটি=0,339এবংখ=5.51। যে রেফারেন্স হয়
পিও বোরজেসন এবং সিই সুন্দরবার্গ। যোগাযোগ অ্যাপ্লিকেশনগুলির জন্য ত্রুটি ফাংশন Q (x) এর সহজ অনুমান । আইইইই ট্রান্স কলাম। , সিওএম -27 (3): 639–643, মার্চ 1979।
এখানে এর নিখুঁত আপেক্ষিক ত্রুটির একটি চক্রান্ত রয়েছে।
বৈদ্যুতিক-প্রকৌশল সাহিত্যের বিভিন্ন যেমন আনুষঙ্গিক হয় এবং এটি তাদের মধ্যে অত্যধিক তীব্র আগ্রহী বলে মনে হয়। তাদের মধ্যে অনেকগুলি যদিও দুর্বল বা খুব বিস্ময়কর এবং সংশ্লেষযুক্ত অভিব্যক্তিগুলিতে প্রসারিত।
আপনিও তাকিয়ে থাকতে পারেন
ডব্লিউ। ব্রাইক ডান সাধারণ ইন্টিগ্রালের সমান আনুষঙ্গিকতা । ফলিত গণিত ও গণনা , 127 (2-3): 365–374, এপ্রিল 2002।
ল্যাপ্লেসের অবিরত ভগ্নাংশ
ল্যাপলেসে একটি সুন্দর অবিরত ভগ্নাংশ রয়েছে যা এর প্রতিটি মানের জন্য ক্রমাগত উপরের এবং নিম্ন সীমাটি দেয় । এটি মিলের অনুপাতের দিক থেকে,
যেখানে আমি চিহ্নিত স্বরলিপিটি অবিরত ভগ্নাংশের জন্য মোটামুটি মানসম্পন্ন , অর্থাত্ । এই এক্সপ্রেশনটি ছোট x এর জন্য খুব দ্রুত রূপান্তরিত করে না এবং এটি x = 0 এ ডাইভারেজ করে ।
এই অব্যাহত ভগ্নাংশটি আসলে এর "সরল" সীমাগুলির অনেকগুলি উত্পাদন করে যা 1900 এর মাঝামাঝি থেকে শেষ অবধি "পুনরায় আবিষ্কার" হয়েছিল। এটি সহজেই দেখতে পাওয়া যায় যে "স্ট্যান্ডার্ড" আকারে অবিচ্ছিন্ন ভগ্নাংশের জন্য (যেমন, ধনাত্মক পূর্ণসংখ্য সহগ নিয়ে গঠিত), ভগ্নাংশকে বিজোড় (এমনকি) পদগুলিতে কাটা একটি উপরের (নিম্ন) সীমা দেয়।
সুতরাং, ল্যাপ্লেস তত্ক্ষণাত আমাদের x কে বলে উভয়ই 1900 এর দশকের মাঝামাঝি সময়ে "পুনরায় আবিষ্কার" করা সীমানা। কিউ- ফাংশনেরক্ষেত্রে এটি x এর সমতুল্য
লক্ষ্য করুন, বিশেষত, উপরে যে অসমতাগুলি তাৎক্ষণিকভাবে বোঝায় । এই সত্যটি L'Hopital এর নিয়ম ব্যবহার করেও প্রতিষ্ঠিত হতে পারে। এটি বোরজেসন-সানডবার্গের সান্নিধ্যের কার্যকরী ফর্মের পছন্দ ব্যাখ্যা করতেও সহায়তা করে। কোন পছন্দ একটি ∈ [ 0 , 1 ] যেমন asymptotic সমানতা বজায় রাখে এক্স → ∞ । প্যারামিটার বি শূন্যের নিকটে "ধারাবাহিকতা সংশোধন" হিসাবে কাজ করে।
এখানে ফাংশন এবং দুটি ল্যাপ্লেস সীমানার প্লট রয়েছে ।
সি আই। সি লি এর 1990 এর দশকের গোড়ার দিকে একটি কাগজ রয়েছে যা ছোট মানগুলির জন্য "সংশোধন" করে । দেখা
সি আই। সি। লি। স্বাভাবিক অবিচ্ছেদের জন্য ল্যাপ্লেসে অবিরত ভগ্নাংশ । অ্যান। Inst। পরিসংখ্যানবিৎ। ম্যাথ। , 44 (1): 107–120, মার্চ 1992।
ডুরেটের সম্ভাবনা: থিওরি এবং উদাহরণগুলি তৃতীয় সংস্করণের –-– পৃষ্ঠায় এর শাস্ত্রীয় উপরের এবং নিম্ন সীমা সরবরাহ করে । এগুলি x এর বৃহত্তর মানগুলির জন্য বোঝায় (বলুন, x > 3 ) এবং এ্যাসেম্পোটোটিক্যালি টাইট।
আশা করি এটি আপনার শুরু করবে। আপনার যদি আরও নির্দিষ্ট আগ্রহ থাকে তবে আমি আপনাকে অন্য কোথাও নির্দেশ করতে সক্ষম হব।
আমি মনে করি আমি নায়কের থেকে অনেক দেরি করে ফেলেছি, তবে আমি কার্ডিনালের পোস্টে মন্তব্য করতে চেয়েছিলাম, এবং এই মন্তব্যটি তার উদ্দেশ্যযুক্ত বাক্সের জন্য খুব বড় হয়ে উঠেছে।
চেবিশেভ আনুমানিক ব্যবহার ব্যতীত (পরিপূরক) ত্রুটি ফাংশন গণনা করার বিকল্প উপায় রয়েছে। যেহেতু চেবিশেভ আনুমানিক ব্যবহারের জন্য কয়েকটি সহগের সংগ্রহের প্রয়োজন নেই তাই অ্যারে স্ট্রাকচারগুলি যদি আপনার কম্পিউটিং পরিবেশে কিছুটা ব্যয়বহুল হয় তবে এই পদ্ধতিগুলির একটি কিনারা থাকতে পারে (আপনি সহগকে ইনলাইন করতে পারেন, তবে ফলাফলের কোডটি সম্ভবত বারোকের মতো দেখাবে) জগাখিচুড়ি)।
লক্ষণীয় যে এর সহগ
লেন্টজ , থম্পসন এবং বার্নেট একটি অসীম পণ্য হিসাবে অবিচ্ছিন্ন ভগ্নাংশকে সংখ্যারূপে মূল্যায়নের জন্য একটি অ্যালগরিদম অর্জন করেছিলেন, যা একটি ধারাবাহিক ভগ্নাংশ "পিছনের দিকে" গণনার স্বাভাবিক পদ্ধতির চেয়ে বেশি দক্ষ। সাধারণ অ্যালগরিদম প্রদর্শন করার পরিবর্তে, আমি এটি দেখাব যে এটি কীভাবে মিলের অনুপাতের গণনাতে বিশেষীকরণ করেছে:
সিএফ দরকারী যেখানে পূর্বে উল্লিখিত সিরিজগুলি ধীরে ধীরে একত্রিত হতে শুরু করে; আপনার কম্পিউটিং পরিবেশে সিরিজ থেকে সিএফতে স্যুইচ করতে আপনাকে উপযুক্ত "ব্রেক পয়েন্ট" নির্ধারণের জন্য পরীক্ষা করতে হবে। ল্যাপ্লেসিয়ান সিএফ এর পরিবর্তে অ্যাসিম্পটোটিক সিরিজ ব্যবহারের বিকল্পও রয়েছে তবে আমার অভিজ্ঞতা হ'ল বেশিরভাগ অ্যাপ্লিকেশনগুলির জন্য ল্যাপ্লেসিয়ান সিএফ যথেষ্ট ভাল।
শেষ অবধি, আপনার যদি (পরিপূরক) ত্রুটি ফাংশনটি খুব নির্ভুলভাবে গণনা করার প্রয়োজন না হয় (অর্থাত্ কেবলমাত্র কয়েকটি উল্লেখযোগ্য সংখ্যায়), সেরেজ উইনিটস্কির কারণে কমপ্যাক্ট আনুমানিকতা রয়েছে। তাদের মধ্যে একটি এখানে:
This approximation has a maximum relative error of and becomes more accurate as increases.
(This reply originally appeared in response to a similar question, subsequently closed as a duplicate. The O.P. only wanted "an" implementation of the Gaussian integral, not necessarily "state of the art." In his comments it became apparent that a relatively simple, short implementation would be preferred.)
As comments point out, you need to integrate the PDF. There are many ways to perform the integral. Long ago, when computations were slow and expensive, David Hill worked out an approximation using simple arithmetic (rational functions and an exponentiation). It has double precision accuracy for typical arguments (between and , approximately). In 1973 he published a Fortran version in Applied Statistics called ALNORM.F. Over the years I have ported this to various environments which did not have a Normal (Gaussian) integral or which had suspect ones (such as Excel).
A MatLab version (with appropriate attributions) is available at http://people.sc.fsu.edu/~jburkardt/m_src/asa005/alnorm.m. A completely undocumented version of the original Fortran code appears on a "Koders Code Search" (sic) site.
Many years ago I ported this to AWK. This version may be more congenial for the modern developer to port due to its C-like (rather than Fortran) syntax and some additional comments I inserted when developing and testing it, because I needed to enhance its accuracy. It appears below.
For those without much experience porting scientific/math/stats code, some words of advice: one single typographical mistake can create serious errors that might not be easily detectable. (Trust me on this, I've made lots of them.) Always, always create a careful and exhaustive test. Because the normal integral/Gaussian integral/error function is available in so many tables and so much software, it's simple and fast to tabulate a huge number of values of your ported function and systematically compare (i.e., with the computer, not by eye) the values to correct ones. You can see such a test at the beginning of my code: it produces a table of values in -8.5:8.5 (by 0.1) which can be piped (via STDOUT) to another program for systematic checking.
Another testing approach--for those with enough numerical analysis background to know how to estimate expected errors--would be to numerically differentiate the values and compare them to the PDF (which is readily computed).
By the way: this code is only for the case with a mean of and unit standard deviation ("sigma"). But that's all one needs: to integrate from to when the mean is and the SD is , just compute and apply alnorm
to it.
I tested a port of alnorm
to Mathematica, which computes the values to arbitrary precision. To compare the results, here is a plot of the natural log of the ratios of upper tail values with . (A positive relative error means alnorm
is too large.)
The values are always accurate to relative to the vanishingly small tail probabilities. You can see where the calculation switches to an asymptotic formula (at ) and it is evident that this formula becomes extremely accurate as increases. The plot stops at because here is where double-precision exponentiation begins underflowing.
For example, alnorm[-6.0]
returns যখন সত্য মান, সমান , প্রায় , প্রথম দ্বাদশ দশমিক অঙ্কে পৃথক।
এই সম্পাদনায় বিশেষ দ্রষ্টব্য হিসেবে অংশ, আমি পরিবর্তিত UPPER_TAIL_IS_ZERO
থেকে 15.
থেকে 16.
কোডে: এটা এর ফলে অতি ক্ষুদ্র অংশ জন্য আরো সঠিক তোলে মধ্যে এবং । (সম্পাদনার সমাপ্তি))
#----------------------------------------------------------------------#
# ALNORM.AWK
# Compute values of the cumulative normal probability function.
# From G. Dallal's STAT-SAK (Fortran code).
# Additional precision using asymptotic expression added 7/8/92.
#----------------------------------------------------------------------#
BEGIN {
for (i=-85; i<=85; i++) {
x = i/10
p = alnorm(x, 0)
printf("%3.1f %12.10f\n", x, p)
}
exit
}
function alnorm(z,up, y,aln,w) {
#
# ALGORITHM AS 66 APPL. STATIST. (1973) VOL.22, NO.3:
# Hill, I.D. (1973). Algorithm AS 66. The normal integral.
# Appl. Statist.,22,424-427.
#
# Evaluates the tail area of the standard normal curve from
# z to infinity if up, or from -infinity to z if not up.
#
# LOWER_TAIL_IS_ONE, UPPER_TAIL_IS_ZERO, and EXP_MIN_ARG
# must be set to suit this computer and compiler.
LOWER_TAIL_IS_ONE = 8.5 # I.e., alnorm(8.5,0) = .999999999999+
UPPER_TAIL_IS_ZERO = 16.0 # Changes to power series expression
FORMULA_BREAK = 1.28 # Changes cont. fraction coefficients
EXP_MIN_ARG = -708 # I.e., exp(-708) is essentially true 0
if (z < 0.0) {
up = !up
z = -z
}
if ((z <= LOWER_TAIL_IS_ONE) || (up && z <= UPPER_TAIL_IS_ZERO)) {
y = 0.5 * z * z
if (z > FORMULA_BREAK) {
if (-y > EXP_MIN_ARG) {
aln = .398942280385 * exp(-y) / \
(z - 3.8052E-8 + 1.00000615302 / \
(z + 3.98064794E-4 + 1.98615381364 / \
(z - 0.151679116635 + 5.29330324926 / \
(z + 4.8385912808 - 15.1508972451 / \
(z + 0.742380924027 + 30.789933034 / \
(z + 3.99019417011))))))
} else {
aln = 0.0
}
} else {
aln = 0.5 - z * (0.398942280444 - 0.399903438504 * y / \
(y + 5.75885480458 - 29.8213557808 / \
(y + 2.62433121679 + 48.6959930692 / \
(y + 5.92885724438))))
}
} else {
if (up) { # 7/8/92
# Uses asymptotic expansion for exp(-z*z/2)/alnorm(z)
# Agrees with continued fraction to 11 s.f. when z >= 15
# and coefficients through 706 are used.
y = -0.5*z*z
if (y > EXP_MIN_ARG) {
w = -0.5/y # 1/z^2
aln = 0.3989422804014327*exp(y)/ \
(z*(1 + w*(1 + w*(-2 + w*(10 + w*(-74 + w*706))))))
# Next coefficients would be -8162, 110410
} else {
aln = 0.0
}
} else {
aln = 0.0
}
}
return up ? aln : 1.0 - aln
}
### end of file ###