数値積分¶

In [1]:
import numpy as np
from scipy import integrate # 数値積分
import matplotlib.pyplot as plt
import pandas as pd
In [2]:
import scienceplots
plt.style.use(['science', 'notebook'])
plt.rcParams['font.family'] = 'Times New Roman' # font familyの設定
plt.rcParams['font.family'] = 'serif' # font familyの設定
plt.rcParams['mathtext.fontset'] = 'cm' # math fontの設定

混合型台形則(Composite Trapezoidal Rule)¶

積分を次のように近似する. \begin{gather} \int_a^b f(x) dx \simeq h \left( \frac{f_0}{2} + f_1 + f_2 + \cdots + f_{n-2} + \frac{f_{n-1}}{2} \right) \end{gather}

被積分関数の値を配列で渡す場合

In [3]:
def daikei(ff, a, b): # 混合型台形則
    n = len(ff)
    h = (b - a) / (n - 1)
    y = np.sum(ff[:n]) - 0.5 * (ff[0] + ff[n-1])
    return h * y

被積分関数を関数引数とする場合

In [4]:
def daikei_f(func, a, b, n): # 混合型台形則
    x = np.linspace(a, b, n)
    y = func(x)
    h = (b - a) / (n - 1)
    return h * (np.sum(y) - 0.5 * (y[0] + y[-1]))

シンプソン1/3則¶

積分区間$[a,b]$を2等分し, \begin{gather} \int_a^b f(x) dx \simeq \frac{h}{3} \left\{ f(a) + 4f \left( \frac{a+b}{2} \right) + f(b) \right\} \end{gather} ここで, \begin{gather} h = \frac{b-a}{2} \end{gather} これより,分割数が偶数の場合(点数$n$は奇数),サンプル点を$x_0(=a), x_1, x_2, \cdots, x_{n-1}(=b)$として, \begin{gather} \int_a^b f(x) dx \simeq \frac{h}{3} \left\{ f(x_0) + 4\sum_{i=1(奇数)}^{n-2}f(x_i)+ 2\sum_{i=2(偶数)}^{n-3}f(x_i) + f(x_{n-1}) \right\} \end{gather} ここで, \begin{gather} h = \frac{b-a}{n-1} \end{gather} これを混合型シンプソン1/3則という.

シンプソン3/8則¶

積分区間$[a,b]$を3等分し,サンプル点をを$x_0(=a), x_1, x_2, x_3(=b)$として, \begin{gather} \int_a^b f(x) dx \simeq \frac{3h}{8} \left\{ f(x_0) + 3f(x_1) + 3f(x_2) + f(x_3) \right\} \end{gather} ここで, \begin{gather} h = \frac{b-a}{3} \end{gather}

被積分関数の値を配列で渡す場合

In [5]:
def simpson(ff, a, b): # 混合型シンプソン
    n = len(ff)
    h = (b - a) / (n - 1)
    if n == 2:
        y = (ff[0] + ff[n-1]) * h * 0.5
    elif n % 2 == 1:
        y4 = np.sum(ff[1:n:2])
        y2 = np.sum(ff[2:n-1:2])
        y = ff[0] + 4.0 * y4 + 2.0 * y2 + ff[n-1]
        y = y * h / 3.0
    else:
        y = ff[0] + 3.0 * (ff[1] + ff[2]) + ff[3]
        y = y * h * 3.0 / 8.0
        if n >= 6:
            y4 = np.sum(ff[4:n:2])
            y2 = np.sum(ff[5:n-1:2])
            y += (ff[3] + 4.0 * y4 + 2.0 * y2 + ff[n-1]) * h / 3.0
    return y

被積分関数を関数引数とする場合

In [6]:
def simpson_f(f, a, b, n):
    if n < 2:
        raise ValueError("n >= 2 が必要です")

    x = np.linspace(a, b, n)
    fx = f(x)
    h = (b - a) / (n - 1)

    if n == 2:
        return (fx[0] + fx[1]) * h * 0.5

    elif n % 2 == 1:
        # n が奇数 → 通常のシンプソン1/3則
        y4 = np.sum(fx[1:n:2])
        y2 = np.sum(fx[2:n-1:2])
        y = fx[0] + 4.0 * y4 + 2.0 * y2 + fx[-1]
        return y * h / 3.0
    else:
        # n が偶数 → 3/8則 + 混合1/3則
        y = fx[0] + 3.0 * (fx[1] + fx[2]) + fx[3]
        y = y * h * 3.0 / 8.0
        if n >= 6:
            y4 = np.sum(fx[4:n:2])
            y2 = np.sum(fx[5:n-1:2])
            y += (fx[3] + 4.0 * y4 + 2.0 * y2 + fx[-1]) * h / 3.0
        return y
In [7]:
def func3(x): # 1変数の被積分関数
    y = np.sqrt(4.0-x**2)
    return y
In [8]:
q = 180.0/np.pi
a = 0.0
b = 2.0
nx = 101
print("f(x) = sqrt(4-x**2)")
print(f"{'n':>3s} {'daikei':>7s} {'error1':>8s} {'simpson':>7s} {'error2':>8s}")
for i in range(2,nx):
    n = i
    h = (b-a)/(n-1)
    xx = np.linspace(a,b,n)
    ff = np.empty(n)
    ff[:] = [func3(xx[i]) for i in range(n)]
    y1 = daikei(ff, a, b)
    y2 = simpson(ff, a, b)
    print(f"{n:>3d} {y1:>7.4f} {y1-np.pi:>8.5f} {y2:>7.4f} {y2-np.pi:>8.5f}")
