(12C) Error Function Approximation
10-02-2019, 03:21 AM (This post was last modified: 10-02-2019 03:25 AM by Eddie W. Shore.)
Post: #1 Eddie W. Shore Senior Member Posts: 975 Joined: Dec 2013
(12C) Error Function Approximation
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
10-05-2019, 12:26 PM
Post: #2
 Albert Chan Senior Member Posts: 695 Joined: Jul 2018
RE: (12C) Error Function Approximation
According to Abramowitz & Stegun, erf and cdf are related (eqn 7.1.22)

cdf(z) = ½(1 + erf(z/√(2))
erf(z) = 2 cdf(√(2) z) - 1 = 1 - 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

Q(z) (pdf area 0 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
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)