¼ø¶È»ñÎÁ/13

Á°²ó¤Î²ÝÂê¤Ë¤Ä¤¤¤Æ

Á°²ó¤ÎÁí»Å¾å¤²¤Ï¡¤Í¿¤¨¤é¤ì¤¿ÃÏ¿Þ¤ÎÆóÅÀ´Ö¤ÇºÇû·ÐÏ©¤òÆ»¤¬²¿Ä̤ꤢ¤ë¤«¿ô¤¨¤è¤È¤¤¤¦¤â¤Î¤Ç¤¢¤Ã¤¿¡¥
(ÃϿޤˤĤ¤¤Æ¤ÏÁ°²ó¤Î web ¤ò»²¾È¤Î¤³¤È)

¿Þ¤¬Èó¾ï¤ËÁÇľ¤Ç´Êñ¤Ê·Á¤ò¤·¤Æ¤¤¤ë¤Î¤Ç¡¤ºÇû·ÐÏ©¤Î¸Ä¿ô¤ò¿ô¤¨¤ë¤Ë¤Ïñ½ã¤Ê¥ë¡¼¥ë¤Ç¤Ç¤­¤ë¤³¤È¤ÏÁ°²ó¤Î¥Ò¥ó¥È¤«¤é¤ï¤«¤Ã¤¿¤È»×¤¦¡¥
¶ñÂÎŪ¤Ë¤Ï¡¤


¡Ö¤¢¤ëÅÀ¤òÄ̤ëºÇû·ÐÏ©¤Ï¡¤¤½¤Î¾å¤ÎÅÀ¤«±¦¤ÎÅÀ¤òÄ̤äƤä¤Ã¤Æ¤¯¤ë¡×


¤Î¤Ç¡¤¤³¤ì¤Ï¸À¤¤´¹¤¨¤ë¤È¡¤


¡Ö¤¢¤ëÅÀ¤òÄ̤ëºÇû·ÐÏ©¤Î¿ô = ¤½¤Î¾å¤ÎÅÀ¤òÄ̤ëºÇû·ÐÏ©¤Î¿ô + ¤½¤Î±¦¤ÎÅÀ¤òÄ̤ëºÇû·ÐÏ©¤Î¿ô¡×


¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¡¥¤¢¤È¤Ï¤³¤ì¤ò¶ñÂÎŪ¤Ë¤·¤Æ¤¤¤±¤Ð¤è¤¤¡¥
Î㤨¤ÐÃÏ¿Þ¤òÁÇľ¤Ë x,y ºÂɸ¤Ç°Ê²¼¤Î¤è¤¦¤ËÆÃħÉÕ¤±¤¿¤È¤·¤Æ¡¤

route-exp.png

¤Î¤è¤¦¤Ë¹Í¤¨¤¿¤È¤·¤è¤¦¡¥
¤³¤Î¤È¤­¡¤ºÂɸ (i,j) (0 ≤ i ≤ 6, 0 ≤ j ≤ 4)¤ÎÅÀ¤òÄ̤ëºÇû·ÐÏ©¤Î¿ô¤ò f(i,j)¤È¤¹¤ë¤È¡¤¿ô¼°¤Ëľ¤»¤Ð°Ê²¼¤Î¤è¤¦¤Ê´Ø·¸¼°¤¬À®¤êΩ¤Ä¤³¤È¤¬Ê¬¤«¤ë¡¥

map-eq-1.png

¤È¤Ê¤ë¤Î¤Ç¡¤¤³¤ì¤ò»È¤¨¤Ð¤è¤¤¡¥¤¢¤È¤Ï¡¤¤³¤Î´Ø·¸¼°¤òÅú¤¨¤Ë¶á¤¤Êý¤«¤é»È¤¦¤«±ó¤¤Êý¤«¤é»È¤¦¤«¤Ç¥×¥í¥°¥é¥à¤Î½ñ¤­Êý¤¬°ã¤¦¤À¤±¤À¡¥

¤Ê¤ª¡¤¾å¤Î¼°¤òÅÓÃæ¤Þ¤Ç¼ê¤ÇŸ³«¤·¤¿·Á¤Î

map-eq-2.png

¤ò»È¤Ã¤Æ¤âÎɤ¤¡¥¤¿¤À¡¤¤³¤¦¤¤¤¦¤è¤¦¤Ë¡Ö¿Í´Ö¤¬ÅÓÃæ¤Þ¤Ç²ðÆþ¤¹¤ë»þ¤Ë·×»»¤ò¼ºÇÔ¤¹¤ë¤³¤È¤¬¤¢¤ë¡×¤Î¤Ç¡¤°ìÈÌŪ¤Ë¤Ï¤É¤³¤Þ¤Ç²ðÆþ¤¹¤ë¤«¤ÏǺ¤Þ¤·¤¤ÌäÂê¤À¡¥¤³¤ÎÌäÂê¤Î¾ì¹ç¤Ï¤Þ¤º´Ö°ã¤¨¤Ê¤¤¤À¤í¤¦¤¬¡Ä


ºÆµ¢ÄêµÁ¤ò»È¤¦¾ì¹ç

