Contact Us!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.

| Download
Views: 51
Image: ubuntu2004
Kernel: Python 3 (system-wide)
import numpy as np import matplotlib.pyplot as plt
def three_point(x,h,f): return (f(x-h) - f(x+h))/(2*h)
def f(x): return np.sin(x)-np.cos(x)
x = 0 x
0
df = (np.sin(0)+np.cos(0)) df
1.0
p1 = np.abs(three_point(x,(10**(-1)),f)) p1
0.998334166468281
p2 = np.abs(three_point(x,(10**(-2)),f)) p2
0.9999833334166652
p3 = np.abs(three_point(x,(10**(-3)),f)) p3
0.9999998333333759
p4 = np.abs(three_point(x,(10**(-4)),f)) p4
0.99999999833289
p5 = np.abs(three_point(x,(10**(-5)),f)) p5
0.9999999999843466
p6 = np.abs(three_point(x,(10**(-6)),f)) p6
0.9999999999732445
p7 = np.abs(three_point(x,(10**(-7)),f)) p7
0.9999999994736442
p8 = np.abs(three_point(x,(10**(-8)),f)) p8
0.9999999994736442
p9 = np.abs(three_point(x,(10**(-9)),f)) p9
1.0000000272292198
p10 = np.abs(three_point(x,(10**(-10)),f)) p10
1.000000082740371
p11 = np.abs(three_point(x,(10**(-11)),f)) p11
1.000000082740371
p12 = np.abs(three_point(x,(10**(-12)),f)) p12
1.0000333894311098
p = np.array([p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12]) p
array([0.99833417, 0.99998333, 0.99999983, 1. , 1. , 1. , 1. , 1. , 1.00000003, 1.00000008, 1.00000008, 1.00003339])
E1 = df - p1 E1
0.0016658335317190076
E2 = df - p2 E2
1.6666583334767893e-05
E3 = df - p3 E3
1.6666662405739885e-07
E4 = df - p4 E4
1.6671100055987154e-09
E5 = df - p5 E5
1.565336749109747e-11
E6 = df - p6 E6
2.6755486715046572e-11
E7 = df - p7 E7 E7
5.26355847796367e-10
E8 = df - p6 E8
2.6755486715046572e-11
E9 = df - p9 E9
-2.7229219767832546e-08
E10 = df - p10 E10
-8.274037099909037e-08
E11 = df - p11 E11
-8.274037099909037e-08
E12 = df - p12 E12
-3.3389431109753787e-05
E = np.array([E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12]) E
array([ 1.66583353e-03, 1.66665833e-05, 1.66666624e-07, 1.66711001e-09, 1.56533675e-11, 2.67554867e-11, 5.26355848e-10, 2.67554867e-11, -2.72292198e-08, -8.27403710e-08, -8.27403710e-08, -3.33894311e-05])
F1 = np.stack((p,E),axis=1) F1
array([[ 9.98334166e-01, 1.66583353e-03], [ 9.99983333e-01, 1.66665833e-05], [ 9.99999833e-01, 1.66666624e-07], [ 9.99999998e-01, 1.66711001e-09], [ 1.00000000e+00, 1.56533675e-11], [ 1.00000000e+00, 2.67554867e-11], [ 9.99999999e-01, 5.26355848e-10], [ 9.99999999e-01, 2.67554867e-11], [ 1.00000003e+00, -2.72292198e-08], [ 1.00000008e+00, -8.27403710e-08], [ 1.00000008e+00, -8.27403710e-08], [ 1.00003339e+00, -3.33894311e-05]])
h=np.array([10**(-1),10**(-2),10**(-3),10**(-4),10**(-5),10**(-6),10**(-7),10**(-8),10**(-9),10**(-10),10**(-11),10**(-12)]) h
array([1.e-01, 1.e-02, 1.e-03, 1.e-04, 1.e-05, 1.e-06, 1.e-07, 1.e-08, 1.e-09, 1.e-10, 1.e-11, 1.e-12])
plt.plot(h,E,color='red')
[<matplotlib.lines.Line2D at 0x7f1cd6eaf5e0>]
Image in a Jupyter notebook