f(x) = sqrt(4-x**2)
  n  daikei   error1 simpson   error2
  2  2.0000 -1.14159  2.0000 -1.14159
  3  2.7321 -0.40954  2.9761 -0.16552
  4  2.9176 -0.22404  3.0322 -0.10935
  5  2.9957 -0.14588  3.0836 -0.05800
  6  3.0370 -0.10454  3.1000 -0.04158
  7  3.0620 -0.07961  3.1101 -0.03147
  8  3.0784 -0.06322  3.1166 -0.02497
  9  3.0898 -0.05177  3.1212 -0.02040
 10  3.0982 -0.04341  3.1245 -0.01709
 11  3.1045 -0.03707  3.1270 -0.01458
 12  3.1094 -0.03214  3.1290 -0.01264
 13  3.1134 -0.02822  3.1305 -0.01109
 14  3.1166 -0.02503  3.1318 -0.00983
 15  3.1192 -0.02240  3.1328 -0.00879
 16  3.1214 -0.02020  3.1337 -0.00793
 17  3.1233 -0.01834  3.1344 -0.00719
 18  3.1248 -0.01675  3.1350 -0.00657
 19  3.1262 -0.01537  3.1356 -0.00603
 20  3.1274 -0.01418  3.1360 -0.00556
 21  3.1285 -0.01313  3.1364 -0.00515
 22  3.1294 -0.01220  3.1368 -0.00478
 23  3.1302 -0.01138  3.1371 -0.00446
 24  3.1309 -0.01065  3.1374 -0.00417
 25  3.1316 -0.00999  3.1377 -0.00391
 26  3.1322 -0.00940  3.1379 -0.00368
 27  3.1327 -0.00886  3.1381 -0.00347
 28  3.1332 -0.00837  3.1383 -0.00328
 29  3.1337 -0.00793  3.1385 -0.00310
 30  3.1341 -0.00752  3.1386 -0.00295
 31  3.1344 -0.00715  3.1388 -0.00280
 32  3.1348 -0.00681  3.1389 -0.00266
 33  3.1351 -0.00649  3.1391 -0.00254
 34  3.1354 -0.00620  3.1392 -0.00243
 35  3.1357 -0.00593  3.1393 -0.00232
 36  3.1359 -0.00567  3.1394 -0.00222
 37  3.1362 -0.00544  3.1395 -0.00213
 38  3.1364 -0.00522  3.1395 -0.00204
 39  3.1366 -0.00502  3.1396 -0.00196
 40  3.1368 -0.00482  3.1397 -0.00189
 41  3.1369 -0.00464  3.1398 -0.00182
 42  3.1371 -0.00448  3.1398 -0.00175
 43  3.1373 -0.00432  3.1399 -0.00169
 44  3.1374 -0.00417  3.1400 -0.00163
 45  3.1376 -0.00403  3.1400 -0.00158
 46  3.1377 -0.00389  3.1401 -0.00152
 47  3.1378 -0.00377  3.1401 -0.00147
 48  3.1379 -0.00365  3.1402 -0.00143
 49  3.1381 -0.00353  3.1402 -0.00138
 50  3.1382 -0.00343  3.1403 -0.00134
 51  3.1383 -0.00332  3.1403 -0.00130
 52  3.1384 -0.00323  3.1403 -0.00126
 53  3.1385 -0.00313  3.1404 -0.00123
 54  3.1385 -0.00305  3.1404 -0.00119
 55  3.1386 -0.00296  3.1404 -0.00116
 56  3.1387 -0.00288  3.1405 -0.00113
 57  3.1388 -0.00280  3.1405 -0.00110
 58  3.1389 -0.00273  3.1405 -0.00107
 59  3.1389 -0.00266  3.1406 -0.00104
 60  3.1390 -0.00259  3.1406 -0.00101
 61  3.1391 -0.00253  3.1406 -0.00099
 62  3.1391 -0.00247  3.1406 -0.00096
 63  3.1392 -0.00241  3.1407 -0.00094
 64  3.1392 -0.00235  3.1407 -0.00092
 65  3.1393 -0.00230  3.1407 -0.00090
 66  3.1393 -0.00224  3.1407 -0.00088
 67  3.1394 -0.00219  3.1407 -0.00086
 68  3.1394 -0.00214  3.1408 -0.00084
 69  3.1395 -0.00210  3.1408 -0.00082
 70  3.1395 -0.00205  3.1408 -0.00080
 71  3.1396 -0.00201  3.1408 -0.00078
 72  3.1396 -0.00196  3.1408 -0.00077
 73  3.1397 -0.00192  3.1408 -0.00075
 74  3.1397 -0.00188  3.1409 -0.00074
 75  3.1397 -0.00185  3.1409 -0.00072
 76  3.1398 -0.00181  3.1409 -0.00071
 77  3.1398 -0.00177  3.1409 -0.00069
 78  3.1399 -0.00174  3.1409 -0.00068
 79  3.1399 -0.00171  3.1409 -0.00067
 80  3.1399 -0.00167  3.1409 -0.00065
 81  3.1399 -0.00164  3.1410 -0.00064
 82  3.1400 -0.00161  3.1410 -0.00063
 83  3.1400 -0.00158  3.1410 -0.00062
 84  3.1400 -0.00155  3.1410 -0.00061
 85  3.1401 -0.00153  3.1410 -0.00060
 86  3.1401 -0.00150  3.1410 -0.00059
 87  3.1401 -0.00147  3.1410 -0.00058
 88  3.1401 -0.00145  3.1410 -0.00057
 89  3.1402 -0.00142  3.1410 -0.00056
 90  3.1402 -0.00140  3.1410 -0.00055
 91  3.1402 -0.00138  3.1411 -0.00054
 92  3.1402 -0.00135  3.1411 -0.00053
 93  3.1403 -0.00133  3.1411 -0.00052
 94  3.1403 -0.00131  3.1411 -0.00051
 95  3.1403 -0.00129  3.1411 -0.00050
 96  3.1403 -0.00127  3.1411 -0.00050
 97  3.1403 -0.00125  3.1411 -0.00049
 98  3.1404 -0.00123  3.1411 -0.00048
 99  3.1404 -0.00121  3.1411 -0.00047