¤³¤ì¤Ï¿ô¼°¤òÁÇľ¤Ë»È¤¨¤Ð¤è¤¤¤Î¤Ç¡¤Î㤨¤Ð°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¤À¤í¤¦¡¥

  1. include Math
  2.  
  3. # f ¤òµá¤á¤ëºÆµ¢ÄêµÁ¼°
  4. def f(i,j)
  5.   if ((i==6) && (j==4)) then
  6.       return 1
  7.     elsif (j==4) then
  8.       return f(i+1,4)
  9.     elsif (i==6) then
  10.       return f(6,j+1)
  11.     else
  12.       return f(i+1,j) + f(i, j+1)
  13.   end
  14. end
  15.  
  16. # °Ê²¼¡¤¥×¥í¥°¥é¥àËÜÂÎ
  17.  
  18. # f(0,0) ¤ÎÃͤò½ÐÎϤ¹¤ë¡¥
  19. print(f(0,0),"\n")


ưŪ·×²èË¡¤â¤É¤­¤ò»È¤¦¾ì¹ç

±¦¾å¤Î Start ÃÏÅÀ¤«¤é¡¤¡Ö²¿¥¹¥Æ¥Ã¥×Ìܤ«¡×¤È¤¤¤¦¤³¤È¤ËÃåÌܤ¹¤ì¤Ð¡¤¥¹¥Æ¥Ã¥×¿ô¤òÁý¤ä¤·¤Æ¤¤¤¯¤è¤¦¤Ë·×»»¤ò¿Ê¤á¤ì¤Ð¤è¤¤¤³¤È¤Ëµ¤¤Å¤¯¡¥¤Ä¤Þ¤ê¡¤¼¡¤Î¿Þ¤ÎÀÖ¤¤Ê¸»ú¤Î½ç¤Ë·×»»¤¬¿Ê¤á¤é¤ì¤ë¤Ù¤­¤À¤È¤¤¤¦¤³¤È¤¬¤ï¤«¤ë¤À¤í¤¦¡¥

route-exp-2.png

¾¯¤·¹©Éפ¬¤¤¤ë¤¬¡¤¤Þ¤¢Î㤨¤Ð¼¡¤Î¤è¤¦¤Ë¥×¥í¥°¥é¥à¤ò½ñ¤±¤ë¤À¤í¤¦¡¥

  1. include Math
  2.  
  3. # step ¤Î¾®¤µ¤¤¤Û¤¦¤«¤é·×»»¤·¤Æ¤¤¤Ã¤Æ¡¤Goal ¤Ç¤ÎÃͤòÊÖ¤¹. °ì±þ¡¤ÃϿޤΥµ¥¤¥º¤ò°ìÈ̤ˤ·¤Æ¤ª¤³¤¦.
  4. def calc_top(nx,ny)
  5.  
  6.   # ³ÆÅÀ¤òÄ̤ëºÇû·ÐÏ©¿ô¤òµ­Ï¿¤·¤Æ¤ª¤¯ÇÛÎó¤òÍÑ°Õ¤·¤è¤¦¡¥
  7.   f = Array.new(nx+1){ Array.new(ny+1){ 0 } }
  8.  
  9.   # Start ÃÏÅÀ¤Ç¤Î f ¤Ï 1 ¤À¤Í¡¥
  10.   f[nx][ny] = 1
  11.  
  12.   # Áí¥¹¥Æ¥Ã¥×¿ô
  13.   all_step = nx + ny
  14.  
  15.   # step 1 ¤«¤é all_step ¤Þ¤Ç
  16.   for step in 1..all_step do
  17.  
  18.     # Æ±¤¸ step ¤ÎÅÀ¤Ï x + y =  all_step - step ¤òËþ¤¿¤¹¤³¤È¤òÍøÍѤ·¤Æ¡Ä
  19.     for i in 0..(all_step - step) do
  20.       j = (all_step - step) - i
  21.       if ((0 <= i) && (i <= nx) && (0 <= j) && (j <= ny)) then # ÃÏ¿Þ¤ËÆþ¤ë¤È¤­¤À¤±¹Íθ¤¹¤ì¤Ð¤è¤¤
  22.  
  23.         # ¤¢¤È¤ÏÉáÄ̤˷׻»¤¹¤ë
  24.         if (i==nx) then
  25.             f[i][j] = f[i][j+1]
  26.           elsif (j==ny) then
  27.             f[i][j] = f[i+1][j]
  28.           else
  29.             f[i][j] = f[i+1][j] + f[i][j+1]
  30.         end
  31.  
  32.       end
  33.     end
  34.  
  35.   end
  36.  
  37.   # f(0,0) ¤òÊÖ¤¹¡¥
  38.   return f[0][0]
  39. end
  40.  
  41. # Goal ¤Ç¤Î f ¤ÎÃͤò·×»»¤¹¤ë
  42. ans = calc_top(6,4)
  43.  
  44. # ÃΤꤿ¤¤Ãͤòɽ¼¨¤¹¤ë
  45. print(ans,"\n")

¾¯¤·¸­¤¤¹Í¤¨Êý

