Commit 4205dd1c authored by Littichai Buddaken's avatar Littichai Buddaken

Edited week13/Initial-Value.ipynb

parent f7f9d76a
...@@ -14,14 +14,25 @@ ...@@ -14,14 +14,25 @@
"\n", "\n",
"$g(x), h(x)$ - constraint functions\n", "$g(x), h(x)$ - constraint functions\n",
"\n", "\n",
"minimize $F(x)$ = maximize $-F(x)$\n" "minimize $F(x)$ = maximize $-F(x)$\n",
"\n",
"> จงหาค่า $x$ ในช่วง $[a,b]$ ที่ทำ $f(x)$ มีค่าน้อยที่สุด"
]
},
{
"cell_type": "markdown",
"metadata": {
"collapsed": true
},
"source": [
"![image](./images/initialvalue.png)"
] ]
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"> จงหาค่า $x$ ในช่วง $[a,b]$ ที่ทำ $f(x)$ มีค่าน้อยที่สุด\n", "\n",
"\n", "\n",
"## Bracketing\n", "## Bracketing\n",
"- $x = a$\n", "- $x = a$\n",
...@@ -29,6 +40,84 @@ ...@@ -29,6 +40,84 @@
"- กำหนดให้ $x = x + dx$ ไปเรื่อยๆ จนกว่า $f(x+dx) > f(x)$" "- กำหนดให้ $x = x + dx$ ไปเรื่อยๆ จนกว่า $f(x+dx) > f(x)$"
] ]
}, },
{
"cell_type": "code",
"execution_count": 99,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[-2.0, -1.9, -1.8, -1.7, -1.6, -1.5, -1.4, -1.3, -1.2, -1.1, -1.0, -0.9, -0.8, -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9]\n",
"[9.0, 8.41, 7.84, 7.289999999999999, 6.760000000000001, 6.25, 5.76, 5.29, 4.84, 4.41, 4.0, 3.6100000000000003, 3.24, 2.8899999999999997, 2.56, 2.25, 1.96, 1.69, 1.44, 1.21, 1.0, 0.81, 0.64, 0.49, 0.36, 0.25, 0.16000000000000003, 0.09000000000000008, 0.040000000000000036, 0.010000000000000009, 0.0, 0.010000000000000009, 0.040000000000000036, 0.09000000000000008, 0.15999999999999992, 0.25, 0.3600000000000003, 0.48999999999999977, 0.6400000000000001, 0.81]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f0d1b7d10b8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def f(x) :return x**2-2*x+1\n",
"from matplotlib import pyplot as plt\n",
"import numpy as np\n",
"x = [x/10 for x in range(-20,20,1)]\n",
"y = [f(xi) for xi in x]\n",
"print(x)\n",
"print(y)\n",
"a,b=-2,2\n",
"fa,fb =f(a),f(b)\n",
"plt.plot(x, y, 'r-')\n",
"plt.grid(True)\n",
"plt.show()\n",
"#x = a\n",
"#h = 0.01\n",
"#f(x+h),f(x+2h),f(x+3h)... \n",
"#f(x+i*h)<f(x+(i+1)*h)\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"solution xi: 1.0000000000000022 0.0\n"
]
}
],
"source": [
"\n",
"#def bracket(f,a=-2,b=2,h=0.01):\n",
"def bracket(f,**kwargs): #**kwargs input is key word agrument,dicinary\n",
" a = float (kwargs['a']) \n",
" b = float (kwargs['b'])\n",
" h = float (kwargs['h'])\n",
" xi = a \n",
" oldf = f(xi)\n",
" xi += h\n",
" newf =f(xi)\n",
" while newf < oldf :\n",
" oldf=newf\n",
" xi+=h\n",
" newf =f(xi)\n",
" xi -= h\n",
" print('solution xi: ',xi,f(xi))\n",
"#bracket(f)\n",
"bracket(f,a=-2,b=2,h=0.01)"
]
},
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": null,
...@@ -36,14 +125,88 @@ ...@@ -36,14 +125,88 @@
"collapsed": true "collapsed": true
}, },
"outputs": [], "outputs": [],
"source": [] "source": [
"def Identity():\n",
" "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Golden Section Search"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![image](./images/goldenratio.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$$\n",
"(1) \\to x_2 - x1 = 2Rh - h \\\\\n",
"(2) \\to x_1 - a = h' - Rh' \n",
"$$\n",
"แก้สมการหา $R$ จะได้\n",
"$$\n",
"2R - 1 = R(1-R) \\\\\n",
"R = \\frac{-1 + \\sqrt{5}}{2}\n",
"$$\n",
"จำนวนครั้งที่จะต้องใช้เพื่อหาคำตอบคือ\n",
"$$\n",
"n = -ln(R) ln(\\frac{\\epsilon}{|b-a|}\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import math "
]
},
{
"cell_type": "code",
"execution_count": 90,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"46"
]
},
"execution_count": 90,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from math import log as ln\n",
"R = (-1+5**0.5)/2\n",
"eps = 10**-9\n",
"a,b=-2,2\n",
"def n(a=-2,b=2,eps = 10**-9):\n",
" from math import log as ln\n",
" from math import ceil\n",
" R = (-1+5**0.5)/2\n",
" return int(ceil(-2.078087*ln(eps/abs(b-a))))\n",
"n()"
]
}, },
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"## Golden Section Search\n",
"\n",
"```python\n", "```python\n",
"def search(f,a,b,tol=1.0e-9):\n", "def search(f,a,b,tol=1.0e-9):\n",
" nIter = int(math.ceil(-2.078087*math.log(tol/abs(b-a))))\n", " nIter = int(math.ceil(-2.078087*math.log(tol/abs(b-a))))\n",
...@@ -68,6 +231,91 @@ ...@@ -68,6 +231,91 @@
"```" "```"
] ]
}, },
{
"cell_type": "code",
"execution_count": 110,
"metadata": {},
"outputs": [],
"source": [
"def f(x):return 4.8*x**2+6*x-2\n",
"def search(f,a,b,tol=10**-9):\n",
" N =n(a,b)\n",
" R = 0.618033989\n",
" C = 1.0 - R\n",
" # First telescoping\n",
" x1 = R*a + C*b; x2 = C*a + R*b\n",
" f1 = f(x1); f2 = f(x2)\n",
" # Main loop\n",
" for i in range(N):\n",
" if f1 > f2:\n",
" a = x1\n",
" x1 = x2; f1 = f2\n",
" x2 = C*a + R*b; f2 = f(x2)\n",
" else:\n",
" b = x2\n",
" x2 = x1; f2 = f1\n",
" x1 = R*a + C*b; f1 = f(x1)\n",
"\n",
" if f1 < f2: return x1,f1\n",
" return x2,f2\n"
]
},
{
"cell_type": "code",
"execution_count": 111,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(3.203906095884046e-10, -1.9999999980776564)"
]
},
"execution_count": 111,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"search(f,-2,2)\n",
"def f(x):return 4.8*x**2+6*x-2\n",
"search(f,0,100)"
]
},
{
"cell_type": "code",
"execution_count": 112,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\nlPmWAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f0d1b5943c8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"x = [x/10 for x in range(10,100,1)]\n",
"y = [f(xi) for xi in x]\n",
"plt.plot(x, y, 'r-')\n",
"plt.grid(True)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercise\n",
"1. จงเขียนโปรแกรมหา $x$ ที่จะทห้ให้ฟังก์ชัน $f(x) = 1.6x^3 + 3x^2 -2x$ มีค่าน้อยที่สุด ในช่วงค่า $x \\ge 0$\n",
"2. จงเขียนโปรแกรมหา $x$ ที่จะทห้ให้ฟังก์ชัน $f(x) = 4.8x^2 + 6x - 2$ มีค่าน้อยที่สุด ในช่วงค่า $x \\ge 0$\n"
]
},
{ {
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
...@@ -90,9 +338,20 @@ ...@@ -90,9 +338,20 @@
" * $v_i = v_{i+1}$ ($v_1$ is discarded; the other vectors are reused).\n", " * $v_i = v_{i+1}$ ($v_1$ is discarded; the other vectors are reused).\n",
" * End loop\n", " * End loop\n",
" * $x_0 = x_{n+1}$\n", " * $x_0 = x_{n+1}$\n",
"* End cycle\n", "* End cycle\n"
"\n", ]
"\n", },
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Powell](./images/powell.png)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"```python\n", "```python\n",
"import numpy as np\n", "import numpy as np\n",
"import math\n", "import math\n",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment