{"id":10543,"date":"2013-09-09T17:19:00","date_gmt":"2013-09-09T17:19:00","guid":{"rendered":"http:\/\/melotopia.net\/b\/?p=10543"},"modified":"2013-09-09T17:19:00","modified_gmt":"2013-09-09T17:19:00","slug":"%ec%88%98%ec%b9%98%ed%95%b4%ec%84%9d2-%ec%83%81%eb%af%b8%eb%b6%84%eb%b0%a9%ec%a0%95%ec%8b%9d","status":"publish","type":"post","link":"http:\/\/melotopia.net\/b\/?p=10543","title":{"rendered":"\uc218\uce58\ud574\uc11d2 &#8211; \uc0c1\ubbf8\ubd84\ubc29\uc815\uc2dd"},"content":{"rendered":"<div class=\"desc\">\n<div class=\"tt_article_useless_p_margin\">\n<p>\n          2\ubc88\uc774 \uc65c \uc774\uc81c \uc62c\ub77c\uc624\ub290\ub0d0\ub3c4 \uc5ed\uc2dc \uc758\ubbf8 \uc5c6\ub294 \uc9c8\ubb38\uc774\ub2e4.\n         <\/p>\n<p>\n\n<\/p>\n<p>\n          &#8212;<br \/>\n          \n<\/p>\n<p>\n          # Elementary Numerical analysis 2<br \/>\n          <br \/>\n          # based on Python<br \/>\n          <br \/>\n          # (C) 2013. Keehwan Nam, Dept. of physics, KAIST.<br \/>\n          <br \/>\n          # snowall@gmail.com \/ snowall@kaist.ac.kr<\/p>\n<p>          # Differential equation<br \/>\n          <br \/>\n          # \ucd94\ucc9c \ucc38\uace0\uc790\ub8cc: http:\/\/www.swarthmore.edu\/NatSci\/echeeve1\/Ref\/NumericInt\/FrameNumInt.html<\/p>\n<p>          # \ubbf8\ubd84\ubc29\uc815\uc2dd\uc740 \ubbf8\ubd84 \ubcc0\uc218\uac00 1\uac1c\uc778 \uc0c1\ubbf8\ubd84\ubc29\uc815\uc2dd(Ordinary differential equation:ODE)\uacfc 2\uac1c \uc774\uc0c1\uc778 \ud3b8\ubbf8\ubd84\ubc29\uc815\uc2dd(Partial differential equation:PDE)\uc73c\ub85c \ub098\ub220\uc9c4\ub2e4.<br \/>\n          <br \/>\n          # \uc77c\ub2e8 1\uac1c\uc778 \ubbf8\ubc29\uc744 \uc5b4\ub5bb\uac8c \ud478\ub294\uc9c0 \uc54c\uc544\ubcf4\uc790. \uc5f0\ub9bd \ubbf8\ubc29\uc740 \uc544\uc9c1 \ub2e4\ub8e8\uc9c0 \uc54a\uace0, \ub098\uc911\uc5d0 \ub2e4\ub8ec\ub2e4.<\/p>\n<p>          # ODE\ub294 \uc120\ud615 \ubbf8\ubc29\uacfc \ube44\uc120\ud615 \ubbf8\ubc29\uc73c\ub85c \ub098\ub220\uc9c4\ub2e4. \uc120\ud615\ubbf8\ubc29\uc740 \ubbf8\ubc29\uc758 \ud574\uac00 \ub450\uac1c \uc774\uc0c1 \uc788\uc744 \ub54c, \ub450 \ud574\uc758 \uc120\ud615\uacb0\ud569\ub3c4 \ud574\uac00 \ub418\ub294 \uacbd\uc6b0\uc774\ub2e4.<br \/>\n          <br \/>\n          # \uc989, f1\uacfc f2\uac00 \ubbf8\ubc29\uc758 \uc5f0\uc0b0\uc790 L\uc5d0 \ub300\ud574\uc11c L(f1)=L(f2)=0\uc77c \ub54c L(f1+f2)=0\uc774 \ub9cc\uc871\ub418\ub294 \uacbd\uc6b0\uc774\ub2e4. \ubb3c\ub860 \uadf8 \uc5ed\uc744 \uc120\ud615 \ubbf8\ubc29\uc774\ub77c\uace0 \ud558\uc9c0\ub294 \uc54a\ub294\ub2e4.<br \/>\n          <br \/>\n          # \ube44\uc120\ud615 \ubbf8\ubc29\uc740 \ud480\uae30 \uace8\uce58\uc544\ud504\ubbc0\ub85c \uc77c\ub2e8 \uc120\ud615 \ubbf8\ubc29\uc744 \uc5b4\ub5bb\uac8c \ud478\ub294\uc9c0 \uc54c\uc544\ubcf4\uc790.<\/p>\n<p>          # \uc120\ud615 \ubbf8\ubc29\uc740 \ub2e4\uc2dc \ucd5c\ub300 \ucc28\uc218\uc778 \ub3c4\ud568\uc218\uc5d0 \ub530\ub77c n\ucc28 \ubbf8\ubc29\uc73c\ub85c \uad6c\ubd84\ub41c\ub2e4. \uc989, \uac00\ub839 2\ucc28 \ub3c4\ud568\uc218\uac00 \ucd5c\ub300\ucc28\uc218\uc778 \ub3c4\ud568\uc218\ub77c\uba74 2\ucc28 \ubbf8\ubd84\ubc29\uc815\uc2dd\uc774 \ub41c\ub2e4.<\/p>\n<p>          # 1\ucc28 \uc774\uc0c1\uc758 \ubbf8\ubd84\uc744 \ud3ec\ud568\ud558\ub294 \uace0\ucc28 \ubbf8\ubd84\ubc29\uc815\uc2dd\uc740 \uc5ec\ub7ec\uac1c\uc758 \uc911\uac04 \ubcc0\uc218\ub97c \ub3c4\uc785\ud558\uc5ec 1\ucc28 \uc5f0\ub9bd \ubbf8\ubd84 \ubc29\uc815\uc2dd\uc73c\ub85c \uac04\uc8fc\ud560 \uc218 \uc788\ub2e4. \ub530\ub77c\uc11c, 1\ucc28 \ubbf8\ubd84\ubc29\uc815\uc2dd\uc744 \uc798 \ud480 \uc218 \uc788\ub2e4\uba74 \uace0\ucc28 \ubbf8\ubd84\ubc29\uc815\uc2dd\uc740 \uc190\uc27d\uac8c \ud480\ub9b0\ub2e4. \uadf8\ub7ec\ubbc0\ub85c 1\ucc28 \ubbf8\ubc29\uc5d0 \uc9d1\uc911\ud558\uc790.<br \/>\n          <br \/>\n          # 1\ucc28 \ubbf8\ubd84\ubc29\uc815\uc2dd\uc744 \uc774\uc0b0\ud654(discretize)\ud558\uac8c \ub418\uba74 \ucc28\ubd84\ubc29\uc815\uc2dd(difference dquation)\uc774 \ub41c\ub2e4. \ucc28\ubd84\ubc29\uc815\uc2dd\uc740 \uace0\ub4f1\ud559\uad50 \ub54c \ubc30\uc6b0\ub294 \uacc4\ucc28\uc218\uc5f4\uc758 \ud55c \ud615\ud0dc\uc774\ub2e4.<\/p>\n<p>          # \uadf8\ub7fc, \uc774\uc81c \ucc28\ubd84\ubc29\uc815\uc2dd\uc744 \ud480\uc5b4\ubcf4\uc790. \uac00\uc7a5 \uac04\ub2e8\ud558\uac8c, \uc624\uc77c\ub7ec \ud480\uc774\ubc95\uc774 \uc788\ub2e4.<\/p>\n<p>          # \uc624\uc77c\ub7ec \ud480\uc774\ubc95\uc5d0\uc11c\ub294 dy\/dt + a*y(t) = f(t) \ub77c\ub294 \ubb38\uc81c\ub97c \ud480\uac8c \ub41c\ub2e4. a\ub294 \uac12\uc744 \uc54c\uace0 \uc788\ub294 \uc0c1\uc218\uc774\uace0, f(t)\ub294 \uc774\ubbf8 \uc54c\uace0 \uc788\ub294 \ud568\uc218\uc774\ub2e4.<\/p>\n<p>          # \uc624\uc77c\ub7ec \ud480\uc774\ubc95\uc740 \uc815\ub9d0 \uac04\ub2e8\ud558\ub2e4. \uc8fc\uc5b4\uc9c4 \uc2dc\uac04 t\ub85c\ubd80\ud130 h\ub9cc\ud07c\uc758 \uc2dc\uac04\uc774 \uc9c0\ub09c \ud6c4\uc758 \uac12\uc778 y(t+h)\ub97c \ub2e4\uc74c\uacfc \uac19\uc774 \uadfc\uc0ac\ud55c\ub2e4.<br \/>\n          <br \/>\n          # y(t+h)=y(t)+(dy\/dt)h<br \/>\n          <br \/>\n          # \uc544\uc8fc \uac04\ub2e8\ud55c 1\ucc28 \uadfc\uc0ac\uac00 \ub418\uaca0\ub2e4. \uadf8\ub7fc, \uc774\uc81c y(t+h)\ub97c \uc54c\uc558\uc73c\ub2c8, \uac19\uc740 \ubc29\ubc95\uc73c\ub85c \ud55c\ubc88 \ub354 \uacc4\uc0b0\ud558\uba74 y(t+2h)\ub3c4 \uc54c\uc544\ub0bc \uc218 \uc788\ub2e4. \uc774 \uc791\uc5c5\uc744 \ubc18\ubcf5\ud558\uba74, y(t=t0)\ub97c \uc54c\uace0 \uc788\uc744 \ub54c \uc6b0\ub9ac\ub294 \uc544\uc8fc \ub9ce\uc740 \ubb38\uc81c\ub97c \ud480 \uc218 \uc788\uac8c \ub41c\ub2e4.<\/p>\n<p>          # y(t+h) = y(t)+(dy\/dt)h = y(t) + (- a*y(t) + f(t))*h<br \/>\n          <br \/>\n          # \uc798 \uc0dd\uac01\ud574\ubcf4\uba74, \uc774\uac83\uc740 \uc544\uc8fc \uac04\ub2e8\ud55c \ubc18\ubcf5\uc791\uc5c5\uc774 \ub41c\ub2e4. \uc774\ub97c \uc704\ud55c \ud30c\uc774\uc36c \ucf54\ub4dc\ub97c \uc4f4\ub2e4\uba74, \ub2e4\uc74c\uacfc \uac19\uc744 \uac83\uc774\ub2e4.<\/p>\n<p>          import numpy as np<br \/>\n          <br \/>\n          a=2.<br \/>\n          <br \/>\n          f = lambda x, 3.*np.exp(-4.*x)<br \/>\n          <br \/>\n          y0 = 0. # t=t0\uc77c\ub54c\uc758 \uac12\uc774\ub77c\uace0 \ud558\uc790.<br \/>\n          <br \/>\n          h = 0.1 # time slice\uac00 \ub41c\ub2e4. \uc774 \uac12\uc740 \uc791\uc744\uc218\ub85d \ub354 \uc815\ud655\ud55c \ub2f5\uc744 \uc5bb\uac8c \ub418\uc9c0\ub9cc, \uacc4\uc0b0\uc774 \ub290\ub824\uc9c4\ub2e4.<br \/>\n          <br \/>\n          y = [y0] # \uc77c\ub2e8 \uc5ec\uae30\uc11c \uc2dc\uc791\ud574 \ubcf4\uc790.<br \/>\n          <br \/>\n          t = 0.<br \/>\n          <br \/>\n          tmax = 10. # \uc5bb\uace0\uc2f6\uc740 \uc2dc\uac04\uc758 \ub9c8\uc9c0\ub9c9 \uc21c\uac04. \uc989, \uc774 \uc2dc\uac04 \uc774\ud6c4\uc5d0\ub294 \uad00\uc2ec\uc774 \uc5c6\uace0 \uadf8 \uc804\uae4c\uc9c0\ub9cc \uad00\uc2ec\uc774 \uc788\ub2e4\ub294 \ub73b\uc774\ub2e4.<br \/>\n          <br \/>\n          while t<tmax:\n          <br \/>\n          y.append(y[-1]+(f(t)-a*y[-1])*h)<br \/>\n          <br \/>\n          t+=h<\/p>\n<p>          # while \uc548\uc5d0 \uc788\ub294 \ucf54\ub4dc\uac00 \uac00\uc7a5 \uc911\uc694\ud558\ub2e4. \uc798 \ubcf4\uba74, \ubcc4\uac70 \uc5c6\ub2e4\ub294 \uc0ac\uc2e4\uc744 \uc54c \uc218 \uc788\uc744 \uac83\uc774\ub2e4.<\/p>\n<p>          # \uc774\uc81c 2\ucc28 \ubbf8\ubc29\uc744 1\ucc28 \ubbf8\ubc29 2\uac1c\ub85c \ucabc\uac1c\ub294 \uae30\ubc95\uc744 \uc544\uc8fc \uac04\ub2e8\ud788 \uc774\ud574\ud558\uace0 \ub118\uc5b4\uac00\uc790.<br \/>\n          <br \/>\n          # \uc8fc\uc5b4\uc9c4 2\ucc28 \ubbf8\ubc29\uc774 d(dy\/dt)\/dt + a*dy\/dt + b*y(t) = f(t) \ub77c\uace0 \ud558\uba74, \uc77c\ub2e8 dy\/dt = z \ub77c\uace0 \ud558\uc790. \uadf8\ub9ac\uace0 z\ub97c \ub300\uc785\ud558\uba74<br \/>\n          <br \/>\n          # dz\/dt + a*z + b*y = f(t)<br \/>\n          <br \/>\n          # dy\/dt = z<\/p>\n<p>          # \uc774\ub807\uac8c 2\uac1c\uc758 \ubbf8\ubd84\ubc29\uc815\uc2dd\uc73c\ub85c \ucabc\uac1c\uc84c\ub2e4. \ud55c\ubc88 \ud480\uc5b4\ubcf4\ub3c4\ub85d \ud558\uc790.<\/p>\n<p>          # \uc77c\ub2e8 y0\uc640 z0=dy\/dt(t=0)\ub294 \uc54c\ub824\uc838 \uc788\ub2e4\uace0 \ud558\uc790.<br \/>\n          <br \/>\n          y = [y0]<br \/>\n          <br \/>\n          z = z0.<br \/>\n          <br \/>\n          # z\ub294 \uc6b0\ub9ac\uac00 \ubb38\uc81c\ub97c \ud480\uae30\ub97c \uc6d0\ud558\ub294 \uac12\uc774 \uc544\ub2c8\ub77c \uc911\uac04 \uc800\uc7a5 \ubcc0\uc218\uc774\ubbc0\ub85c \uadf8\ub0e5 \uc774\ub807\uac8c \ub450\uba74 \ub41c\ub2e4. \ub9cc\uc57d 2\ucc28 \ubbf8\ubd84\ubc29\uc815\uc2dd\uc778\ub370 1\ucc28 \ubbf8\ubd84\ub3c4 \uac19\uc774 \uad6c\ud574\uc57c \ud558\ub294 \uacbd\uc6b0(\ub274\ud134 \ubc29\uc815\uc2dd\uc5d0\uc11c \uc18d\ub3c4\uc640 \uc704\uce58\ub97c \ub458 \ub2e4 \uad6c\ud558\ub294 \uacbd\uc6b0, \ud68c\ub85c \ubc29\uc815\uc2dd\uc5d0\uc11c \uc804\ud558\uc640 \uc804\ub958\ub97c \ub458 \ub2e4 \uad6c\ud558\ub294 \uacbd\uc6b0)  \ub4f1\ub4f1\uc5d0\uc11c\ub294 z\ub97c \ub9ac\uc2a4\ud2b8\ub85c \uc120\uc5b8\ud574\uc11c \uc368\ub3c4 \ub41c\ub2e4.<\/p>\n<p>          while t<tmax:\n          <br \/>\n          y.append(y[-1]+z*h)<br \/>\n          <br \/>\n          z+=(-a*z-b*y+f(t))*h<br \/>\n          <br \/>\n          t+=h<\/p>\n<p>          # 2\ucc28 \ubbf8\ubc29\uc774\uc9c0\ub9cc \uc704\uc640 \uac19\uc774 \ub531 1\uc904 \ub354 \ub298\uc5b4\ub09c \uc544\ub984\ub2e4\uc6b4 \ucf54\ub4dc\ub85c \ub9cc\ub4e4 \uc218 \uc788\ub2e4.<\/p>\n<p>          # \uc624\uc77c\ub7ec \ud480\uc774\ubc95\uc740 \uac00\uc7a5 \uac04\ub2e8\ud558\uc9c0\ub9cc h\uac00 \uc0c1\ub2f9\ud788 \uc791\uc544\uc57c \uc815\ud655\ud55c \ub2f5\uc744 \uc5bb\uc744 \uc218 \uc788\ub2e4. \ubbf8\ubd84\uc774\ub098 \uc801\ubd84\uc744 \ud560 \ub54c \ud568\uc218\uac12\uc758 \ub300\uce6d\uc131\uc744 \uc774\uc6a9\ud574\uc11c \uac19\uc740 \uad6c\uac04 h\uc5d0 \ub300\ud574\uc11c\ub3c4 \ubcf4\ub2e4 \uc815\ud655\ud55c \uacc4\uc0b0\uc744 \ud560 \uc218 \uc788\uc5c8\ub294\ub370, \uc5ec\uae30\uc11c\ub3c4 \ub9c8\ucc2c\uac00\uc9c0 \ud14c\ud06c\ub2c9\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub2e4.<\/p>\n<p>          # \ub8fd\uac8c-\ucfe0\ud0c0(Runge-Kutta) \ud480\uc774\ubc95\uc740 \ud55c\ubc1c \uc55e\uc11c \uac04 \ub3c4\ud568\uc218\uc640 \ud3c9\uade0\uc744 \ub0b4\uc11c \ub2e4\uc2dc \uad6c\ud55c\ub2e4. \uc989, \uae30\uc6b8\uae30 \uacc4\uc0b0\uc744 \ub450\ubc88\ud55c\ub2e4. \ub9d0\ub85c\ub294 \uc54c\uc544\ub4e3\uae30 \uc5b4\ub824\uc6b8 \uac83\uc774\uace0, \uc9c1\uc811 \ucf54\ub4dc\ub97c \ubcf4\ub294 \uac83\uc774 \ubcf4\ub2e4 \uc774\ud574\ud558\uae30 \uc26c\uc6b8 \uac83\uc774\ub2e4.<br \/>\n          <br \/>\n          # y(t+h) = y(t)+(dy\/dt)h = y(t) + (- a*y(t) + f(t))*h<br \/>\n          <br \/>\n          # dy\/dt + a*y(t) = f(t)<br \/>\n          <br \/>\n          y = [y0]<br \/>\n          <br \/>\n          while t<tmax:\n          <br \/>\n          y1= -a*y[-1]+f(t) # \uc77c\ub2e8 \uae30\uc6b8\uae30 \uacc4\uc0b0<br \/>\n          <br \/>\n          y.append(y1*h+y[-1]) # \uc77c\ub2e8 \uac12 \uc9d1\uc5b4\ub123\uace0<br \/>\n          <br \/>\n          y2 = -a*y[-1]+f(t+h) # \ud55c\uce78 \uac04 \uacf3\uc5d0\uc11c\uc758 \uae30\uc6b8\uae30 \uacc4\uc0b0<br \/>\n          <br \/>\n          y[-1] = y[-2]+0.5*(y1+y2)*h # \uc2e4\uc81c \uac12\uc740 \ub450 \uae30\uc6b8\uae30\uc758 \ud3c9\uade0\ub9cc\ud07c\ub9cc \uc99d\uac00\ud558\ub294 \uac83\uc73c\ub85c.<br \/>\n          <br \/>\n          t+=h<\/p>\n<p>          # \uacc4\uc0b0 \uc2dc\uac04\uc744 \uc544\uc8fc \uc870\uae08\uc774\ub77c\ub3c4 \ub354 \uc808\uc57d\ud558\uace0 \uc2f6\uc73c\uba74 0.5*h\ub97c \ubbf8\ub9ac h2\uac19\uc740\uac78\ub85c \uc815\uc758\ud574\ub193\uace0 0.5*h\ub300\uc2e0 h2\ub97c \uacf1\ud558\ub294 \uac83\uc73c\ub85c \ubc14\uafb8\uba74 \uc870\uae08 \ube68\ub77c\uc9c4\ub2e4.<br \/>\n          <br \/>\n          # y2\ub97c \uacc4\uc0b0\ud558\ub294 \ubd80\ubd84\uc740 \uadf8 \ub2e4\uc74c\uc904\ub85c \ud55c\ubc88\uc5d0 \uc9d1\uc5b4\ub123\uc744 \uc218\ub3c4 \uc788\uc9c0\ub9cc, \uc77d\uae30\uac00 \ud798\ub4e4\uc5b4\uc9c0\ubbc0\ub85c \uad73\uc774 \uadf8\ub807\uac8c \ud560 \ud544\uc694\ub294 \uc5c6\ub2e4.<\/p>\n<p>          # 2\ucc28 \ub8fd\uac8c-\ucfe0\ud0c0 \ubc29\ubc95 \ubfd0\ub9cc \uc544\ub2c8\ub77c \ub354 \ub192\uc740 \ucc28\uc218\uc758 \ub8fd\uac8c-\ucfe0\ud0c0 \ubc29\ubc95\ub3c4 \uac00\ub2a5\ud558\ub2e4. \uc704\uc640 \uac19\uc774 \uae30\uc6b8\uae30 \uac00\uc911\uce58\ub97c \uc5b4\ub5bb\uac8c \uc8fc\ub290\ub0d0\ub97c \uc798 \uc0dd\uac01\ud558\uba74 \ub418\ub294\ub370, \uc544\uc774\ub514\uc5b4\ub294 \ube44\uc2b7\ud558\ubbc0\ub85c \ud06c\uac8c \uc5b4\ub824\uc6b8 \uac83 \uc5c6\ub2e4.<\/p>\n<p>          # \uc870\uae08 \ub354 \uc77c\ubc18\ud654\ud558\uba74 predictor-corrector \ubc29\ubc95\uc774 \ub41c\ub2e4.<br \/>\n          <br \/>\n          # \ubbf8\ubd84\ubc29\uc815\uc2dd\uc774 dy\/dt+f(y(t), t)=0\uc73c\ub85c \uc8fc\uc5b4\uc9c4 \uacbd\uc6b0\uc5d0 \uc0ac\uc6a9\ud558\ub294\ub370, \uc704\uc758 \ubbf8\ubd84\ubc29\uc815\uc2dd\uc740 f(y, t) = a*y-f(t)\ub85c \uc8fc\uc5b4\uc9c4 \ud558\ub098\uc758 \uc0ac\ub840\uc5d0 \ud574\ub2f9\ud55c\ub2e4.<br \/>\n          <br \/>\n          # Predictor-corrector \ubc29\ubc95\uc740 \uadf8\ub7fc RK\ubc29\ubc95\uc744 \uadf8\ub300\ub85c \uac16\uace0 \uc624\uba74 \ub41c\ub2e4.<br \/>\n          <br \/>\n          y = [y0]<br \/>\n          <br \/>\n          while t<tmax:\n          <br \/>\n          y1= f(y[-1], t) # \uc77c\ub2e8 \uae30\uc6b8\uae30 \uacc4\uc0b0<br \/>\n          <br \/>\n          y.append(y1*h+y[-1]) # \uc77c\ub2e8 \uac12 \uc9d1\uc5b4\ub123\uace0<br \/>\n          <br \/>\n          y2 = f(y[-1], t+h) # \ud55c\uce78 \uac04 \uacf3\uc5d0\uc11c\uc758 \uae30\uc6b8\uae30 \uacc4\uc0b0<br \/>\n          <br \/>\n          y[-1] = y[-2]+0.5*(y1+y2)*h # \uc2e4\uc81c \uac12\uc740 \ub450 \uae30\uc6b8\uae30\uc758 \ud3c9\uade0\ub9cc\ud07c\ub9cc \uc99d\uac00\ud558\ub294 \uac83\uc73c\ub85c.<br \/>\n          <br \/>\n          t+=h<\/p>\n<p>          # \ubb3c\ub9ac\ud559\uc5d0\uc11c \ud480\uc5b4\uc57c \ud558\ub294 \uc218\ub9ce\uc740 \ubbf8\ubd84\ubc29\uc815\uc2dd\ub4e4\uc740 \ub300\uccb4\ub85c \uc6b4\ub3d9\ubc29\uc815\uc2dd\uc774\ub2e4. \uc6b4\ub3d9\ubc29\uc815\uc2dd\uc740 2\ucc28 \ubbf8\ubd84\ubc29\uc815\uc2dd\uc774\ubbc0\ub85c, 2\ucc28 \ub3c4\ud568\uc218\ub97c \uc54c\uace0 \uc788\ub2e4\ub294 \uc0ac\uc2e4\ub85c\ubd80\ud130 \ubb54\uac00\ub97c \uc9c1\uc811 \ud574\uacb0\ud560 \uc218 \uc788\ub2e4.<br \/>\n          <br \/>\n          # \uadf8\ub798\uc11c \ub098\uc628 \ubc29\ubc95\uc774 \ubc8c\ub808(Verlet) \ubc29\ubc95\uc774\ub2e4. Verlet\uc740 \uc0ac\ub78c \uc774\ub984\uc774\uace0, \ud504\ub791\uc2a4 \uc0ac\ub78c\uc774\ub77c t\uac00 \ubb35\uc74c\uc774\ub2e4.<br \/>\n          <br \/>\n          # \ubc8c\ub808 \uc54c\uace0\ub9ac\uc998\uc5d0 \ub300\ud574\uc11c\ub294 \uc774 \uae00\uc744 \ucc38\uace0\ud574 \ubcfc \uc218 \uc788\ub2e4.<br \/>\n          <br \/>\n          # http:\/\/www.physics.udel.edu\/~bnikolic\/teaching\/phys660\/numerical_ode\/node5.html<br \/>\n          <br \/>\n          # \uc77c\ub2e8, \ud14c\uc77c\ub7ec \uc804\uac1c\ub85c\ubd80\ud130 \ub2e4\uc74c\uacfc \uac19\uc740 \uc0ac\uc2e4\uc744 \uc54c \uc218 \uc788\ub2e4.<br \/>\n          <br \/>\n          # y(t-h) = y(t)-v(t)*h+a(t)*h*h\/2<br \/>\n          <br \/>\n          # \uc5ec\uae30\uc11c v=dy\/dt, a=dv\/dt \uc774\ub2e4.<\/p>\n<p>          # -h\uac00 \uc544\ub2c8\ub77c +h\uc5d0 \ub300\ud574\uc11c \ub2e4\uc2dc \uc4f0\uba74<br \/>\n          <br \/>\n          # y(t+h) = y(t)+v(t)*h+a(t)*h*h\/2<br \/>\n          <br \/>\n          # \uc774\ub807\uac8c \ub420 \uac83\uc774\ub2e4.<\/p>\n<p>          # \ub450\uac1c\ub97c \ub354\ud574\ubcf4\uc790.<br \/>\n          <br \/>\n          # y(t-h)+y(t+h) = 2y(t)+a(t)*h*h<br \/>\n          <br \/>\n          # v\uac00 \uc0ac\ub77c\uc84c\ub2e4!<\/p>\n<p>          # \uc774\uc81c \ub2e4\uc74c\uacfc \uac19\uc774 y(t+h)\ub97c \ucd94\uc815\ud560 \uc218 \uc788\ub2e4.<br \/>\n          <br \/>\n          # y(t+h) = 2y(t)-y(t-h)+a(t)*h*h<br \/>\n          <br \/>\n          # \ubb3c\ub9ac \ubb38\uc81c\ub97c \ud574\uacb0\ud560 \ub54c, \uc774 \uacf5\uc2dd\uc740 \ub9e4\uc6b0 \uae30\uac00\ub9c9\ud78c \ubc29\ubc95\uc774\ub2e4. 2\ucc28 \ubbf8\ubd84\ubc29\uc815\uc2dd\uc744 \ud480\uc5b4\uc57c \ud558\ub294\ub370, \uc18d\ub825\uc744 \uad6c\ud558\uc9c0 \uc54a\uace0 \ud798\uc73c\ub85c\ubd80\ud130 \uace7\ubc14\ub85c \uc704\uce58\ub97c \uc5bb\uc5b4\ub0b4\uae30 \ub54c\ubb38\uc774\ub2e4.<\/p>\n<p>          # \ub610\ud55c, \ub450\uac1c\ub97c \ube7c\uba74 \uc18d\ub825\uc744 \uc5bb\uc744 \uc218 \uc788\ub2e4.<br \/>\n          <br \/>\n          # v(t) = (y(t+h)-y(t-h))\/2h<br \/>\n          <br \/>\n          # \uc774 \uacf5\uc2dd\uc740 \ubbf8\ubd84\uc5d0\uc11c \uacf5\ubd80\ud588\ub358 3\uc810 \uacf5\uc2dd\uacfc \uac19\ub2e4.<\/p>\n<p>          # \uc774\ub807\uac8c \uacc4\uc0b0\ud558\ub294 \ubc29\ubc95\uc744 original Verlet \uc54c\uace0\ub9ac\uc998\uc774\ub77c\uace0 \ud55c\ub2e4. \uadf8\ub7f0\ub370, \uc624\ub9ac\uc9c0\ub110 \ubc8c\ub808\ub294 \ubb38\uc81c\uac00 \uc788\ub2e4. y(t=0)\uc77c\ub54c\ub97c \uc54c\uace0 \uc788\uc5b4\ub3c4, y(t+h)\ub97c \uad6c\ud558\uae30 \uc704\ud574\uc11c\ub294 y(t-h)\ub97c \uc54c\uc544\uc57c \ud55c\ub2e4. \uc989, \ucd5c\ucd08 2\uc810\uc744 \uc54c\uc544\uc57c \ud55c\ub2e4\ub294 \ubb38\uc81c\uac00 \uc788\ub2e4. \uadf8\ub798\uc11c \uc774 \ubc29\ubc95\uc744 \uac1c\uc120\ud558\uae30 \uc704\ud574\uc11c velocity Verlet \uc54c\uace0\ub9ac\uc998\uc774 \ub4f1\uc7a5\ud55c\ub2e4. \uc77c\ub2e8 \uacf5\uc2dd\ubd80\ud130 \ubcf4\uace0 \uc2dc\uc791\ud558\uc790.<\/p>\n<p>          # y(t+h) = y(t)+v(t)*h+0.5*a(t)*h*h<br \/>\n          <br \/>\n          # v(t+h) = v(t)+0.5*(a(t+h)+a(t))*h<\/p>\n<p>          # \uc660\uc9c0 \uc55e\uc5d0\uc11c \ubcf4\uc558\ub358 \uc624\uc77c\ub7ec \ud480\uc774\ubc95\uc73c\ub85c 2\ucc28 \ubbf8\ubd84\ubc29\uc815\uc2dd\uc744 \ud478\ub294 \uac83\uacfc \ube44\uc2b7\ud574 \ubcf4\uc774\uc9c0\ub9cc, \uadf8\ubcf4\ub2e4 \ub354 \uc815\ud655\ud558\ub2e4. \uadf8\ub9ac\uace0 \uc774 \uacbd\uc6b0 \uc54c\uc9c0\ub3c4 \ubabb\ud558\ub294 \uacfc\uac70\uc778 y(t-h)\ub97c \ubab0\ub77c\ub3c4 \ubb38\uc81c\ub97c \ud574\uacb0\ud560 \uc218 \uc788\uc73c\ubbc0\ub85c \uace0\ubbfc\uc774 \ud55c\uce35 \ub35c\uc5b4\uc84c\ub2e4.<\/p>\n<p>          # \uc774 \ubb38\uc81c\uc5d0\uc11c a(t) \uac00 \uc54c\ub824\uc838 \uc788\ub2e4\uace0 \ud558\uba74, \ucf54\ub4dc\ub97c \ub2e4\uc74c\uacfc \uac19\uc774 \uc9dc\ubcfc \uc218 \uc788\uc744 \uac83\uc774\ub2e4.<br \/>\n          <br \/>\n          y=[y0]<br \/>\n          <br \/>\n          v=v0 # 2\ucc28 \ubbf8\ubc29\uc774\ubbc0\ub85c y0\uc640 v0\ub294 \uc54c\uace0 \uc788\uc5b4\uc57c \ud55c\ub2e4.<br \/>\n          <br \/>\n          while t<tmax:\n          <br \/>\n          y.append(y[-1]+v*h+0.5*a(t)*h*h)<br \/>\n          <br \/>\n          v+=0.5*(a(t+h)+a(t))*h<br \/>\n          <br \/>\n          t+=h<br \/>\n          <br \/>\n          # \uc774\uc678\uc5d0\ub3c4 \ub9ce\uc740 \uc54c\uace0\ub9ac\uc998\uc774 \uc788\uc9c0\ub9cc \ub300\uccb4\ub85c \uc774\ub7f0 \uc544\uc774\ub514\uc5b4\ub4e4\uc758 \ubcc0\ud615\uacfc \uac1c\uc120\uc744 \ub3c4\ubaa8\ud55c \ubc29\ubc95\ub4e4\uc774\ub2e4. \uc2e4\uc81c\ub85c \uc790\uc2e0\uc774 \ud480\ub824\uace0 \ud558\ub294 \ubb38\uc81c\uc5d0 \uc801\ud569\ud55c \uc54c\uace0\ub9ac\uc998\uc744 \uc120\uc815\ud558\uace0, \uadf8 \ubb38\uc81c\uc5d0 \uc801\ud569\ud558\uac8c \uc54c\uace0\ub9ac\uc998\uc744 \uac1c\uc870\/\uac1c\uc120\ud574\uc11c \uc801\uc6a9\ud558\ub294 \uac83\uc774 \uc88b\ub2e4.<\/p>\n<p>          # \uc218\uce58\ud574\uc11d\uc801\uc778 \ubc29\ubc95\uc758 \uc7a5\uc810\uc740 \uc120\ud615 \ubbf8\ubd84\ubc29\uc815\uc2dd \ubfd0\ub9cc \uc544\ub2c8\ub77c \ube44\uc120\ud615 \ubbf8\ubd84\ubc29\uc815\uc2dd\uc758 \uacbd\uc6b0\uc5d0\ub3c4 \uc801\uc6a9\ud560 \uc218 \uc788\ub2e4\ub294 \uac83\uc774\ub2e4. \uc0ac\uc2e4, \uc120\ud615 \uc81c\ucc28 \ubbf8\ubd84\ubc29\uc815\uc2dd\uc758 \ud574\ub294 \ub9e4\uc6b0 \uc27d\uac8c \ud574\uc11d\uc801\uc73c\ub85c \uad6c\ud560 \uc218 \uc788\ub2e4. \uadf8\ub7ec\ub098 \ube44\uc81c\ucc28 \ubbf8\ubd84\ubc29\uc815\uc2dd\uc774\ub098 \ube44\uc120\ud615 \ubbf8\ubd84\ubc29\uc815\uc2dd\uc758 \uacbd\uc6b0 \ud574\uac00 \uc54c\ub824\uc9c4 \uac83\uc774 \ub9e4\uc6b0 \uc801\uc73c\ub098, \uc2e4\uc6a9\uc801 \uad00\uc810\uc5d0\uc11c \uc218\uce58\ud574\uc11d\uc744 \uc774\uc6a9\ud558\uc5ec \ubb38\uc81c\ub97c \ud574\uacb0\ud560 \uc218 \uc788\ub2e4.<br \/>\n          <br \/>\n          # \uc218\uce58\ud574\uc11d\uc73c\ub85c \ube44\uc120\ud615 \ubbf8\ubd84\ubc29\uc815\uc2dd\uc744 \ud574\uacb0\ud560 \ub54c \uc8fc\uc758\ud574\uc57c \ud558\ub294 \uac83\uc740 \uc624\ucc28\uc758 \uc804\ud30c\uc774\ub2e4. \ube44\uc120\ud615 \ud6a8\uacfc\uc5d0 \uc758\ud574 \uc624\ucc28\uac00 \uc608\uc0c1\ubcf4\ub2e4 \ucee4\uc9c8 \uc218 \uc788\uc73c\ubbc0\ub85c \uc624\ucc28\ub97c \uc904\uc774\uae30 \uc704\ud574\uc11c \uae30\uc874\uc758 \uacf5\uc2dd\uc744 \uc801\uc808\ud788 \ubcc0\ud615\ud558\ub294 \uac83\uc774 \ud544\uc694\ud560 \uc218 \uc788\ub2e4.<br \/>\n          \n<\/p>\n<div style=\"width:100%;margin-top:30px;clear:both;height:30px\">\n<div style=\"width:31px;float:left;\">\n<a href=\"\/toolbar\/popup\/abuseReport\/?entryId=3384\" onclick=\"window.open(this.href, 'tistoryThisBlogPopup', 'width=550, height=510, toolbar=no, menubar=no, status=no, scrollbars=no'); return false;\"><br \/>\n<img data-recalc-dims=\"1\" decoding=\"async\" alt=\"\uc2e0\uace0\" src=\"https:\/\/i0.wp.com\/t1.daumcdn.net\/tistory_admin\/static\/ico\/ico_spam_report.png\" style=\"border:0\"\/><br \/>\n<\/a>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>2\ubc88\uc774 \uc65c \uc774\uc81c \uc62c\ub77c\uc624\ub290\ub0d0\ub3c4 \uc5ed\uc2dc \uc758\ubbf8 \uc5c6\ub294 \uc9c8\ubb38\uc774\ub2e4. &#8212; # Elementary Numerical analysis 2 # based on Python # (C) 2013. Keehwan Nam, Dept. of physics, KAIST. # snowall@gmail.com \/ snowall@kaist.ac.kr # Differential equation # \ucd94\ucc9c \ucc38\uace0\uc790\ub8cc: http:\/\/www.swarthmore.edu\/NatSci\/echeeve1\/Ref\/NumericInt\/FrameNumInt.html # \ubbf8\ubd84\ubc29\uc815\uc2dd\uc740 \ubbf8\ubd84 \ubcc0\uc218\uac00 1\uac1c\uc778 \uc0c1\ubbf8\ubd84\ubc29\uc815\uc2dd(Ordinary differential equation:ODE)\uacfc 2\uac1c \uc774\uc0c1\uc778 \ud3b8\ubbf8\ubd84\ubc29\uc815\uc2dd(Partial differential equation:PDE)\uc73c\ub85c \ub098\ub220\uc9c4\ub2e4. # \uc77c\ub2e8 1\uac1c\uc778 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[2],"tags":[],"class_list":["post-10543","post","type-post","status-publish","format-standard","hentry","category-academic"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8o6gA-2K3","jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"http:\/\/melotopia.net\/b\/index.php?rest_route=\/wp\/v2\/posts\/10543","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/melotopia.net\/b\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/melotopia.net\/b\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/melotopia.net\/b\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/melotopia.net\/b\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10543"}],"version-history":[{"count":0,"href":"http:\/\/melotopia.net\/b\/index.php?rest_route=\/wp\/v2\/posts\/10543\/revisions"}],"wp:attachment":[{"href":"http:\/\/melotopia.net\/b\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10543"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/melotopia.net\/b\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10543"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/melotopia.net\/b\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10543"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}