ºÇû·ÐÏ©¿ô¤Î°Í¸´Ø·¸¤ò¹Í¤¨¤ë¤È¡Ö±¦¾å¤«¤éº¸²¼¤Ë¼Ð¤á¡×¤ËÏ䬿ʤळ¤È¤¬¤ï¤«¤ë¡¥
¸À¤¤´¹¤¨¤ë¤È¡¤¡Ö¤³¤Î¼Ð¤á¤ÎÊý¸þ¤¬ÁÇľ¤ÊÊý¸þ¡×¤Ë¤Ê¤ë¤Î¤Ç¡¤¤³¤ÎÊý¸þ¤Ë¿Þ¤ò·¹¤±¤Æ¹Í¤¨¤ë¤Î¤¬ÏÀÍýŪ¤ËÁÇľ¤À¤È¤¤¤¦¤³¤È¤Ë¤Ê¤ë¡¥
¼ÂºÝ¤Ë·¹¤±¤Æ¤ß¤è¤¦¡¥
¤¹¤ë¤È¡¤°Í¸´Ø·¸¤¬Á°²ó¤Î¡ÖÌÚ¹½Â¤¡×¤Î¤È¤³¤í¤Ç¤ä¤Ã¤¿ÏäÈÁ´¤¯Æ±¤¸¤Ê¤Î¤Ç¡¤¤¸¤Ä¤ÏƱÍͤˡÖÌÚ¹½Â¤¡×¤Ç¹Í¤¨¤ë¤È¤è¤êʬ¤«¤ê¤ä¤¹¤¤¤È¤¤¤¦¤³¤È¤â¿ä¬¤¬¤Ä¤¯¡¥
¤½¤³¤Ç¡¤¤¿¤È¤¨¤ÐÁ´ÂΤ¬¡Ö¤ï¤«¤ê¤ä¤¹¤¤ÌÚ¹½Â¤¡×¤Ë¤Ê¤ë¤è¤¦¤Ë¤µ¤é¤ËÃÏ¿Þ¤ò¾¯¤·ÉÁ¤­Â­¤·¡¤Á´ÂΤΤĤ¸¤Ä¤Þ¤¬¹ç¤¦¤è¤¦¤Ë¡ÖÍաפ˿ô»ú¤ò¤Ä¤±¤ë¤È°Ê²¼¤Î¤è¤¦¤Ê¿Þ¤Ë¤Ê¤ë¡¥

route-tree.png

¤¢¤È¤Ï¡¤²¼¤Î¿ô»ú¤ò­¤¹¤È¼«Ê¬¤Î¿ô»ú¤Ë¤Ê¤ë¡¤¤È¤¤¤¦»ÅÁȤߤòÁ°²ó¤ÈƱ¤¸¤è¤¦¤Ë¥×¥í¥°¥é¥à¤¹¤ë¤À¤±¤À¡¥
¤³¤ì¤Ç¹Í¤¨¤ë¤È¡¤Æ°Åª·×²èË¡¤â¤É¤­¤Î¥×¥í¥°¥é¥ß¥ó¥°¤â¾å¤È°ã¤Ã¤Æ¿ïʬ´Êñ¤Ë½ñ¤±¤ë¤Ï¤º¤À¡¥
·×»»Î̤ÏÁý¤¨¤ë¤¬¡¤¤³¤¦¤·¤¿ÁÇľ¤Ê¥×¥í¥°¥é¥à¤Ë¤Ï¥ß¥¹¤¬Æþ¤ë³ÎΨ¤ÏÃʰ㤤¤ËÄ㤯¤Ê¤ë¡¥
Åú¤¨¤¬´Ö°ã¤Ã¤Æ¤¤¤ì¤Ð°ÕÌ£¤¬Ìµ¤¤¤Î¤À¤«¤é¡¤¤Þ¤º¤Ï¤³¤¦¤·¤¿¡ÖÁÇľ¤Ê¡×¡Ö³Î¼Â¤Ê¡×¥×¥í¥°¥é¥à¤òÌܻؤ½¤¦¡¥


¤³¤Î¤è¤¦¤Ë¡¤

°Í¸´Ø·¸¤Ê¤É¤ò¤è¤¯¹Í¤¨¤Æ¡¤
»öÁ°¤ËÌäÂꤽ¤Î¤â¤Î¤ò½èÍý¤·¤ä¤¹¤¤·Á¤ËÍý²ò¤·Ä¾¤¹¤³¤È¤¬
¥×¥í¥°¥é¥ß¥ó¥°¤Ë¤Ï½ÅÍפǤ¢¤ë¡¥

Áí¹çÎÏ: ÈùʬÊýÄø¼°¤ò²ò¤¤¤Æ, ²ò¤ò¸«¤Æ¤ß¤è¤¦

¤³¤ì¤Þ¤Ç¤Ç¥×¥í¥°¥é¥ß¥ó¥°¤Ë¤Ä¤¤¤ÆºÇÄã¸Â¤ÎÃμ±¤Ï¿È¤Ë¤Ä¤±¤¿¤Î¤Ç¡¤¾¯¤·±þÍѤظþ¤±¤Æ¼Â½¬¤ò¹Ô¤Ã¤Æ¤ß¤è¤¦¡¥
¤¤¤í¤ó¤ÊÂêºà¤¬¤¢¤ë¤¬¡¤¤Þ¤º¤Ï¤´¤¯´Êñ¤Ê¾ïÈùʬÊýÄø¼°¤ËÂФ·¤Æ¡¤¶á»÷·×»»¤ò¤·¤Æ¶á»÷²ò¤òµá¤á¤Æ¤½¤ÎÍͻҤò¤ß¤ë¤È¤¤¤¦°ìÏ¢¤Îή¤ì¤ò¤ä¤Ã¤Æ¤ß¤è¤¦¡¥


