import pandas, numpy
import brent
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use('seaborn-whitegrid')
df1 = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
df2 = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
df3 = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
df1_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
df2_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
df3_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
fn1 = lambda x: x * (x - 2.0)
fn2 = lambda x: numpy.fabs(x * (x - 2.0))
fn3 = lambda x: (lambda x: 0.0 if x < 0.0 else x)(x * (x - 2.0))
for e in [10, 1, 1e-1, 1e-5, 1e-8, 1e-10, 1e-12, 1e-14, 1e-15, 5e-16, 1e-16]:
st, xm, n, pn, gn = brent.optim(fn1, -1.5, 20.1, e, 10000)
df1 = df1.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim(fn2, -20.1, 0.9, e, 10000)
df2 = df2.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim(fn3, -1.5, 20.1, e, 10000)
df3 = df3.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim(fn1, -1.5, 20.1, e, 10000)
df1_ = df1_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim(fn2, -20.1, 0.9, e, 10000)
df2_ = df2_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim(fn3, -1.5, 20.1, e, 10000)
df3_ = df3_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
df1
df1_
df2
df2_
df3
df3_
fig, ax = plt.subplots(3, 2, figsize=(40, 50), sharex='col', sharey='row')
x1 = numpy.linspace(-2.0, 7.0, 5000)
x2 = numpy.linspace(-2.0, 7.0, 5000)
x3 = numpy.linspace(-2.0, 7.0, 5000)
ax[0, 0].plot(x1, fn1(x1), color='black', linestyle='solid')
ax[0, 0].set(xlim=(-2.0, 7.0))
ax[0, 0].set_title('optim')
m00 = df1.loc[df1['status'] == 0]['xmin'].values
ax[0, 0].scatter(m00, fn1(m00), s= 40, color='red')
ax[0, 1].plot(x1, fn1(x1), color='black', linestyle='solid')
ax[0, 1].set(xlim=(-2.0, 7.0))
ax[0, 1].set_title('optim_')
m01 = df1_.loc[df1_['status'] == 0]['xmin'].values
ax[0, 1].scatter(m01, fn1(m01), s= 40, color='red')
ax[1, 0].plot(x2, fn2(x2), color='black', linestyle='solid')
ax[1, 0].set(xlim=(-2.0, 7.0))
ax[1, 0].set_title('optim')
m10 = df2.loc[df2['status'] == 0]['xmin'].values
ax[1, 0].scatter(m10, fn2(m10), s= 40, color='red')
ax[1, 1].plot(x2, fn2(x2), color='black', linestyle='solid')
ax[1, 1].set(xlim=(-2.0, 7.0))
ax[1, 1].set_title('optim_')
m11 = df2_.loc[df2_['status'] == 0]['xmin'].values
ax[1, 1].scatter(m11, fn2(m11), s= 40, color='red')
ax[2, 0].plot(x3, numpy.vectorize(fn3)(x3), color='black', linestyle='solid')
ax[2, 0].set(xlim=(-2.0, 7.0))
ax[2, 0].set_title('optim')
m20 = df3.loc[df3['status'] == 0]['xmin'].values
ax[2, 0].scatter(m20, numpy.vectorize(fn3)(m20), s= 40, color='red')
ax[2, 1].plot(x3, numpy.vectorize(fn3)(x3), color='black', linestyle='solid')
ax[2, 1].set(xlim=(-2.0, 7.0))
ax[2, 1].set_title('optim_')
m21 = df3_.loc[df3_['status'] == 0]['xmin'].values
ax[2, 1].scatter(m21, numpy.vectorize(fn3)(m21), s= 40, color='red')
df = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
df_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
fn = lambda x: numpy.fabs(x ** 3)
for e in [10, 1, 1e-1, 1e-5, 1e-8, 1e-10, 1e-12, 1e-14, 1e-15, 5e-16, 1e-16]:
st, xm, n, pn, gn = brent.optim(fn, -1.5, 20.1, e, 10000)
df = df.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim_(fn, -1.5, 20.1, e, 10000)
df_ = df_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
df
df_
fig, ax = plt.subplots(1, 2, figsize=(30, 10), sharex='col', sharey='row')
x = numpy.linspace(-1.5, 20.1, 5000)
ax[0].plot(x, fn(x), color='black', linestyle='solid')
ax[0].set(xlim=(-1.5, 20.1))
m0 = df.loc[df['status'] == 0]['xmin'].values
ax[0].scatter(m0, fn(m0), s= 40, color='red')
ax[0].set_title('optim')
ax[1].plot(x, fn(x), color='black', linestyle='solid')
ax[1].set(xlim=(-1.5, 20.1))
m1 = df_.loc[df_['status'] == 0]['xmin'].values
ax[1].scatter(m1, fn(m1), s= 40, color='red')
ax[1].set_title('optim_')
df1 = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)', 'delta'])
df2 = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
df3 = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
df1_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)', 'delta'])
df2_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
df3_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
fn1 = lambda x: x * (x - 2.0) * (x - 3.0)
fn2 = lambda x: numpy.fabs(x * (x - 2.0) * (x - 3.0))
fn3 = lambda x: (lambda x: 0.0 if x < 0.0 else x)(x * (x - 2.0) * (x - 3.0))
xmin = (5.0 + numpy.sqrt(7.0)) / 3.0
for e in [10, 1, 1e-1, 1e-5, 1e-8, 1e-10, 1e-12, 1e-14, 1e-15, 5e-16, 1e-16]:
st, xm, n, pn, gn = brent.optim(fn1, 1.1, 20.1, e, 10000)
df1 = df1.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,),
'delta' : numpy.fabs(xm - xmin)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim(fn2, 1.1, 2.5, e, 10000)
df2 = df2.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim(fn3, 1.1, 20.1, e, 10000)
df3 = df3.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim(fn1, 1.1, 20.1, e, 10000)
df1_ = df1_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,),
'delta' : numpy.fabs(xm - xmin)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim(fn2, 1.1, 2.5, e, 10000)
df2_ = df2_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim(fn3, 1.1, 20.1, e, 10000)
df3_ = df3_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
df1
df2
df3
df1_
df2_
df3_
fig, ax = plt.subplots(3, 2, figsize=(40, 40), sharex='col', sharey='row')
x1 = numpy.linspace(1.0, 3.5, 5000)
x2 = numpy.linspace(1.0, 3.5, 5000)
x3 = numpy.linspace(1.0, 3.5, 5000)
ax[0, 0].plot(x1, fn1(x1), color='black', linestyle='solid')
ax[0, 0].set(xlim=(1.0, 3.5), ylim=(-1.0, 0.0))
ax[0, 0].set_title('optim')
m00 = df1.loc[df1['status'] == 0]['xmin'].values
ax[0, 0].scatter(m00, fn1(m00), s= 40, color='red')
ax[0, 1].plot(x1, fn1(x1), color='black', linestyle='solid')
ax[0, 1].set(xlim=(1.0, 3.5))
ax[0, 1].set_title('optim_')
m01 = df1_.loc[df1_['status'] == 0]['xmin'].values
ax[0, 1].scatter(m01, fn1(m01), s= 40, color='red')
ax[1, 0].plot(x2, fn2(x2), color='black', linestyle='solid')
ax[1, 0].set(xlim=(1.0, 3.5))
ax[1, 0].set_title('optim')
m10 = df2.loc[df2['status'] == 0]['xmin'].values
ax[1, 0].scatter(m10, fn2(m10), s= 40, color='red')
ax[1, 1].plot(x2, fn2(x2), color='black', linestyle='solid')
ax[1, 1].set(xlim=(1.0, 3.5))
ax[1, 1].set_title('optim_')
m11 = df2_.loc[df2_['status'] == 0]['xmin'].values
ax[1, 1].scatter(m11, fn2(m11), s= 40, color='red')
ax[2, 0].plot(x3, numpy.vectorize(fn3)(x3), color='black', linestyle='solid')
ax[2, 0].set(xlim=(1.0, 3.5), ylim=(-0.1, 1.0))
ax[2, 0].set_title('optim')
m20 = df3.loc[df3['status'] == 0]['xmin'].values
ax[2, 0].scatter(m20, numpy.vectorize(fn3)(m20), s= 40, color='red')
ax[2, 1].plot(x3, numpy.vectorize(fn3)(x3), color='black', linestyle='solid')
ax[2, 1].set(xlim=(1.0, 3.5))
ax[2, 1].set_title('optim_')
m21 = df3_.loc[df3_['status'] == 0]['xmin'].values
ax[2, 1].scatter(m21, numpy.vectorize(fn3)(m21), s= 40, color='red')
df1 = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)', '|xmin - pi^0.5|'])
df1_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)', '|xmin - pi^0.5|'])
df2 = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)', '|xmin - (2pi)^0.5|'])
df2_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)', '|xmin - (2pi)^0.5|'])
df3 = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
df3_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
fn1 = lambda x: numpy.fabs(numpy.sin(x ** 2))
fn2 = lambda x: numpy.fabs(numpy.sin(x ** 2))
fn3 = lambda x: (lambda x: 0.0 if x < 0.0 else x)(numpy.sin(x ** 2))
for e in [10, 1, 1e-1, 1e-5, 1e-8, 1e-10, 1e-12, 1e-14, 5e-16, 1e-16]:
st, xm, n, pn, gn = brent.optim(fn1, 1.5, 2.0, e, 10000)
df1 = df1.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,),
'|xmin - pi^0.5|' : '%.15e' % (numpy.fabs(xm - numpy.sqrt(numpy.pi)),)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim_(fn1, 1.5, 2.0, e, 10000)
df1_ = df1_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,),
'|xmin - pi^0.5|' : '%.15e' % (numpy.fabs(xm - numpy.sqrt(numpy.pi)),)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim(fn2, 2.3, 2.7, e, 10000)
df2 = df2.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,),
'|xmin - (2pi)^0.5|' : '%.15e' % (numpy.fabs(xm - numpy.sqrt(2.0 * numpy.pi)),)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim_(fn2, 2.3, 2.7, e, 10000)
df2_ = df2_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,),
'|xmin - (2pi)^0.5|' : '%.15e' % (numpy.fabs(xm - numpy.sqrt(2.0 * numpy.pi)),)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim(fn3, 1.5, 2.0, e, 10000)
df3 = df3.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim_(fn3, 1.5, 2.0, e, 10000)
df3_ = df3_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
df1
df2
df3
df1_
df2_
df3_
fig, ax = plt.subplots(2, 2, figsize=(30, 10), sharex='col', sharey='row')
x = numpy.linspace(0.5, 3.0, 6000)
ax[0, 0].plot(x, fn1(x), color='black', linestyle='solid')
ax[0, 0].set(xlim=(0.5, 3.0), ylim=(-0.1, 1.1), xlabel='x', ylabel='|sin x^2|')
ax[0, 0].set_title('optim')
m1 = df1.loc[df1['status'] == 0]['xmin'].values
ax[0, 0].scatter(m1, fn1(m1), s= 40, color='red')
m2 = df2.loc[df2['status'] == 0]['xmin'].values
ax[0, 0].scatter(m2, fn2(m2), s= 40, color='red')
ax[0, 1].plot(x, fn1(x), color='black', linestyle='solid')
ax[0, 1].set(xlim=(0.5, 3.0), ylim=(-0.1, 1.1), xlabel='x', ylabel='|sin x^2|')
ax[0, 1].set_title('optim_')
m1_ = df1_.loc[df1_['status'] == 0]['xmin'].values
ax[0, 1].scatter(m1_, fn1(m1_), s= 40, color='red')
m2_ = df2_.loc[df2_['status'] == 0]['xmin'].values
ax[0, 1].scatter(m2_, fn2(m2_), s= 40, color='red')
ax[1, 0].plot(x, numpy.vectorize(fn3)(x), color='black', linestyle='solid')
ax[1, 0].set(xlim=(0.5, 3.0), ylim=(-0.1, 1.1))
ax[1, 0].set_title('optim')
m3 = df3.loc[df3['status'] == 0]['xmin'].values
ax[1, 0].scatter(m3, numpy.vectorize(fn3)(m3), s= 40, color='red')
ax[1, 1].plot(x, numpy.vectorize(fn3)(x), color='black', linestyle='solid')
ax[1, 1].set(xlim=(0.5, 3.0), ylim=(-0.1, 1.1))
ax[1, 1].set_title('optim_')
m3_ = df3_.loc[df3_['status'] == 0]['xmin'].values
ax[1, 1].scatter(m3_, numpy.vectorize(fn3)(m3_), s= 40, color='red')
df1 = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)', '|xmin - pi|'])
df1_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)', '|xmin - pi|'])
df2 = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)', '|xmin - 2pi|'])
df2_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)', '|xmin - 2pi|'])
df3 = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
df3_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
fn1 = lambda x: numpy.fabs(numpy.exp(0.1 * x) * numpy.sin(x))
fn2 = lambda x: numpy.fabs(numpy.exp(0.1 * x) * numpy.sin(x))
fn3 = lambda x: (lambda x: 0.0 if x < 0.0 else x)(numpy.exp(0.1 * x) * numpy.sin(x))
for e in [10, 1, 1e-1, 1e-5, 1e-8, 1e-10, 1e-12, 1e-14, 5e-16, 1e-16]:
st, xm, n, pn, gn = brent.optim(fn1, 2.0, 4.5, e, 10000)
df1 = df1.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,),
'|xmin - pi|' : '%.15e' % (numpy.fabs(xm - numpy.pi),)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim_(fn1, 2.0, 4.5, e, 10000)
df1_ = df1_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,),
'|xmin - pi|' : '%.15e' % (numpy.fabs(xm - numpy.pi),)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim(fn2, 4.9, 7.5, e, 10000)
df2 = df2.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,),
'|xmin - 2pi|' : '%.15e' % (numpy.fabs(xm - 2.0 * numpy.pi),)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim_(fn2, 4.9, 7.5, e, 10000)
df2_ = df2_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,),
'|xmin - 2pi|' : '%.15e' % (numpy.fabs(xm - 2.0 * numpy.pi),)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim(fn3, 2.5, 7.5, e, 10000)
df3 = df3.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim_(fn3, 2.5, 7.5, e, 10000)
df3_ = df3_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
df1
df2
df3
df1_
df2_
df3_
fig, ax = plt.subplots(2, 2, figsize=(30, 10), sharex='col', sharey='row')
x = numpy.linspace(2.5, 7.5, 6000)
ax[0, 0].plot(x, fn1(x), color='black', linestyle='solid')
ax[0, 0].set(xlim=(2.5, 7.5), ylim=(-0.1, 1.7), xlabel='x', ylabel='|sin x^2|')
ax[0, 0].set_title('optim')
m1 = df1.loc[df1['status'] == 0]['xmin'].values
ax[0, 0].scatter(m1, fn1(m1), s= 40, color='red')
m2 = df2.loc[df2['status'] == 0]['xmin'].values
ax[0, 0].scatter(m2, fn2(m2), s= 40, color='red')
ax[0, 1].plot(x, fn1(x), color='black', linestyle='solid')
ax[0, 1].set(xlim=(2.5, 7.5), ylim=(-0.1, 1.7), xlabel='x', ylabel='|sin x^2|')
ax[0, 1].set_title('optim_')
m1_ = df1_.loc[df1_['status'] == 0]['xmin'].values
ax[0, 1].scatter(m1_, fn1(m1_), s= 40, color='red')
m2_ = df2_.loc[df2_['status'] == 0]['xmin'].values
ax[0, 1].scatter(m2_, fn2(m2_), s= 40, color='red')
ax[1, 0].plot(x, numpy.vectorize(fn3)(x), color='black', linestyle='solid')
ax[1, 0].set(xlim=(2.5, 7.5), ylim=(-0.1, 1.7))
ax[1, 0].set_title('optim')
m3 = df3.loc[df3['status'] == 0]['xmin'].values
ax[1, 0].scatter(m3, numpy.vectorize(fn3)(m3), s= 40, color='red')
ax[1, 1].plot(x, numpy.vectorize(fn3)(x), color='black', linestyle='solid')
ax[1, 1].set(xlim=(2.5, 7.5), ylim=(-0.1, 1.7))
ax[1, 1].set_title('optim_')
m3_ = df3_.loc[df3_['status'] == 0]['xmin'].values
ax[1, 1].scatter(m3_, numpy.vectorize(fn3)(m3_), s= 40, color='red')
df = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
df_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
fn = lambda x: -5.0 * x**5 + 4.0 * x**4 - 12.0 * x**3 + 11.0 * x**2 - 2.0 * x + 1.0
for e in [10, 1, 1e-1, 1e-5, 1e-8, 1e-10, 1e-12, 1e-14, 1e-15, 5e-16, 1e-16]:
st, xm, n, pn, gn = brent.optim(fn, -0.5, 0.5, e, 10000)
df = df.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim_(fn, -0.5, 0.5, e, 10000)
df_ = df_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
df
df_
fig, ax = plt.subplots(1, 2, figsize=(30, 10), sharex='col', sharey='row')
x = numpy.linspace(-0.5, 0.5, 5000)
ax[0].plot(x, fn(x), color='black', linestyle='solid')
ax[0].set(xlim=(-0.7, 0.7))
m0 = df.loc[df['status'] == 0]['xmin'].values
ax[0].scatter(m0, fn(m0), s= 40, color='red')
ax[0].set_title('optim')
ax[1].plot(x, fn(x), color='black', linestyle='solid')
ax[1].set(xlim=(-0.7, 0.7))
m1 = df_.loc[df_['status'] == 0]['xmin'].values
ax[1].scatter(m1, fn(m1), s= 40, color='red')
ax[1].set_title('optim_')
df = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
df_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
fn = lambda x: - numpy.log(x - 2.0) ** 2 + numpy.log(10.0 - x) ** 2 - numpy.power(x, 0.2)
for e in [10, 1, 1e-1, 1e-5, 1e-8, 1e-10, 1e-12, 1e-14, 1e-15, 5e-16, 1e-16]:
st, xm, n, pn, gn = brent.optim(fn, 6.0, 9.9, e, 10000)
df = df.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim_(fn, 6.0, 9.9, e, 10000)
df_ = df_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
df
df_
fig, ax = plt.subplots(1, 2, figsize=(30, 10), sharex='col', sharey='row')
x = numpy.linspace(6.0, 9.9, 5000)
ax[0].plot(x, fn(x), color='black', linestyle='solid')
ax[0].set(xlim=(6.0, 10.0))
m0 = df.loc[df['status'] == 0]['xmin'].values
ax[0].scatter(m0, fn(m0), s= 40, color='red')
ax[0].set_title('optim')
ax[1].plot(x, fn(x), color='black', linestyle='solid')
ax[1].set(xlim=(6.0, 10.0))
m1 = df_.loc[df_['status'] == 0]['xmin'].values
ax[1].scatter(m1, fn(m1), s= 40, color='red')
ax[1].set_title('optim_')
df = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
df_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
fn = lambda x: - 3.0 * x * numpy.sin(0.75 * x) + numpy.exp(-2.0 * x)
for e in [10, 1, 1e-1, 1e-5, 1e-8, 1e-10, 1e-12, 1e-14, 1e-15, 5e-16, 1e-16]:
st, xm, n, pn, gn = brent.optim(fn, 0.0, 2.0 * numpy.pi, e, 10000)
df = df.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim_(fn, 0.0, 2.0 * numpy.pi, e, 10000)
df_ = df_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
df
df_
fig, ax = plt.subplots(1, 2, figsize=(30, 10), sharex='col', sharey='row')
x = numpy.linspace(0.0, 2.0 * numpy.pi, 5000)
ax[0].plot(x, fn(x), color='black', linestyle='solid')
ax[0].set(xlim=(0.0, 2.0 * numpy.pi))
m0 = df.loc[df['status'] == 0]['xmin'].values
ax[0].scatter(m0, fn(m0), s= 40, color='red')
ax[0].set_title('optim')
ax[1].plot(x, fn(x), color='black', linestyle='solid')
ax[1].set(xlim=(0.0, 2.0 * numpy.pi))
m1 = df_.loc[df_['status'] == 0]['xmin'].values
ax[1].scatter(m1, fn(m1), s= 40, color='red')
ax[1].set_title('optim_')
df = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
df_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
fn = lambda x: numpy.exp(3.0 * x) + 5.0 * numpy.exp(-2.0 * x)
for e in [10, 1, 1e-1, 1e-5, 1e-8, 1e-10, 1e-12, 1e-14, 1e-15, 5e-16, 1e-16]:
st, xm, n, pn, gn = brent.optim(fn, 0.0, 1.0, e, 10000)
df = df.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim_(fn, 0.0, 1.0, e, 10000)
df_ = df_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
df
df_
fig, ax = plt.subplots(1, 2, figsize=(30, 10), sharex='col', sharey='row')
x = numpy.linspace(0.0, 1.0, 5000)
ax[0].plot(x, fn(x), color='black', linestyle='solid')
ax[0].set(xlim=(0.0, 1.0))
m0 = df.loc[df['status'] == 0]['xmin'].values
ax[0].scatter(m0, fn(m0), s= 40, color='red')
ax[0].set_title('optim')
ax[1].plot(x, fn(x), color='black', linestyle='solid')
ax[1].set(xlim=(0.0, 1.0))
m1 = df_.loc[df_['status'] == 0]['xmin'].values
ax[1].scatter(m1, fn(m1), s= 40, color='red')
ax[1].set_title('optim_')
df = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
df_ = pandas.DataFrame(columns=['status', 'eps', 'n', 'pn', 'gn', 'xmin', 'str(xmin)'])
fn = lambda x: 0.2 * x * numpy.log(x) + (x - 2.3)**2
for e in [10, 1, 1e-1, 1e-5, 1e-8, 1e-10, 1e-12, 1e-14, 1e-15, 5e-16, 1e-16]:
st, xm, n, pn, gn = brent.optim(fn, 0.5, 2.5, e, 10000)
df = df.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
st, xm, n, pn, gn = brent.optim_(fn, 0.5, 2.5, e, 10000)
df_ = df_.append({'status' : st,
'eps' : e,
'n' : n,
'pn' : pn,
'gn' : gn,
'xmin' : xm,
'str(xmin)' : '%.15e' % (xm,)},
ignore_index=True)
df
df_
fig, ax = plt.subplots(1, 2, figsize=(30, 10), sharex='col', sharey='row')
x = numpy.linspace(0.5, 2.5, 5000)
ax[0].plot(x, fn(x), color='black', linestyle='solid')
ax[0].set(xlim=(0.5, 2.5))
m0 = df.loc[df['status'] == 0]['xmin'].values
ax[0].scatter(m0, fn(m0), s= 40, color='red')
ax[0].set_title('optim')
ax[1].plot(x, fn(x), color='black', linestyle='solid')
ax[1].set(xlim=(0.5, 2.5))
m1 = df_.loc[df_['status'] == 0]['xmin'].values
ax[1].scatter(m1, fn(m1), s= 40, color='red')
ax[1].set_title('optim_')