100  3.1404 -0.00119  3.1411 -0.00047
In [9]:
df = pd.DataFrame({'daikei':[],'error1':[],'simpson':[],'error2':[],})
for i in range(2,nx):
    n = i
    h = (b-a)/(n-1)
    xx = np.linspace(a,b,n)
    yy1 = daikei_f(func3, a, b, n)
    yy2 = simpson_f(func3, a, b, n)
    yy3 = integrate.quad(func3, a, b)[0]
    df1 = pd.DataFrame({'daikei':[yy1,],'error1':[yy1-np.pi,],
                                'simpson':[yy2,],'error2':[yy2-np.pi,]})
    df = pd.concat([df, df1])
df.style.format({"error1":"{:.4f}", "error2":"{:.4f}"})
Out[9]:
  daikei error1 simpson error2
0 2.000000 -1.1416 2.000000 -1.1416
0 2.732051 -0.4095 2.976068 -0.1655
0 2.917553 -0.2240 3.032248 -0.1093
0 2.995709 -0.1459 3.083595 -0.0580
0 3.037049 -0.1045 3.100013 -0.0416
0 3.061983 -0.0796 3.110126 -0.0315
0 3.078372 -0.0632 3.116625 -0.0250
0 3.089819 -0.0518 3.121189 -0.0204
0 3.098185 -0.0434 3.124498 -0.0171
0 3.104518 -0.0371 3.127008 -0.0146
0 3.109448 -0.0321 3.128954 -0.0126
0 3.113375 -0.0282 3.130506 -0.0111
0 3.116562 -0.0250 3.131762 -0.0098
0 3.119192 -0.0224 3.132799 -0.0088
0 3.121391 -0.0202 3.133665 -0.0079
0 3.123253 -0.0183 3.134398 -0.0072
0 3.124845 -0.0167 3.135024 -0.0066
0 3.126220 -0.0154 3.135565 -0.0060
0 3.127416 -0.0142 3.136035 -0.0056
0 3.128465 -0.0131 3.136447 -0.0051
0 3.129390 -0.0122 3.136811 -0.0048
0 3.130212 -0.0114 3.137133 -0.0045
0 3.130946 -0.0106 3.137421 -0.0042
0 3.131603 -0.0100 3.137680 -0.0039
0 3.132196 -0.0094 3.137912 -0.0037
0 3.132733 -0.0089 3.138123 -0.0035
0 3.133220 -0.0084 3.138314 -0.0033
0 3.133664 -0.0079 3.138488 -0.0031
0 3.134070 -0.0075 3.138648 -0.0029
0 3.134443 -0.0071 3.138794 -0.0028
0 3.134786 -0.0068 3.138928 -0.0027
0 3.135102 -0.0065 3.139052 -0.0025
0 3.135395 -0.0062 3.139167 -0.0024
0 3.135666 -0.0059 3.139273 -0.0023
0 3.135918 -0.0057 3.139372 -0.0022
0 3.136153 -0.0054 3.139464 -0.0021
0 3.136372 -0.0052 3.139550 -0.0020
0 3.136576 -0.0050 3.139630 -0.0020
0 3.136768 -0.0048 3.139705 -0.0019
0 3.136948 -0.0046 3.139775 -0.0018
0 3.137117 -0.0045 3.139841 -0.0018
0 3.137275 -0.0043 3.139904 -0.0017
0 3.137425 -0.0042 3.139962 -0.0016
0 3.137566 -0.0040 3.140018 -0.0016
0 3.137700 -0.0039 3.140070 -0.0015
0 3.137826 -0.0038 3.140119 -0.0015
0 3.137945 -0.0036 3.140166 -0.0014
0 3.138059 -0.0035 3.140210 -0.0014
0 3.138166 -0.0034 3.140253 -0.0013
0 3.138269 -0.0033 3.140293 -0.0013
0 3.138366 -0.0032 3.140331 -0.0013
0 3.138458 -0.0031 3.140367 -0.0012
0 3.138547 -0.0030 3.140401 -0.0012
0 3.138631 -0.0030 3.140434 -0.0012
0 3.138711 -0.0029 3.140466 -0.0011
0 3.138788 -0.0028 3.140496 -0.0011
0 3.138861 -0.0027 3.140525 -0.0011
0 3.138932 -0.0027 3.140552 -0.0010
0 3.138999 -0.0026 3.140579 -0.0010
0 3.139064 -0.0025 3.140604 -0.0010
0 3.139126 -0.0025 3.140628 -0.0010
0 3.139185 -0.0024 3.140651 -0.0009
0 3.139242 -0.0024 3.140674 -0.0009
0 3.139297 -0.0023 3.140695 -0.0009
0 3.139350 -0.0022 3.140716 -0.0009
0 3.139400 -0.0022 3.140736 -0.0009
0 3.139449 -0.0021 3.140755 -0.0008
0 3.139496 -0.0021 3.140773 -0.0008
0 3.139542 -0.0021 3.140791 -0.0008
0 3.139586 -0.0020 3.140808 -0.0008
0 3.139628 -0.0020 3.140825 -0.0008
0 3.139669 -0.0019 3.140840 -0.0008
0 3.139708 -0.0019 3.140856 -0.0007
0 3.139746 -0.0018 3.140871 -0.0007
0 3.139783 -0.0018 3.140885 -0.0007
0 3.139818 -0.0018 3.140899 -0.0007
0 3.139853 -0.0017 3.140913 -0.0007
0 3.139886 -0.0017 3.140926 -0.0007
0 3.139919 -0.0017 3.140938 -0.0007
0 3.139950 -0.0016 3.140950 -0.0006
0 3.139980 -0.0016 3.140962 -0.0006
0 3.140010 -0.0016 3.140974 -0.0006
0 3.140038 -0.0016 3.140985 -0.0006
0 3.140066 -0.0015 3.140996 -0.0006
0 3.140093 -0.0015 3.141006 -0.0006
0 3.140119 -0.0015 3.141017 -0.0006
0 3.140144 -0.0014 3.141026 -0.0006
0 3.140169 -0.0014 3.141036 -0.0006
0 3.140193 -0.0014 3.141045 -0.0005
0 3.140216 -0.0014 3.141055 -0.0005
0 3.140238 -0.0014 3.141063 -0.0005
0 3.140260 -0.0013 3.141072 -0.0005
0 3.140282 -0.0013 3.141080 -0.0005
0 3.140303 -0.0013 3.141089 -0.0005
0 3.140323 -0.0013 3.141096 -0.0005
0 3.140343 -0.0012 3.141104 -0.0005
0 3.140362 -0.0012 3.141112 -0.0005
0 3.140381 -0.0012 3.141119 -0.0005
0 3.140399 -0.0012 3.141126 -0.0005
In [10]:
y4n = np.trapz(ff, xx) # Numpyの台形公式 (trapezoidal rule) 
print("np.trapz: ",y4n,y4n-np.pi) # 積分値と誤差
np.trapz:  3.140399178114616 -0.0011934754751772303
In [11]:
y4 = integrate.trapz(ff, xx) # Scipyの台形公式 (trapezoidal rule) 
print("integrate.trapz: ",y4,y4-np.pi) # 積分値と誤差
integrate.trapz:  3.140399178114616 -0.0011934754751772303
In [12]:
y5 = integrate.simps(ff, xx) # シンプソンの公式 (Simpson's rule) 
print("integrate.simps: ",y5,y5-np.pi) # 積分値と誤差
integrate.simps:  3.140908185461922 -0.0006844681278712628
In [13]:
y3 = integrate.quad(func3, a, b) # 1次元積分(適応積分)
print("integrate.quad :",y3,y3[0]-np.pi) # 積分値と推定誤差
integrate.quad : (3.1415926535897922, 3.533555670287569e-10) -8.881784197001252e-16
In [14]:
fig = plt.figure() # グラフ領域の作成
plt.plot(xx,ff)
plt.axis('square')
fig.savefig('p2_ex03_1.pdf')
No description has been provided for this image