¼«Í³Íî²¼¤ò¥·¥ß¥å¥ì¡¼¥È¤·¤Æ¤ß¤ë

³ØÀ¸¤¬ºÇ¤â¤è¤¯ÃΤäƤ¤¤ë¾ïÈùʬÊýÄø¼°¤Ç¤¢¤ë¡¤Newton Îϳؤ˴ð¤Å¤¯±¿Æ°ÊýÄø¼°¤òÂêºà¤Ë¼è¤ê¾å¤²¤è¤¦¡¥
¤Þ¤º¤â¤Ã¤È¤â´Êñ¤Ê¡¤¡Ö¿¿¶õÃæ¤òʪÂΤ¬¼«Í³Íî²¼¤·¤Æ¤¯¤ëÍͻҡפò¹Í¤¨¤è¤¦¡¥

»þ´Ö¤ò t sec, ÃϾ夫¤é¤ÎʪÂΤι⤵¤ò u(t) m¡¤½ÅÎϲîÅÙ g = 9.8 m/(s^2) ¤È¤¹¤ë¤È¡¤
Newton ¤Î±¿Æ°ÊýÄø¼° F = ma ¤è¤ê¡¤

newton.png
ʪÂΤι⤵¤Ë¤Ä¤¤¤Æ¤Î¾ïÈùʬÊýÄø¼°

¤È¤¤¤¦¾ïÈùʬÊýÄø¼°¤¬ÆÀ¤é¤ì¤ë¡¥
¤³¤ì¤ÏÆ󳬾ïÈùʬÊýÄø¼°¤Ç¾¯¤·°·¤¤¤Ë¤¯¤¤¤Î¤Ç¡¤Â®ÅÙ v = du/dt ¤È¤¤¤¦¿·¤·¤¤½¾Â°ÊÑ¿ô¤òƳÆþ¤·¤Æ¡¤

newton-2.png
ʪÂΤι⤵¤Ë¤Ä¤¤¤Æ¤Î¾ïÈùʬÊýÄø¼°(ÊÑ·ÁÈÇ)

¤È¤¤¤¦¤â¤Î¤ËÊÑ·Á¤·¤Æ¡¤¤³¤ì¤Ë¤Ä¤¤¤Æ¹Í¤¨¤è¤¦¡¥
¤³¤ÎÊýÄø¼°¤Ï¼ê¤Ç²ò¤±¤Æ¤·¤Þ¤¦¤¬¡¤¼ê¤Ç¸·Ì©²ò¤¬µá¤Þ¤é¤Ê¤¤¾ì¹ç¤Ë¤âÄÌÍѤ¹¤ë¹Í¤¨Êý¤È¤·¤Æº£²ó¤Ï¥×¥í¥°¥é¥à¤Ç¶á»÷²ò¤òµá¤á¤Æ¤ß¤è¤¦¡¥¤½¤ì¤Ë¤ÏÍÍ¡¹¤Ê¼êË¡¤¬¤¢¤ë¤¬¡¤º£²ó¤ÏºÇ¤âñ½ã¤Ê EulerË¡ ¤È¤¤¤¦¤â¤Î¤ò»È¤Ã¤Æ¤ß¤è¤¦¡¥


Euler Ë¡

Euler Ë¡¤È¤¤¤¦¤Î¤Ï´Êñ¤Ç¡¤»þ´ÖȯŸ¹à¤òÁ°¿Êº¹Ê¬¤Ç¶á»÷¤¹¤ë¤³¤È¤Ç¡¤¸Å¤¤»þ´Ö¤ÎÊÑ¿ôÃͤòÂåÆþ¤¹¤ë¤È¿·¤·¤¤»þ´Ö¤ÎÊÑ¿ôÃͤ¬½Ð¤Æ¤¯¤ë´Ø·¸¼°¤ËÌäÂê¤òÊÑ·Á¤¹¤ë¤â¤Î¤Ç¤¢¤ë¡¥

¤Þ¤¢¡¤ÍýÏÀ¤ò¸À¤¦¤è¤ê¸«¤¿¤Û¤¦¤¬Áᤤ¤À¤í¤¦¡¥
º£²ó¤Î¾ì¹ç¡¤»þ´ÖÊÑ¿ô t ¤ò ¢¤t ¤ÎÉý¤Ç¡Ö¹ï¤à¡×¤³¤È¤Ë¤·¤Æ¡¤¾å¤Î¾ïÈùʬÊýÄø¼°¤ò

euler.png
¾å¤Î¾ïÈùʬÊýÄø¼°¤ò Euler Ë¡¤Ç¡Ö¶á»÷¡×¤·¤¿¤â¤Î

¤È¤¹¤ë¤Î¤¬ Euler Ë¡¤Ç¤¢¤ë¡¥¤½¤·¤Æ¤³¤Î¼°¤ò¤­¤ì¤¤¤Ë½ñ¤­Ä¾¤¹¤È¡¤

