(12C) Error Function Approximation - Printable Version +- HP Forums (https://www.hpmuseum.org/forum) +-- Forum: HP Software Libraries (/forum-10.html) +--- Forum: General Software Library (/forum-13.html) +--- Thread: (12C) Error Function Approximation (/thread-13749.html) (12C) Error Function Approximation - Eddie W. Shore - 10-02-2019 03:21 AM The program for the HP 12C calculator approximates the error function defined as erf(x) = 2 / √π * ∫ e^-(t^2) dt from t = 0 to t = x by using the series erf(x) = (2*x) / √π * Σ( (-x^2)^n / (n!*(2*n+1)), n = 0 to ∞) In the approximation, up to 69 terms are calculated for the sum (the loop stops when n = 69). Since there is no π constant on the HP 12C, the approximation 355/113 for π is used. Program: Code: ```Step;   Key Code;  Key 01;  44,1;  STO 1 02;  35;   CLx 03;  44, 2;  STO 2 04;  44, 3;  STO 3 05;  45, 1;  RCL 1    06;  2;   2 07;  21;  y^x 08;  16;  CHS 09;  45, 2;  RCL 2 10;  21;  y^x 11;  45, 2;  RCL 2 12;  43, 3;  n! 13;  45, 2;  RCL 2 14;  2;   2 15;  20;  * 16;  1;  1 17;  40;  + 18;  20;  * 19;  10;  ÷ 20;  44,40,3;  STO+ 3 21;  43, 35;  x=0 22;  43,33,31;  GTO 31 23;  1;  1 24;  44,40,2;  STO+ 2 25;  45, 2;  RCL 2 26;  6;   6 27;  9;   9 28;  43,34;  x≤y 29;  43,33,31; GTO 31 30;  43,33,05; GTO 05 31;  45,3;  RCL 3 32;  45,1;  RCL 1 33;  20;  * 34;  2;  2 35;  20;  * 36;  3;  3 37;  5;  5 38;  5;  5 39;  36;  ENTER 40;  1;  1  41;  1;  1 42;  3;  3 43;  10;  ÷ 44;  43,21;  √ 45;  10;  ÷ 46;  43,33,00;  STO 00``` Examples (FIX 5) erf(0.5) ≈ 0.52050 erf(1.6) ≈ 0.97635 erf(2.3) ≈ 0.99886 Source Ball, John A. Algorithms for PRN Calculators John Wiley & Sons: New York 1978 ISBN (10) 0-471-0370-8 RE: (12C) Error Function Approximation - Albert Chan - 10-05-2019 12:26 PM From Abramowitz & Stegun, 7.1.22, erf and cdf are related. cdf(z) = (1 + erf(z/√(2)) / 2 erf(z) = 2 cdf(√(2) z) - 1 = 1 - 2 cdf(-√(2) z) Confirm with Casio FX-115ES, R(z) = cdf(-z) erf(0.5) = 1 - 2 R(√(2) * 0.5) = 0.5205 erf(1.6) = 1 - 2 R(√(2) * 1.6) = 0.976348 erf(2.3) = 1 - 2 R(√(2) * 2.3) = 0.9988567 Casio's Q(z) (pdf area 0.5 to z) is simpler, but not as accurate. 2 Q(√(2) * 0.5) = 0.5205 2 Q(√(2) * 1.6) = 0.97634 2 Q(√(2) * 2.3) = 0.99886