2重積分¶

In [15]:
def func33(y,x): # 2変数の被積分関数
    f = np.sqrt(x**2+y**2)
    return f
In [16]:
x_min, x_max = 0.0, 1.0
y33 = integrate.dblquad(func33, x_min, x_max, 0.0, lambda x: np.sqrt(1-x**2)) # 2次元の積分
print("integrate.dblquad:",y33) # 積分値と推定誤差
print("sol=",1.0/6.0*np.pi,", error=",y33[0]-1.0/6.0*np.pi)
integrate.dblquad: (0.523598775598105, 1.4792291007749228e-08)
sol= 0.5235987755982988 , error= -1.9384494009955233e-13
In [17]:
n = 41
x = np.linspace(-0.5, 1.5, n)
y = np.linspace(-1, 1, n)
X,Y = np.meshgrid(x, y)
v = np.linspace(0, 2, 101)

fig = plt.figure()
plt.xlabel(r"$x$") # x軸のラベル設定
plt.ylabel(r"$y$") # y軸のラベル設定
Cf = plt.contourf(X, Y, func33(Y, X), 8, levels=v, alpha=1.0, cmap="rainbow") # plt.cm.hot
C = plt.contour(X, Y, func33(Y, X), 8, colors='gray', linewidths=0.8)
cbar = plt.colorbar(Cf, pad=0.1, shrink=1.0, orientation="vertical", ticks=[0,0.5, 1, 1.5, 2])
#cbar = plt.colorbar(Cf, pad=0.15, shrink=0.6, orientation="horizontal", ticks=[0,0.5, 1, 1.5, 2])
plt.clabel(C, inline=1, fontsize=12)
plt.axis('square')
fig.savefig('p2_ex03_2.pdf')
plt.show()
No description has been provided for this image
In [18]:
def table_xy(ss,x1,x2,aaa,nc):
    n1,n2 = np.shape(aaa)
    n_n2 = n2//nc+1
    for m in range(n_n2):
        print(f'({m+1:>3d}/{n_n2:>3d})')
        if n2 > nc*(m+1):
            m2 = nc
        else:
            m2 = np.mod(n2,nc)
        print(f'{ss:>8s}',end='')
        [print(f'{x2[j+m*nc]:>8.3f}',end='') for j in range(m2)]
        print('')
        for i in range(n1):
            print(f'{x1[i]:>8.3f}',end='')
            [print(f'{aaa[i,j+m*nc]:8.3f}',end='') for j in range(m2)]
            print('')
        print('')
    return