euler-2.png
¾å¤Î¾ïÈùʬÊýÄø¼°¤ò Euler Ë¡¤Ç¡Ö¶á»÷¡×¤·¤¿¤â¤Î(º¸ÊÕ¤¬¡Ö¿·Ã͡ס¤±¦ÊÕ¤¬¡ÖµìÃÍ¡×)

¤È¤Ê¤ë¤Î¤Ç¡¤¤³¤ì¤ò¤ß¤ë¤È¡Ö±¦ÊÕ¤ËÃΤäƤ¤¤ëÃͤòÂåÆþ¤¹¤ë¤À¤±¤Ç¡¤¿·¤·¤¤»þ´Ö¤Ç¤ÎÃͤ¬ÆÀ¤é¤ì¤ë¡×·Á¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡¥
¾ïÈùʬÊýÄø¼°¤ò¤³¤Î¤è¤¦¤Ë¶á»÷¼°¤ËÃÖ¤­´¹¤¨¤ë¤Î¤¬ Euler Ë¡¤Ç¤¢¤ë¡¥
¤³¤ì¤Ê¤é¥×¥í¥°¥é¥à¤¬½ñ¤±¤½¤¦¤À¤È¤¤¤¦´¶¿¨¤¬ÆÀ¤é¤ì¤ë¤À¤í¤¦¡¥

warning.png ¤â¤Á¤í¤ó¡¤Euler Ë¡¤Çºî¤Ã¤¿¡Ö¶á»÷¼°¡×¤ò²ò¤¤¤ÆÆÀ¤é¤ì¤ë¤Î¤Ï¡Ö¶á»÷²ò¡×¤Ç¤¢¤ê¡¤¤â¤È¤Î¾ïÈùʬÊýÄø¼°¤Î²ò¤Ç¤Ï¤Ê¤¤¡¥¤¿¤À¡¤¤½¤ó¤Ê¤Ë°ã¤ï¤Ê¤¤¤ó¤¸¤ã¤Ê¤¤¡© ¤È¤¤¤¦´üÂÔ¤ò¤¹¤ë¤È¤¤¤¦¤³¤È¤À¤Í¡¥

ÌäÂêÀßÄê

¤µ¤Æ¡¤¥·¥ß¥å¥ì¡¼¥È¤¹¤ë¤Ë¤Ï¶ñÂÎŪ¤Ê¾ò·ï¤òµÍ¤á¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡¥
¤½¤³¤Ç¡¤°Ê²¼¤Î¤è¤¦¤Ë½é´ü¾ò·ï¤Ê¤É¤òÀßÄꤷ¤è¤¦¡¥

[½é´ü¾ò·ï]
½é´ü¹â¤µ u(0) = 1000.0 (m)
½é´ü®ÅÙ v(0) = 0.0 (m/s)

[½ªÎ»¾ò·ï]
¹â¤µ¤¬ 0 m°Ê²¼¤È¤Ê¤Ã¤¿¤é¥·¥ß¥å¥ì¡¼¥·¥ç¥ó½ªÎ».

[¶á»÷¾ò·ï]
»þ´Ö¹ï¤ßÉý ¢¤t = 0.1 sec


¥×¥í¥°¥é¥à

notes.png °Ê²¼¤ÎÉôʬ¤Ï¼Â½¬¤·¤Ê¤¬¤éÍý²ò¤·¤è¤¦¡¥

¥×¥í¥°¥é¥à¤Ï¾å¤Î¾ò·ï¤Ë½¾¤Ã¤Æ·×»»¤·¤Æ »þ´Ö, ¹â¤µ ¤Î¿ô»ú¥Ú¥¢¤ò½ÐÎϤ¹¤ë¤â¤Î¤È¤·¤è¤¦¡¥
¤¹¤ë¤È¡¤¤À¤¤¤¿¤¤°Ê²¼¤Î¤è¤¦¤Ê´¶¤¸¤Ë¤Ê¤ë¤À¤í¤¦¤«¡¥

  1. include Math
  2.  
  3. # Euler Ë¡¤Ë´ð¤Å¤¤¤Æ¡¤¼¡¤Î»þ´Ö¥¹¥Æ¥Ã¥×¤Î u,v ¤ò·×»»¤¹¤ë
  4. def euler(u,v, dt)
  5.   g = 9.8
  6.  
  7.   u_new = u + v*dt
  8.   v_new = v - g*dt
  9.  
  10.   return u_new, v_new
  11. end
  12.  
  13. # »þ´Ö¤È¹â¤µ¤ò½ÐÎϤ¹¤ë
  14. def output(u, time)
  15.   print(time,", ",u,"\n")
  16. end
  17.  
  18. # °Ê²¼¡¤¥×¥í¥°¥é¥àËÜÂÎ
  19.  
  20. # ½é´üÃÍ
  21. u = 1000.0
  22. v = 0.0
  23. time = 0.0
  24.  
  25. # »þ´Ö¹ï¤ßÉý
  26. dt = 0.1
  27.  
  28. # ¹â¤µ u ¤¬Àµ¤Î¤¦¤Á¤Ï·×»»¤ò·«¤êÊÖ¤¹
  29. while (u > 0) do
  30.  
  31.   # ¹â¤µ¤È»þ´Ö¤ò½ÐÎÏ
  32.   output(u, time)
  33.  
  34.   # Euler Ë¡¤Ç¼¡¤Î»þ´Ö¥¹¥Æ¥Ã¥×¤Î u,v ¤ò·×»»¤¹¤ë
  35.   u,v = euler(u,v,dt)
  36.  
  37.   # »þ´Ö¤ò¹¹¿·
  38.   time += dt
  39. end


