update
This commit is contained in:
parent
4a3f1f38f4
commit
6d94f93a06
|
@ -13,67 +13,14 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 2,
|
"execution_count": null,
|
||||||
"id": "302d9c60",
|
"id": "302d9c60",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"slideshow": {
|
"slideshow": {
|
||||||
"slide_type": "fragment"
|
"slide_type": "fragment"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"outputs": [
|
"outputs": [],
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
|
||||||
"model_id": "86e09e87d3d243f0af56049a842d6698",
|
|
||||||
"version_major": 2,
|
|
||||||
"version_minor": 0
|
|
||||||
},
|
|
||||||
"text/plain": [
|
|
||||||
"VBox(children=(HBox(children=(Text(value='(x - 2)**2 + 3', description='Expression:', style=TextStyle(descript…"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "display_data"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
|
||||||
"model_id": "4679ad18b0a843a3ac5c26c2d24e487a",
|
|
||||||
"version_major": 2,
|
|
||||||
"version_minor": 0
|
|
||||||
},
|
|
||||||
"text/plain": [
|
|
||||||
"Output()"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "display_data"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
|
||||||
"model_id": "c6b74ac5faf745c987818905702c6727",
|
|
||||||
"version_major": 2,
|
|
||||||
"version_minor": 0
|
|
||||||
},
|
|
||||||
"text/plain": [
|
|
||||||
"Output()"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "display_data"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"text/plain": [
|
|
||||||
"<optimization.common.funcPlot1d at 0x2497c3f6988>"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"execution_count": 2,
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "execute_result"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
"source": [
|
||||||
"funcPlot1d(environ=\"jupyterlab\")"
|
"funcPlot1d(environ=\"jupyterlab\")"
|
||||||
]
|
]
|
||||||
|
@ -87,7 +34,7 @@
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
"application/vnd.jupyter.widget-view+json": {
|
||||||
"model_id": "94c8fcd7d47345f39693929fc45b99da",
|
"model_id": "776f68cc5732452382ee39d4ac337bba",
|
||||||
"version_major": 2,
|
"version_major": 2,
|
||||||
"version_minor": 0
|
"version_minor": 0
|
||||||
},
|
},
|
||||||
|
@ -101,7 +48,7 @@
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
"application/vnd.jupyter.widget-view+json": {
|
||||||
"model_id": "423bc193ec53442990eed7db0806f14b",
|
"model_id": "0032d539590641b484466da05a125e19",
|
||||||
"version_major": 2,
|
"version_major": 2,
|
||||||
"version_minor": 0
|
"version_minor": 0
|
||||||
},
|
},
|
||||||
|
@ -115,7 +62,7 @@
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
"application/vnd.jupyter.widget-view+json": {
|
||||||
"model_id": "8360d028706b474dbc4149bb2b068f42",
|
"model_id": "cdc7760b287b4a7881f0c2288ddcb0af",
|
||||||
"version_major": 2,
|
"version_major": 2,
|
||||||
"version_minor": 0
|
"version_minor": 0
|
||||||
},
|
},
|
||||||
|
@ -125,82 +72,39 @@
|
||||||
},
|
},
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "display_data"
|
"output_type": "display_data"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"data": {
|
||||||
|
"text/plain": [
|
||||||
|
"<optimization.gradient.gd_1d at 0x1a753d29748>"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"execution_count": 3,
|
||||||
|
"metadata": {},
|
||||||
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"source": [
|
"source": [
|
||||||
"a = gd_1d(environ=\"jupyterlab\")"
|
"gd_1d(environ=\"jupyterlab\")"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 4,
|
"execution_count": null,
|
||||||
"id": "7c589589",
|
"id": "7c589589",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"slideshow": {
|
"slideshow": {
|
||||||
"slide_type": "fragment"
|
"slide_type": "fragment"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"outputs": [
|
"outputs": [],
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
|
||||||
"model_id": "30975d9af00044e7b57d027118c6c640",
|
|
||||||
"version_major": 2,
|
|
||||||
"version_minor": 0
|
|
||||||
},
|
|
||||||
"text/plain": [
|
|
||||||
"VBox(children=(HBox(children=(Text(value='(1 - 8 * x1 + 7 * x1^2 - (7/3) * x1^3 + (1/4) * x1^4) * x2^2 * E^(-x…"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "display_data"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
|
||||||
"model_id": "062e1315bcb94b6a80f29a07988b4c80",
|
|
||||||
"version_major": 2,
|
|
||||||
"version_minor": 0
|
|
||||||
},
|
|
||||||
"text/plain": [
|
|
||||||
"Output()"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "display_data"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
|
||||||
"model_id": "fbc96b978cc74fa4be00db2472e013bc",
|
|
||||||
"version_major": 2,
|
|
||||||
"version_minor": 0
|
|
||||||
},
|
|
||||||
"text/plain": [
|
|
||||||
"Output()"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "display_data"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"text/plain": [
|
|
||||||
"<optimization.common.funcPlot2d at 0x2497ca416c8>"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"execution_count": 4,
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "execute_result"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
"source": [
|
||||||
"funcPlot2d(environ=\"jupyterlab\")"
|
"funcPlot2d(environ=\"jupyterlab\")"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 5,
|
"execution_count": 2,
|
||||||
"id": "f28bd167",
|
"id": "f28bd167",
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"slideshow": {
|
"slideshow": {
|
||||||
|
@ -211,7 +115,7 @@
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
"application/vnd.jupyter.widget-view+json": {
|
||||||
"model_id": "944932c7e971408fb0b9fd55db5ef8ef",
|
"model_id": "3ad25604b04c4023a838429d3ceccbaa",
|
||||||
"version_major": 2,
|
"version_major": 2,
|
||||||
"version_minor": 0
|
"version_minor": 0
|
||||||
},
|
},
|
||||||
|
@ -225,7 +129,7 @@
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
"application/vnd.jupyter.widget-view+json": {
|
||||||
"model_id": "0a891ac310934c5a87ebd3b5823280f4",
|
"model_id": "d913b214c8a54e1897eb161fdc41d04f",
|
||||||
"version_major": 2,
|
"version_major": 2,
|
||||||
"version_minor": 0
|
"version_minor": 0
|
||||||
},
|
},
|
||||||
|
@ -239,7 +143,7 @@
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
"application/vnd.jupyter.widget-view+json": {
|
||||||
"model_id": "e5e92badf1314caead45d0a4449b4f86",
|
"model_id": "39765310aa524308a29842b1770f7f3c",
|
||||||
"version_major": 2,
|
"version_major": 2,
|
||||||
"version_minor": 0
|
"version_minor": 0
|
||||||
},
|
},
|
||||||
|
@ -253,7 +157,7 @@
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
"application/vnd.jupyter.widget-view+json": {
|
||||||
"model_id": "cda4607f74174db99302cf283ac433ff",
|
"model_id": "6d9886e39bd44ab39269fb3cd8e27af0",
|
||||||
"version_major": 2,
|
"version_major": 2,
|
||||||
"version_minor": 0
|
"version_minor": 0
|
||||||
},
|
},
|
||||||
|
@ -267,10 +171,10 @@
|
||||||
{
|
{
|
||||||
"data": {
|
"data": {
|
||||||
"text/plain": [
|
"text/plain": [
|
||||||
"<optimization.gradient.gd2d at 0x2497ca373c8>"
|
"<optimization.gradient.gd2d at 0x1a752773f88>"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"execution_count": 5,
|
"execution_count": 2,
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"output_type": "execute_result"
|
"output_type": "execute_result"
|
||||||
}
|
}
|
||||||
|
@ -281,56 +185,12 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"cell_type": "code",
|
"cell_type": "code",
|
||||||
"execution_count": 6,
|
"execution_count": null,
|
||||||
"id": "d5651fc9-3fcd-4e91-8d3c-04897da1ea02",
|
"id": "d5651fc9-3fcd-4e91-8d3c-04897da1ea02",
|
||||||
"metadata": {},
|
"metadata": {},
|
||||||
"outputs": [
|
"outputs": [],
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
|
||||||
"model_id": "1f5790f38fa84928ab10f07d6b58a6ba",
|
|
||||||
"version_major": 2,
|
|
||||||
"version_minor": 0
|
|
||||||
},
|
|
||||||
"text/plain": [
|
|
||||||
"VBox(children=(HBox(children=(Dropdown(options=(('(1 - 8 * x1 + 7 * x1**2 - (7/3) * x1**3 + (1/4) * x1**4) * x…"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "display_data"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
|
||||||
"model_id": "f97ea7fc5f23421a87f1d01f00454fdc",
|
|
||||||
"version_major": 2,
|
|
||||||
"version_minor": 0
|
|
||||||
},
|
|
||||||
"text/plain": [
|
|
||||||
"Output()"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "display_data"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"data": {
|
|
||||||
"application/vnd.jupyter.widget-view+json": {
|
|
||||||
"model_id": "379c84bb6ef54e8bbf679357ae5efada",
|
|
||||||
"version_major": 2,
|
|
||||||
"version_minor": 0
|
|
||||||
},
|
|
||||||
"text/plain": [
|
|
||||||
"Output()"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"metadata": {},
|
|
||||||
"output_type": "display_data"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"source": [
|
"source": [
|
||||||
"from optimization.gradient import *\n",
|
"gd2d_compete(environ=\"jupyterlab\")"
|
||||||
"a = gd2d_compete(environ=\"jupyterlab\")"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -35,7 +35,7 @@ class gd_1d(object):
|
||||||
description="Expression:",
|
description="Expression:",
|
||||||
style={'description_width': 'initial'})
|
style={'description_width': 'initial'})
|
||||||
self.wg_x0 = widgets.FloatText(value="2",
|
self.wg_x0 = widgets.FloatText(value="2",
|
||||||
description="Startpoint:",
|
description="Startpoint(x):",
|
||||||
style={'description_width': 'initial'})
|
style={'description_width': 'initial'})
|
||||||
self.wg_lr = widgets.FloatText(value="1e-1",
|
self.wg_lr = widgets.FloatText(value="1e-1",
|
||||||
description="step size:",
|
description="step size:",
|
||||||
|
@ -44,10 +44,10 @@ class gd_1d(object):
|
||||||
description="criterion:",
|
description="criterion:",
|
||||||
style={'description_width': 'initial'})
|
style={'description_width': 'initial'})
|
||||||
self.wg_max_iter = widgets.IntText(value="1000",
|
self.wg_max_iter = widgets.IntText(value="1000",
|
||||||
description="max iteration",
|
description="max iteration:",
|
||||||
style={'description_width': 'initial'})
|
style={'description_width': 'initial'})
|
||||||
self.wg_x_range = widgets.Text(value="-2,5",
|
self.wg_x_range = widgets.Text(value="-2,5",
|
||||||
description="X-axis range",
|
description="X-axis range:",
|
||||||
style={"description_width": "initial"})
|
style={"description_width": "initial"})
|
||||||
|
|
||||||
self.button_compute = widgets.Button(description="Compute")
|
self.button_compute = widgets.Button(description="Compute")
|
||||||
|
@ -107,7 +107,7 @@ class gd_1d(object):
|
||||||
tangent_x, tangent_y = [], []
|
tangent_x, tangent_y = [], []
|
||||||
normal_x, normal_y = [], []
|
normal_x, normal_y = [], []
|
||||||
for i in range(0, len(f_xn)):
|
for i in range(0, len(f_xn)):
|
||||||
xrange = np.linspace(np.array(self.xn_list)[i]-0.5, np.array(self.xn_list)[i]+0.5, 10)
|
xrange = np.linspace(np.array(self.xn_list)[i]-0.25, np.array(self.xn_list)[i]+0.25, 10)
|
||||||
tangent_line = self.df_list[i] * (x - np.array(self.xn_list)[i]) + f_xn[i]
|
tangent_line = self.df_list[i] * (x - np.array(self.xn_list)[i]) + f_xn[i]
|
||||||
normal_line = (-1/(self.df_list[i]))*(x - np.array(self.xn_list)[i]) + f_xn[i]
|
normal_line = (-1/(self.df_list[i]))*(x - np.array(self.xn_list)[i]) + f_xn[i]
|
||||||
tangent_x.append(xrange)
|
tangent_x.append(xrange)
|
||||||
|
@ -119,18 +119,19 @@ class gd_1d(object):
|
||||||
#fig.add_scatter(x=xx1, y=fx)
|
#fig.add_scatter(x=xx1, y=fx)
|
||||||
|
|
||||||
fig.add_trace(go.Scatter(x=xx1, y=fx))
|
fig.add_trace(go.Scatter(x=xx1, y=fx))
|
||||||
fig.add_traces(go.Scatter(x=None, y=None, mode="lines + markers", line={"color":"#de1032", "width":3, 'dash': 'dash'}))
|
fig.add_traces(go.Scatter(x=None, y=None, mode="lines + markers", marker=dict(size=10), line={"color":"#de1032", "width":3, 'dash': 'dash'}))
|
||||||
fig.add_traces(go.Scatter(x=None, y=None, mode="lines", line={"color":"#debc10", "width":3, 'dash': 'dash'}))
|
fig.add_traces(go.Scatter(x=None, y=None, mode="lines", line={"color":"#debc10", "width":3, 'dash': 'dash'}))
|
||||||
fig.add_traces(go.Scatter(x=None, y=None, mode="lines", line={"color":"#de3210", "width":3, 'dash': 'dash'}))
|
fig.add_traces(go.Scatter(x=None, y=None, mode="lines", line={"color":"#de3210", "width":3, 'dash': 'dash'}))
|
||||||
frames = [go.Frame(data=[go.Scatter(x=xx1, y=fx),
|
frames = [go.Frame(data=[go.Scatter(x=xx1, y=fx),
|
||||||
go.Scatter(x=np.array(self.xn_list)[:k], y=f_xn),
|
go.Scatter(x=np.array(self.xn_list)[:k+1], y=f_xn),
|
||||||
go.Scatter(x=tangent_x[k], y=tangent_y[k]),
|
go.Scatter(x=tangent_x[k], y=tangent_y[k]),
|
||||||
go.Scatter(x=normal_x[k], y=normal_y[k])],
|
go.Scatter(x=normal_x[k], y=normal_y[k])],
|
||||||
traces= [0, 1, 2, 3]) for k in range(len(f_xn))]
|
traces= [0, 1, 2, 3]) for k in range(len(f_xn))]
|
||||||
fig.frames = frames
|
fig.frames = frames
|
||||||
button_play = dict(label="Play", method="animate", args=[None, dict(fromcurrent=True, transition=dict(duration=0), frame=dict(redraw=True, duration=1000))])
|
button_play = dict(label="Play", method="animate", args=[None, dict(fromcurrent=True, transition=dict(duration=0), frame=dict(redraw=True, duration=2000))])
|
||||||
button_pause = dict(label="Pause", method="animate", args=[[None], dict(fromcurrent=True, mode='immediate', transition={'duration': 0}, frame=dict(redraw=True, duration=0))])
|
button_pause = dict(label="Pause", method="animate", args=[[None], dict(fromcurrent=True, mode='immediate', transition={'duration': 0}, frame=dict(redraw=True, duration=0))])
|
||||||
fig.update_layout(height=800, updatemenus=[dict(type="buttons",buttons=[button_play, button_pause, button_tangent])])
|
fig.update_layout(height=800, updatemenus=[dict(type="buttons",buttons=[button_play, button_pause])])
|
||||||
|
fig.update_yaxes(scaleanchor = "x", scaleratio = 1)
|
||||||
fig.show()
|
fig.show()
|
||||||
|
|
||||||
|
|
||||||
|
@ -244,11 +245,11 @@ class gd2d(object):
|
||||||
fig.add_trace(go.Scatter3d(x=None, y=None, z=None, marker=dict(size=5)), row=1, col=2)
|
fig.add_trace(go.Scatter3d(x=None, y=None, z=None, marker=dict(size=5)), row=1, col=2)
|
||||||
fig.add_trace(go.Scatter3d(x=None, y=None, z=None, marker=dict(size=5)), row=1, col=2)
|
fig.add_trace(go.Scatter3d(x=None, y=None, z=None, marker=dict(size=5)), row=1, col=2)
|
||||||
frames = [go.Frame(data=[go.Surface(visible=True, showscale=False, opacity=0.8),
|
frames = [go.Frame(data=[go.Surface(visible=True, showscale=False, opacity=0.8),
|
||||||
go.Scatter3d(x=np.array(self.xn_list)[:k,0], y=np.array(self.xn_list)[:k,1], z=f_xn, marker=dict(size=5), line={"color":"#10dedb", "width":3, 'dash': 'dash'}),
|
go.Scatter3d(x=np.array(self.xn_list)[:k,0], y=np.array(self.xn_list)[:k,1], z=f_xn, marker=dict(size=5), line={"color":"blue", "width":3, 'dash': 'dash'}),
|
||||||
go.Surface(visible=False, x=xx1_tangent, y=xx2_tangent, z=z[k]),
|
go.Surface(visible=False, x=xx1_tangent, y=xx2_tangent, z=z[k]),
|
||||||
go.Surface(visible=True, showscale=False, opacity=0.8),
|
go.Surface(visible=True, showscale=False, opacity=0.8),
|
||||||
go.Scatter3d(x=np.array(self.xn_list)[:k, 0], y=np.array(self.xn_list)[:k, 1], z=f_xn, line={"color":"#10dedb", "width":3, 'dash': 'dash'}),
|
go.Scatter3d(x=np.array(self.xn_list)[:k, 0], y=np.array(self.xn_list)[:k, 1], z=f_xn, line={"color":"blue", "width":3, 'dash': 'dash'}),
|
||||||
go.Scatter3d(x=np.array(self.xn_list)[:k, 0].flatten(), y=np.array(self.xn_list)[:k, 1].flatten(), z=z_offset.flatten(), marker=dict(size=5), line={"color":"#58de10", "width":3, 'dash': 'dash'})],
|
go.Scatter3d(x=np.array(self.xn_list)[:k, 0].flatten(), y=np.array(self.xn_list)[:k, 1].flatten(), z=z_offset.flatten(), marker=dict(size=5), line={"color":"green", "width":3, 'dash': 'dash'})],
|
||||||
traces=[0, 1, 2, 3, 4, 5]) for k in range(len(f_xn))]
|
traces=[0, 1, 2, 3, 4, 5]) for k in range(len(f_xn))]
|
||||||
fig.frames = frames
|
fig.frames = frames
|
||||||
self.fig_frames = frames
|
self.fig_frames = frames
|
||||||
|
@ -262,6 +263,7 @@ class gd2d(object):
|
||||||
yaxis_visible=True,
|
yaxis_visible=True,
|
||||||
zaxis_visible=True)
|
zaxis_visible=True)
|
||||||
fig.update_scenes(camera_projection_type = "orthographic")
|
fig.update_scenes(camera_projection_type = "orthographic")
|
||||||
|
fig.update_yaxes(scaleanchor = "x", scaleratio = 1)
|
||||||
fig.show()
|
fig.show()
|
||||||
|
|
||||||
def plot_contour(self, *args):
|
def plot_contour(self, *args):
|
||||||
|
@ -339,6 +341,7 @@ class gd2d_compete(object):
|
||||||
def compute(self, *args):
|
def compute(self, *args):
|
||||||
with self.compute_output:
|
with self.compute_output:
|
||||||
expr = sympify(self.wg_expr.value)
|
expr = sympify(self.wg_expr.value)
|
||||||
|
x1, x2 = symbols("x1 x2")
|
||||||
if self.timer == 0:
|
if self.timer == 0:
|
||||||
self.xn_p0_list, self.xn_p1_list = [], []
|
self.xn_p0_list, self.xn_p1_list = [], []
|
||||||
x0 = np.array(self.wg_x0.value.split(","), dtype=float)
|
x0 = np.array(self.wg_x0.value.split(","), dtype=float)
|
||||||
|
@ -352,8 +355,10 @@ class gd2d_compete(object):
|
||||||
x0_p1 = self.xn_p1_list[self.timer-1] + self.wg_lr.value * direction_p1
|
x0_p1 = self.xn_p1_list[self.timer-1] + self.wg_lr.value * direction_p1
|
||||||
self.xn_p0_list.append(x0_p0)
|
self.xn_p0_list.append(x0_p0)
|
||||||
self.xn_p1_list.append(x0_p1)
|
self.xn_p1_list.append(x0_p1)
|
||||||
|
f = lambdify((x1, x2), expr, "numpy")
|
||||||
|
f_xn = f(np.array([x0_p0, x0_p1])[:, 0], np.array([x0_p0, x0_p1])[:, 1])
|
||||||
clear_output(wait=True)
|
clear_output(wait=True)
|
||||||
print("a1({}): {}, a2({}): {}".format(self.timer, x0_p0, self.timer, x0_p1))
|
print("a1({}): {}, a2({}): {}".format(self.timer, np.append(x0_p0, f_xn[0]), self.timer,np.append(x0_p1, f_xn[1])))
|
||||||
|
|
||||||
def plot(self, *args):
|
def plot(self, *args):
|
||||||
with self.plot_output:
|
with self.plot_output:
|
||||||
|
|
Loading…
Reference in New Issue