In [19]:
aaa = func33(Y, X)
table_xy('y | x',y,x,aaa,nc=11-7)
(  1/ 11)
   y | x  -0.500  -0.450  -0.400  -0.350
  -1.000   1.118   1.097   1.077   1.059
  -0.950   1.074   1.051   1.031   1.012
  -0.900   1.030   1.006   0.985   0.966
  -0.850   0.986   0.962   0.939   0.919
  -0.800   0.943   0.918   0.894   0.873
  -0.750   0.901   0.875   0.850   0.828
  -0.700   0.860   0.832   0.806   0.783
  -0.650   0.820   0.791   0.763   0.738
  -0.600   0.781   0.750   0.721   0.695
  -0.550   0.743   0.711   0.680   0.652
  -0.500   0.707   0.673   0.640   0.610
  -0.450   0.673   0.636   0.602   0.570
  -0.400   0.640   0.602   0.566   0.532
  -0.350   0.610   0.570   0.532   0.495
  -0.300   0.583   0.541   0.500   0.461
  -0.250   0.559   0.515   0.472   0.430
  -0.200   0.539   0.492   0.447   0.403
  -0.150   0.522   0.474   0.427   0.381
  -0.100   0.510   0.461   0.412   0.364
  -0.050   0.502   0.453   0.403   0.354
   0.000   0.500   0.450   0.400   0.350
   0.050   0.502   0.453   0.403   0.354
   0.100   0.510   0.461   0.412   0.364
   0.150   0.522   0.474   0.427   0.381
   0.200   0.539   0.492   0.447   0.403
   0.250   0.559   0.515   0.472   0.430
   0.300   0.583   0.541   0.500   0.461
   0.350   0.610   0.570   0.532   0.495
   0.400   0.640   0.602   0.566   0.532
   0.450   0.673   0.636   0.602   0.570
   0.500   0.707   0.673   0.640   0.610
   0.550   0.743   0.711   0.680   0.652
   0.600   0.781   0.750   0.721   0.695
   0.650   0.820   0.791   0.763   0.738
   0.700   0.860   0.832   0.806   0.783
   0.750   0.901   0.875   0.850   0.828
   0.800   0.943   0.918   0.894   0.873
   0.850   0.986   0.962   0.939   0.919
   0.900   1.030   1.006   0.985   0.966
   0.950   1.074   1.051   1.031   1.012
   1.000   1.118   1.097   1.077   1.059

(  2/ 11)
   y | x  -0.300  -0.250  -0.200  -0.150
  -1.000   1.044   1.031   1.020   1.011
  -0.950   0.996   0.982   0.971   0.962
  -0.900   0.949   0.934   0.922   0.912
  -0.850   0.901   0.886   0.873   0.863
  -0.800   0.854   0.838   0.825   0.814
  -0.750   0.808   0.791   0.776   0.765
  -0.700   0.762   0.743   0.728   0.716
  -0.650   0.716   0.696   0.680   0.667
  -0.600   0.671   0.650   0.632   0.618
  -0.550   0.626   0.604   0.585   0.570
  -0.500   0.583   0.559   0.539   0.522
  -0.450   0.541   0.515   0.492   0.474
  -0.400   0.500   0.472   0.447   0.427
  -0.350   0.461   0.430   0.403   0.381
  -0.300   0.424   0.391   0.361   0.335
  -0.250   0.391   0.354   0.320   0.292
  -0.200   0.361   0.320   0.283   0.250
  -0.150   0.335   0.292   0.250   0.212
  -0.100   0.316   0.269   0.224   0.180
  -0.050   0.304   0.255   0.206   0.158
   0.000   0.300   0.250   0.200   0.150
   0.050   0.304   0.255   0.206   0.158
   0.100   0.316   0.269   0.224   0.180
   0.150   0.335   0.292   0.250   0.212
   0.200   0.361   0.320   0.283   0.250
   0.250   0.391   0.354   0.320   0.292
   0.300   0.424   0.391   0.361   0.335
   0.350   0.461   0.430   0.403   0.381
   0.400   0.500   0.472   0.447   0.427
   0.450   0.541   0.515   0.492   0.474
   0.500   0.583   0.559   0.539   0.522
   0.550   0.626   0.604   0.585   0.570
   0.600   0.671   0.650   0.632   0.618
   0.650   0.716   0.696   0.680   0.667
   0.700   0.762   0.743   0.728   0.716
   0.750   0.808   0.791   0.776   0.765
   0.800   0.854   0.838   0.825   0.814
   0.850   0.901   0.886   0.873   0.863
   0.900   0.949   0.934   0.922   0.912
   0.950   0.996   0.982   0.971   0.962
   1.000   1.044   1.031   1.020   1.011

(  3/ 11)
   y | x  -0.100  -0.050   0.000   0.050
  -1.000   1.005   1.001   1.000   1.001
  -0.950   0.955   0.951   0.950   0.951
  -0.900   0.906   0.901   0.900   0.901
  -0.850   0.856   0.851   0.850   0.851
  -0.800   0.806   0.802   0.800   0.802
  -0.750   0.757   0.752   0.750   0.752
  -0.700   0.707   0.702   0.700   0.702
  -0.650   0.658   0.652   0.650   0.652
  -0.600   0.608   0.602   0.600   0.602
  -0.550   0.559   0.552   0.550   0.552
  -0.500   0.510   0.502   0.500   0.502
  -0.450   0.461   0.453   0.450   0.453
  -0.400   0.412   0.403   0.400   0.403
  -0.350   0.364   0.354   0.350   0.354
  -0.300   0.316   0.304   0.300   0.304
  -0.250   0.269   0.255   0.250   0.255
  -0.200   0.224   0.206   0.200   0.206
  -0.150   0.180   0.158   0.150   0.158
  -0.100   0.141   0.112   0.100   0.112
  -0.050   0.112   0.071   0.050   0.071
   0.000   0.100   0.050   0.000   0.050
   0.050   0.112   0.071   0.050   0.071
   0.100   0.141   0.112   0.100   0.112
   0.150   0.180   0.158   0.150   0.158
   0.200   0.224   0.206   0.200   0.206
   0.250   0.269   0.255   0.250   0.255
   0.300   0.316   0.304   0.300   0.304
   0.350   0.364   0.354   0.350   0.354
   0.400   0.412   0.403   0.400   0.403
   0.450   0.461   0.453   0.450   0.453
   0.500   0.510   0.502   0.500   0.502
   0.550   0.559   0.552   0.550   0.552
   0.600   0.608   0.602   0.600   0.602
   0.650   0.658   0.652   0.650   0.652
   0.700   0.707   0.702   0.700   0.702
   0.750   0.757   0.752   0.750   0.752
   0.800   0.806   0.802   0.800   0.802
   0.850   0.856   0.851   0.850   0.851
   0.900   0.906   0.901   0.900   0.901
   0.950   0.955   0.951   0.950   0.951
   1.000   1.005   1.001   1.000   1.001