¥×¥í¥°¥é¥à¤òÆ°¤«¤·¤Æ¥Ç¡¼¥¿¤òÆÀ¤ë

¾å¤Î¥×¥í¥°¥é¥à¤ò¼Â¹Ô¤·¤Æ¡¤¥Ç¡¼¥¿¤òÆÀ¤è¤¦¡¥ÆÀ¤é¤ì¤¿¥Ç¡¼¥¿¤¬²èÌ̤Ëɽ¼¨¤µ¤ì¤ë¤À¤±¤Ç¤Ï¤¢¤Þ¤êÌò¤ËΩ¤¿¤Ê¤¤¤Î¤Ç¡¤¥Õ¥¡¥¤¥ë¤ËÊݸ¤·¤è¤¦¡¥
¤½¤ì¤Ë¤ÏÎ㤨¤Ð¡¤¾å¤Î¥×¥í¥°¥é¥à¥Õ¥¡¥¤¥ë̾¤¬ euler.rb ¤À¤È¤·¤Æ¡¤

 ruby -w euler.rb > euler.dat

¤Ê¤É¤È¤·¤Æ¼Â¹Ô¤¹¤ì¤Ð¤è¤¤¡Ä¤Î¤Ï³Ð¤¨¤Æ¤¤¤ë¤Í¡© ¤³¤Î¾ì¹ç¡¤¥Ç¡¼¥¿¤¬ euler.dat ¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤ËÊݸ¤µ¤ì¤ë¡¥


ÆÀ¤é¤ì¤¿¥Ç¡¼¥¿¤òÆ°²èŪ¤Ë¸«¤Æ¤ß¤è¤¦

¾å¤Î¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë¤ò¸«¤Æ¤ß¤ë¤È¡¤Á´Éô¤Ç 144¹Ô¤¢¤ë¡¥¤½¤³¤Ç¡¤¤³¤Î 144¹Ô¤ò 1¹Ô¤º¤Ä gnuplot ¤Ê¤É¤Ç¸«¤Æ¤ß¤ì¤ÐÆ°²èŪ¤Ë¾õ¶·¤¬¸«¤é¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡¥
¤½¤³¤Ç¡¤°Ê²¼¤Î¤è¤¦¤Ëºî¶È¤·¤Æ¤ß¤è¤¦¡¥

1) gnuplot ¤ÎÆ°ºî¥Õ¥¡¥¤¥ë¤òºî¤ë: euler.plt ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤òºî¤ê¡¤¼¡¤ÎÃæ¿È¤ò½ñ¤­¹þ¤à¡¥

  1. set xrange[0:15]
  2. set yrange[0:1000]
  3. set xlabel "Time"
  4. set ylabel "Height"
  5. unset key
  6.  
  7. line=0
  8. load "euler.loop"


2) gnuplot ¤ÎÆ°ºî¥Õ¥¡¥¤¥ë¤òºî¤ë(1¹Ô¤º¤Äɽ¼¨¤¹¤ëÉôʬ): euler.loop ¤È¤¤¤¦Ì¾Á°¤Î¥Õ¥¡¥¤¥ë¤òºî¤ê¡¤¼¡¤ÎÃæ¿È¤ò½ñ¤­¹þ¤à¡¥

  1. plot "euler.dat" every ::line::line w p pt 6 ps 3
  2. line=line+1
  3. pause 0.2
  4. if(line<144) reread


3a) gnuplot (¥á¥Ë¥å¡¼ ¢ª Math ¢ª gnuplot) ¤òµ¯Æ°¤·¡¤
3b) ¾å¤Î¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë euler.dat, gnuplot ¤ÎÆ°ºî¥Õ¥¡¥¤¥ë euler.plt, euler.loop ¤Î3¤Ä¤Î¥Õ¥¡¥¤¥ë¤¬ÃÖ¤¤¤Æ¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Ë gnuplot ¤ÎÆ°ºî¥Ç¥£¥ì¥¯¥È¥ê¤ò¡Ö°ÜÆ°¡×¤µ¤»¤ë(¡Ö°ÜÆ°¡×¤È¤«¡ÖChDir¡×¤È¤«½ñ¤¤¤Æ¤¢¤ë¥Ü¥¿¥ó¤¬¤¢¤ë¤À¤í¤¦)¡¥
3c) gnuplot ¤ÎÌ¿Îá²èÌ̤Ç

 load "euler.plt"

¤ÈÆþÎϤ¹¤ë¡¥ÌäÂ꤬¤Ê¤±¤ì¤Ð¡¤°Ê²¼¤Î¿Þ¤Î¤è¤¦¤Êɽ¼¨¤ÇÆ°²èŪ¤Ë¤½¤Î¹â¤µ¤ò¼¨¤¹ ¡û °õ¤¬Æ°¤¤¤Æ¤¤¤¯¤Ï¤º¤À(²£¼´¤Ë»þ´Ö¤ò¤È¤Ã¤Æ¤¤¤ë)¡¥

gnuplot-movie.png