(  4/ 11)
   y | x   0.100   0.150   0.200   0.250
  -1.000   1.005   1.011   1.020   1.031
  -0.950   0.955   0.962   0.971   0.982
  -0.900   0.906   0.912   0.922   0.934
  -0.850   0.856   0.863   0.873   0.886
  -0.800   0.806   0.814   0.825   0.838
  -0.750   0.757   0.765   0.776   0.791
  -0.700   0.707   0.716   0.728   0.743
  -0.650   0.658   0.667   0.680   0.696
  -0.600   0.608   0.618   0.632   0.650
  -0.550   0.559   0.570   0.585   0.604
  -0.500   0.510   0.522   0.539   0.559
  -0.450   0.461   0.474   0.492   0.515
  -0.400   0.412   0.427   0.447   0.472
  -0.350   0.364   0.381   0.403   0.430
  -0.300   0.316   0.335   0.361   0.391
  -0.250   0.269   0.292   0.320   0.354
  -0.200   0.224   0.250   0.283   0.320
  -0.150   0.180   0.212   0.250   0.292
  -0.100   0.141   0.180   0.224   0.269
  -0.050   0.112   0.158   0.206   0.255
   0.000   0.100   0.150   0.200   0.250
   0.050   0.112   0.158   0.206   0.255
   0.100   0.141   0.180   0.224   0.269
   0.150   0.180   0.212   0.250   0.292
   0.200   0.224   0.250   0.283   0.320
   0.250   0.269   0.292   0.320   0.354
   0.300   0.316   0.335   0.361   0.391
   0.350   0.364   0.381   0.403   0.430
   0.400   0.412   0.427   0.447   0.472
   0.450   0.461   0.474   0.492   0.515
   0.500   0.510   0.522   0.539   0.559
   0.550   0.559   0.570   0.585   0.604
   0.600   0.608   0.618   0.632   0.650
   0.650   0.658   0.667   0.680   0.696
   0.700   0.707   0.716   0.728   0.743
   0.750   0.757   0.765   0.776   0.791
   0.800   0.806   0.814   0.825   0.838
   0.850   0.856   0.863   0.873   0.886
   0.900   0.906   0.912   0.922   0.934
   0.950   0.955   0.962   0.971   0.982
   1.000   1.005   1.011   1.020   1.031

(  5/ 11)
   y | x   0.300   0.350   0.400   0.450
  -1.000   1.044   1.059   1.077   1.097
  -0.950   0.996   1.012   1.031   1.051
  -0.900   0.949   0.966   0.985   1.006
  -0.850   0.901   0.919   0.939   0.962
  -0.800   0.854   0.873   0.894   0.918
  -0.750   0.808   0.828   0.850   0.875
  -0.700   0.762   0.783   0.806   0.832
  -0.650   0.716   0.738   0.763   0.791
  -0.600   0.671   0.695   0.721   0.750
  -0.550   0.626   0.652   0.680   0.711
  -0.500   0.583   0.610   0.640   0.673
  -0.450   0.541   0.570   0.602   0.636
  -0.400   0.500   0.532   0.566   0.602
  -0.350   0.461   0.495   0.532   0.570
  -0.300   0.424   0.461   0.500   0.541
  -0.250   0.391   0.430   0.472   0.515
  -0.200   0.361   0.403   0.447   0.492
  -0.150   0.335   0.381   0.427   0.474
  -0.100   0.316   0.364   0.412   0.461
  -0.050   0.304   0.354   0.403   0.453
   0.000   0.300   0.350   0.400   0.450
   0.050   0.304   0.354   0.403   0.453
   0.100   0.316   0.364   0.412   0.461
   0.150   0.335   0.381   0.427   0.474
   0.200   0.361   0.403   0.447   0.492
   0.250   0.391   0.430   0.472   0.515
   0.300   0.424   0.461   0.500   0.541
   0.350   0.461   0.495   0.532   0.570
   0.400   0.500   0.532   0.566   0.602
   0.450   0.541   0.570   0.602   0.636
   0.500   0.583   0.610   0.640   0.673
   0.550   0.626   0.652   0.680   0.711
   0.600   0.671   0.695   0.721   0.750
   0.650   0.716   0.738   0.763   0.791
   0.700   0.762   0.783   0.806   0.832
   0.750   0.808   0.828   0.850   0.875
   0.800   0.854   0.873   0.894   0.918
   0.850   0.901   0.919   0.939   0.962
   0.900   0.949   0.966   0.985   1.006
   0.950   0.996   1.012   1.031   1.051
   1.000   1.044   1.059   1.077   1.097