warning.png gnuplot ¤Ç1¹Ô¤º¤Äɽ¼¨¤ò·«¤êÊÖ¤µ¤»¤ë¤Î¤Ë»È¤Ã¤Æ¤¤¤ë¥Æ¥¯¥Ë¥Ã¥¯¤Ï¼ç¤Ë°Ê²¼¤ÎÆó¤Ä¤Ç¤¢¤ë¡¥

  • reread : ¤³¤ì¤Ï¡¤¤½¤ÎÌ¿Î᤬Æþ¤Ã¤¿¥Õ¥¡¥¤¥ë¤òÆɤßľ¤¹¤È¤¤¤¦°ÕÌ£¤Ç¤¢¤ë¡¥if ¤ÈÁȤ߹ç¤ï¤»¤Æ Ruby ¤Î while ¤ß¤¿¤¤¤Ë»È¤Ã¤Æ¤¤¤ë¡¥
  • plot Ì¿Îá¤Î¸å¤í¤Ë¤Ä¤¤¤Æ¤¤¤ë every ::line::line : ¤³¤ì¤Ï¥Ç¡¼¥¿¤ÎÂè line+1 ¹ÔÌܤΤߤòÆɤó¤Ç plot ¤·¤í¤È¤¤¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë¡¥

warning.png ¤¹¤Ù¤Æ¤Î½Ö´Ö¤Î²èÁü¤òÍÑ°Õ¤·¡¤¤½¤ì¤ò¤Ä¤Ê¤²¤ÆÆ°²è¤òºî¤ë¤È¤¤¤¦ÊýË¡¤â¤¢¤ë¡¥Í¾Íµ¤Î¤¢¤ë¤â¤Î¤Ï¤³¤Á¤é¤Ë¥Á¥ã¥ì¥ó¥¸¤¹¤ë¤Î¤â¤è¤¤¤À¤í¤¦¡¥¤Á¤Ê¤ß¤Ë¡¤²èÁü¤ò¤Ä¤Ê¤²¤ÆÆ°²è¤Ë¤¹¤ë¥½¥Õ¥È¥¦¥§¥¢¤È¤·¤ÆWindows ·Ï¤Ê¤é¤Ð

  • ¥¦¥£¥ó¥É¥¦¥º¥à¡¼¥Ó¡¼¥á¡¼¥«¡¼
    (Âç³Ø¤ÎPC ¤Î¾ì¹ç: ¥á¥Ë¥å¡¼ ¢ª ¥×¥í¥°¥é¥à ¢ª ¥¢¥¯¥»¥µ¥ê ¢ª ¥Õ¥¡¥¤¥ë̾¤ò»ØÄꤷ¤Æ¼Â¹Ô ¢ª moviemk.exe ¤ÈÆþÎÏ ¤Çµ¯Æ°): Windows ¤ËÉÕ°¤Î̵ÎÁ¥½¥Õ¥È
  • TMPGEnc ̵ÎÁÈÇ

¤Ê¤É¤¬¡¤Unix ·Ï(´Þ¤à Mac)¤Ê¤é¤Ð

  • ffmpeg

¤Ê¤É¤¬¤¢¤ë¤Î¤Ç(¼«Âð¤Ç¥¤¥ó¥¹¥È¡¼¥ë¤¬É¬Íפʤâ¤Î¤Ï¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ)»È¤Ã¤Æ¤ß¤è¤¦¡¥

º£Æü¤ÎÁí»Å¾å¤²

¾å¤ÎÎãƱÍͤˡ¤º£Å٤ϽÅÎϲ¼¤Ç Newton ¤Î±¿Æ°ÊýÄø¼°¤Ë±è¤Ã¤ÆÆ°¤¯¡Ö¿¶¤ê»Ò¤Î±¿Æ°¡×¤ò¥·¥ß¥å¥ì¡¼¥·¥ç¥ó¤·¤Æ¤ß¤è¤¦¡¥

pendulum.png

¤Þ¤º¤Ï³Æ¾ò·ï¤ò°Ê²¼¤Î¤è¤¦¤Ë¤·¤Æ¤ß¤è¤¦¡¥

[¾õ¶·¾ò·ï]
¿¶¤ê»Ò¤Îɳ¤ÎŤµ L = 1.0 m

[½é´ü¾ò·ï]
½é´ü³ÑÅÙ θ(0) = π/3 (rad) = 60.0 (ÅÙ)
½é´ü®ÅÙ dθ/dt(0) = 0.0 (rad/s)

[½ªÎ»¾ò·ï]
t = 0 sec ¤«¤é³«»Ï¤·¤Æ¡¤³Æ¼«¼«Ê¬¤Ç·è¤á¤¿»þ´Ö t = T_limit (5.0¤°¤é¤¤?)¤Þ¤Ç¥·¥ß¥å¥ì¡¼¥·¥ç¥ó¤ò¹Ô¤¦.

[¶á»÷¾ò·ï]
»þ´Ö¹ï¤ßÉý ¢¤t = 0.01 sec (¾¯¤·¾®¤µ¤¯¤·¤Æ¤ª¤¤¤¿)

[¶á»÷ÊýË¡]
Euler Ë¡