(  6/ 11)
   y | x   0.500   0.550   0.600   0.650
  -1.000   1.118   1.141   1.166   1.193
  -0.950   1.074   1.098   1.124   1.151
  -0.900   1.030   1.055   1.082   1.110
  -0.850   0.986   1.012   1.040   1.070
  -0.800   0.943   0.971   1.000   1.031
  -0.750   0.901   0.930   0.960   0.992
  -0.700   0.860   0.890   0.922   0.955
  -0.650   0.820   0.851   0.885   0.919
  -0.600   0.781   0.814   0.849   0.885
  -0.550   0.743   0.778   0.814   0.851
  -0.500   0.707   0.743   0.781   0.820
  -0.450   0.673   0.711   0.750   0.791
  -0.400   0.640   0.680   0.721   0.763
  -0.350   0.610   0.652   0.695   0.738
  -0.300   0.583   0.626   0.671   0.716
  -0.250   0.559   0.604   0.650   0.696
  -0.200   0.539   0.585   0.632   0.680
  -0.150   0.522   0.570   0.618   0.667
  -0.100   0.510   0.559   0.608   0.658
  -0.050   0.502   0.552   0.602   0.652
   0.000   0.500   0.550   0.600   0.650
   0.050   0.502   0.552   0.602   0.652
   0.100   0.510   0.559   0.608   0.658
   0.150   0.522   0.570   0.618   0.667
   0.200   0.539   0.585   0.632   0.680
   0.250   0.559   0.604   0.650   0.696
   0.300   0.583   0.626   0.671   0.716
   0.350   0.610   0.652   0.695   0.738
   0.400   0.640   0.680   0.721   0.763
   0.450   0.673   0.711   0.750   0.791
   0.500   0.707   0.743   0.781   0.820
   0.550   0.743   0.778   0.814   0.851
   0.600   0.781   0.814   0.849   0.885
   0.650   0.820   0.851   0.885   0.919
   0.700   0.860   0.890   0.922   0.955
   0.750   0.901   0.930   0.960   0.992
   0.800   0.943   0.971   1.000   1.031
   0.850   0.986   1.012   1.040   1.070
   0.900   1.030   1.055   1.082   1.110
   0.950   1.074   1.098   1.124   1.151
   1.000   1.118   1.141   1.166   1.193

(  7/ 11)
   y | x   0.700   0.750   0.800   0.850
  -1.000   1.221   1.250   1.281   1.312
  -0.950   1.180   1.210   1.242   1.275
  -0.900   1.140   1.172   1.204   1.238
  -0.850   1.101   1.134   1.167   1.202
  -0.800   1.063   1.097   1.131   1.167
  -0.750   1.026   1.061   1.097   1.134
  -0.700   0.990   1.026   1.063   1.101
  -0.650   0.955   0.992   1.031   1.070
  -0.600   0.922   0.960   1.000   1.040
  -0.550   0.890   0.930   0.971   1.012
  -0.500   0.860   0.901   0.943   0.986
  -0.450   0.832   0.875   0.918   0.962
  -0.400   0.806   0.850   0.894   0.939
  -0.350   0.783   0.828   0.873   0.919
  -0.300   0.762   0.808   0.854   0.901
  -0.250   0.743   0.791   0.838   0.886
  -0.200   0.728   0.776   0.825   0.873
  -0.150   0.716   0.765   0.814   0.863
  -0.100   0.707   0.757   0.806   0.856
  -0.050   0.702   0.752   0.802   0.851
   0.000   0.700   0.750   0.800   0.850
   0.050   0.702   0.752   0.802   0.851
   0.100   0.707   0.757   0.806   0.856
   0.150   0.716   0.765   0.814   0.863
   0.200   0.728   0.776   0.825   0.873
   0.250   0.743   0.791   0.838   0.886
   0.300   0.762   0.808   0.854   0.901
   0.350   0.783   0.828   0.873   0.919
   0.400   0.806   0.850   0.894   0.939
   0.450   0.832   0.875   0.918   0.962
   0.500   0.860   0.901   0.943   0.986
   0.550   0.890   0.930   0.971   1.012
   0.600   0.922   0.960   1.000   1.040
   0.650   0.955   0.992   1.031   1.070
   0.700   0.990   1.026   1.063   1.101
   0.750   1.026   1.061   1.097   1.134
   0.800   1.063   1.097   1.131   1.167
   0.850   1.101   1.134   1.167   1.202
   0.900   1.140   1.172   1.204   1.238
   0.950   1.180   1.210   1.242   1.275
   1.000   1.221   1.250   1.281   1.312

(  8/ 11)
   y | x   0.900   0.950   1.000   1.050
  -1.000   1.345   1.379   1.414   1.450
  -0.950   1.309   1.344   1.379   1.416
  -0.900   1.273   1.309   1.345   1.383
  -0.850   1.238   1.275   1.312   1.351
  -0.800   1.204   1.242   1.281   1.320
  -0.750   1.172   1.210   1.250   1.290
  -0.700   1.140   1.180   1.221   1.262
  -0.650   1.110   1.151   1.193   1.235
  -0.600   1.082   1.124   1.166   1.209
  -0.550   1.055   1.098   1.141   1.185
  -0.500   1.030   1.074   1.118   1.163
  -0.450   1.006   1.051   1.097   1.142
  -0.400   0.985   1.031   1.077   1.124
  -0.350   0.966   1.012   1.059   1.107
  -0.300   0.949   0.996   1.044   1.092
  -0.250   0.934   0.982   1.031   1.079
  -0.200   0.922   0.971   1.020   1.069
  -0.150   0.912   0.962   1.011   1.061
  -0.100   0.906   0.955   1.005   1.055
  -0.050   0.901   0.951   1.001   1.051
   0.000   0.900   0.950   1.000   1.050
   0.050   0.901   0.951   1.001   1.051
   0.100   0.906   0.955   1.005   1.055
   0.150   0.912   0.962   1.011   1.061
   0.200   0.922   0.971   1.020   1.069
   0.250   0.934   0.982   1.031   1.079
   0.300   0.949   0.996   1.044   1.092
   0.350   0.966   1.012   1.059   1.107
   0.400   0.985   1.031   1.077   1.124
   0.450   1.006   1.051   1.097   1.142
   0.500   1.030   1.074   1.118   1.163
   0.550   1.055   1.098   1.141   1.185
   0.600   1.082   1.124   1.166   1.209
   0.650   1.110   1.151   1.193   1.235
   0.700   1.140   1.180   1.221   1.262
   0.750   1.172   1.210   1.250   1.290
   0.800   1.204   1.242   1.281   1.320
   0.850   1.238   1.275   1.312   1.351
   0.900   1.273   1.309   1.345   1.383
   0.950   1.309   1.344   1.379   1.416
   1.000   1.345   1.379   1.414   1.450