warning.png º£Å٤϶õ´Ö¤¬Æ󼡸µ¤ÎÌäÂê¤À¤¬¡¤»þ´ÖȯŸ¤¹¤ëÊÑ¿ô¤Ï¡Ö³ÑÅÙ¡×°ì¤Ä¤À¤±¤Ëµ¢Ãå¤Ç¤­¤ë¡¥
¤½¤³¤Ç¡¤¤Þ¤º¤Ï Newton ¤Î±¿Æ°ÊýÄø¼°¤ò³ÑÅÙ¤ËÂФ¹¤ë¾ïÈùʬÊýÄø¼°¤ËÊÑ·Á¤·¤è¤¦¡¥
¤½¤ì¤«¤é¡¤¾å¤ÎÎã¤Î¤è¤¦¤Ë¡¤½¾Â°ÊÑ¿ô¤ò¿·¤¿¤Ë²Ã¤¨¤ë¤³¤È¤ÇÌäÂê¤ò 1³¬¤Î¾ïÈùʬÊýÄø¼°¤ËÊÑ·Á¤·¤è¤¦¡¥
¤½¤¦¤¹¤ì¤Ð Euler Ë¡¤Ç¶á»÷Ū¤Ë²ò¤±¤ë¤À¤í¤¦¡¥
¤¢¤È¡¤¥×¥í¥°¥é¥à¤Î¥Ç¡¼¥¿½ÐÎÏ»þ¤Ë x, y ¤ÎÆ󼡸µ¤ÎºÂɸ¤ËÊÑ´¹¤·¤Ê¤¤¤ÈÆ°²è¤¬¸«¤¨¤Ê¤¤¤Î¤Ç¡¤¤½¤³¤Ïµ¤¤ò¤Ä¤±¤è¤¦¡¥

¾åµé¼Ô¸þ¤±(1)

¡ÖÆó½Å¿¶¤ê»Ò¡×(°ì¤Ä¤á¤Î¿¶¤ê»Ò¤Ë¤µ¤é¤Ë¿¶¤ê»Ò¤¬¤Ö¤é²¼¤¬¤Ã¤Æ¤¤¤ë)¤Ë¤Ä¤¤¤ÆƱÍͤ˥·¥ß¥å¥ì¡¼¥·¥ç¥ó¤·¤Æ¤ß¤è¤¦.


¾åµé¼Ô¸þ¤±(2)

Euler Ë¡¤Ç¤Ï¤Ê¤¯¡¤¸Åŵ Runge-Kutta Ë¡¤È¤è¤Ð¤ì¤ëÊýË¡¤Ë¤Ä¤¤¤ÆÄ´¤Ù¡¤¤³¤ì¤ò¶á»÷¤È¤·¤Æ»È¤Ã¤Æ¤ß¤è¤¦¡¥


¥ì¥Ý¡¼¥È

ËÜÆü¼õ¤±¤¿¹ÖµÁ¤ª¤è¤Ó¹Ô¤Ã¤¿¼Â½¬¤Ë¤Ä¤¤¤Æ¡¤´Êñ¤Ë¤Þ¤È¤á¤¿Êó¹ð¤ò¤»¤è.
¤Þ¤¿¡¤Áí»Å¾å¤²¤ÎÉôʬ¤Ç¼«Ê¬¤Ç½ñ¤¤¤¿¥×¥í¥°¥é¥à¤òÊó¹ð¤»¤è.

¤â¤Á¤í¤ó³Æ¼«¤Î

  1. ½ê°(³ØÉô¡¤³Ø²Ê)
  2. ³ØÀÒÈÖ¹æ
  3. ³Øǯ
  4. »á̾
  5. Æü»þ
  6. ´Î¿´¤Î¥ì¥Ý¡¼¥ÈÆâÍÆ(ÆÀ¤¿Ãθ«¡¤ºî¶È¤Ë¤Ä¤¤¤Æµ¤¤Å¤¤¤¿¤³¤ÈÅù¤â)

¤ò½ñ¤¯¤Î¤ò˺¤ì¤Ê¤¤¤è¤¦¤Ë.

about Icons, ClipArts

Some icons in this page are downloadable at ICONFINDER.

The "note" icon notes.png designed by Marco Martin is distributed with the LGPL licence,
the "warning" icon warning.png designed by Alexandre Moore with the GPL licence
and the "triangle" icon JNorth_arrow-right-sm.png designed by Joseph North is distributed with the Creative Commons (Attribution-Noncommercial-Share Alike 3.0 Unported) licence.

Some clip arts used in this page are downloadable at Open Clip Art Library.
We deeply appreciate their superb works. With licence, they describe that "the actual clipart content on open clipart library is Public domain" in the web.


źÉÕ¥Õ¥¡¥¤¥ë: filependulum.png 1016·ï [¾ÜºÙ] filemap-eq-2.png 79·ï [¾ÜºÙ] fileeuler.png 1108·ï [¾ÜºÙ] filegnuplot-movie.png 122·ï [¾ÜºÙ] fileroute-exp-2.png 75·ï [¾ÜºÙ] filemap-eq-1.png 1014·ï [¾ÜºÙ] filenewton.png 86·ï [¾ÜºÙ] filenewton-2.png 64·ï [¾ÜºÙ] fileroute-exp.png 77·ï [¾ÜºÙ] fileeuler-2.png 72·ï [¾ÜºÙ] fileroute-tree.png 80·ï [¾ÜºÙ]