(  9/ 11)
   y | x   1.100   1.150   1.200   1.250
  -1.000   1.487   1.524   1.562   1.601
  -0.950   1.453   1.492   1.531   1.570
  -0.900   1.421   1.460   1.500   1.540
  -0.850   1.390   1.430   1.471   1.512
  -0.800   1.360   1.401   1.442   1.484
  -0.750   1.331   1.373   1.415   1.458
  -0.700   1.304   1.346   1.389   1.433
  -0.650   1.278   1.321   1.365   1.409
  -0.600   1.253   1.297   1.342   1.387
  -0.550   1.230   1.275   1.320   1.366
  -0.500   1.208   1.254   1.300   1.346
  -0.450   1.188   1.235   1.282   1.329
  -0.400   1.170   1.218   1.265   1.312
  -0.350   1.154   1.202   1.250   1.298
  -0.300   1.140   1.188   1.237   1.285
  -0.250   1.128   1.177   1.226   1.275
  -0.200   1.118   1.167   1.217   1.266
  -0.150   1.110   1.160   1.209   1.259
  -0.100   1.105   1.154   1.204   1.254
  -0.050   1.101   1.151   1.201   1.251
   0.000   1.100   1.150   1.200   1.250
   0.050   1.101   1.151   1.201   1.251
   0.100   1.105   1.154   1.204   1.254
   0.150   1.110   1.160   1.209   1.259
   0.200   1.118   1.167   1.217   1.266
   0.250   1.128   1.177   1.226   1.275
   0.300   1.140   1.188   1.237   1.285
   0.350   1.154   1.202   1.250   1.298
   0.400   1.170   1.218   1.265   1.312
   0.450   1.188   1.235   1.282   1.329
   0.500   1.208   1.254   1.300   1.346
   0.550   1.230   1.275   1.320   1.366
   0.600   1.253   1.297   1.342   1.387
   0.650   1.278   1.321   1.365   1.409
   0.700   1.304   1.346   1.389   1.433
   0.750   1.331   1.373   1.415   1.458
   0.800   1.360   1.401   1.442   1.484
   0.850   1.390   1.430   1.471   1.512
   0.900   1.421   1.460   1.500   1.540
   0.950   1.453   1.492   1.531   1.570
   1.000   1.487   1.524   1.562   1.601

( 10/ 11)
   y | x   1.300   1.350   1.400   1.450
  -1.000   1.640   1.680   1.720   1.761
  -0.950   1.610   1.651   1.692   1.733
  -0.900   1.581   1.622   1.664   1.707
  -0.850   1.553   1.595   1.638   1.681
  -0.800   1.526   1.569   1.612   1.656
  -0.750   1.501   1.544   1.588   1.632
  -0.700   1.476   1.521   1.565   1.610
  -0.650   1.453   1.498   1.544   1.589
  -0.600   1.432   1.477   1.523   1.569
  -0.550   1.412   1.458   1.504   1.551
  -0.500   1.393   1.440   1.487   1.534
  -0.450   1.376   1.423   1.471   1.518
  -0.400   1.360   1.408   1.456   1.504
  -0.350   1.346   1.395   1.443   1.492
  -0.300   1.334   1.383   1.432   1.481
  -0.250   1.324   1.373   1.422   1.471
  -0.200   1.315   1.365   1.414   1.464
  -0.150   1.309   1.358   1.408   1.458
  -0.100   1.304   1.354   1.404   1.453
  -0.050   1.301   1.351   1.401   1.451
   0.000   1.300   1.350   1.400   1.450
   0.050   1.301   1.351   1.401   1.451
   0.100   1.304   1.354   1.404   1.453
   0.150   1.309   1.358   1.408   1.458
   0.200   1.315   1.365   1.414   1.464
   0.250   1.324   1.373   1.422   1.471
   0.300   1.334   1.383   1.432   1.481
   0.350   1.346   1.395   1.443   1.492
   0.400   1.360   1.408   1.456   1.504
   0.450   1.376   1.423   1.471   1.518
   0.500   1.393   1.440   1.487   1.534
   0.550   1.412   1.458   1.504   1.551
   0.600   1.432   1.477   1.523   1.569
   0.650   1.453   1.498   1.544   1.589
   0.700   1.476   1.521   1.565   1.610
   0.750   1.501   1.544   1.588   1.632
   0.800   1.526   1.569   1.612   1.656
   0.850   1.553   1.595   1.638   1.681
   0.900   1.581   1.622   1.664   1.707
   0.950   1.610   1.651   1.692   1.733
   1.000   1.640   1.680   1.720   1.761

( 11/ 11)
   y | x   1.500
  -1.000   1.803
  -0.950   1.776
  -0.900   1.749
  -0.850   1.724
  -0.800   1.700
  -0.750   1.677
  -0.700   1.655
  -0.650   1.635
  -0.600   1.616
  -0.550   1.598
  -0.500   1.581
  -0.450   1.566
  -0.400   1.552
  -0.350   1.540
  -0.300   1.530
  -0.250   1.521
  -0.200   1.513
  -0.150   1.507
  -0.100   1.503
  -0.050   1.501
   0.000   1.500
   0.050   1.501
   0.100   1.503
   0.150   1.507
   0.200   1.513
   0.250   1.521
   0.300   1.530
   0.350   1.540
   0.400   1.552
   0.450   1.566
   0.500   1.581
   0.550   1.598
   0.600   1.616
   0.650   1.635
   0.700   1.655
   0.750   1.677
   0.800   1.700
   0.850   1.724
   0.900   1.749
   0.950   1.776
   1.000   1.803