Advertisement
Guest User

Untitled

a guest
May 25th, 2015
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.83 KB | None | 0 0
  1.  
  2. <!DOCTYPE html>
  3. <html lang="ja">
  4. <head>
  5. <script>
  6. function rungekutta(n,xn,f0,f1,x0,y00,y10) {
  7. var h = (xn - x0) / n;
  8. var xi = x0, obj = [y00,y10];
  9. function step(x,obj) {
  10. var y0 = obj[0], y1 = obj[1];
  11. var k01 = h*f0(x, y0, y1),
  12. k11 = h*f1(x, y0, y1),
  13. k02 = h*f0(x+h/2, y0+k01/2, y1+k11/2),
  14. k12 = h*f1(x+h/2, y0+k01/2, y1+k11/2),
  15. k03 = h*f0(x+h/2, y0+k02/2, y1+k12/2),
  16. k13 = h*f1(x+h/2, y0+k02/2, y1+k12/2),
  17. k04 = h*f0(x+h, y0+k03, y1+k13),
  18. k14 = h*f1(x+h, y0+k03, y1+k13);
  19. obj[0] += (k01+2*k02+2*k03+k04)/6;
  20. obj[1] += (k11+2*k12+2*k13+k14)/6;
  21. }
  22. for (var i = 0; i < n; xi = x0 + h*++i) {
  23. step(xi,obj);
  24. }
  25. return obj;
  26. }
  27. function solve() {
  28. var elem0 = document.getElementById("result0"),
  29. elem1 = document.getElementById("result1"),
  30. n = document.getElementById("precision").value,
  31. x = document.getElementById("x").value,
  32. f0str = document.getElementById("function0").value,
  33. f1str = document.getElementById("function1").value,
  34. x0 = document.getElementById("x0").value,
  35. y00 = document.getElementById("y00").value,
  36. y10 = document.getElementById("y10").value;
  37. var f0 = new Function("x","y0","y1",f0str),
  38. f1 = new Function("x","y0","y1",f1str);
  39. var res = rungekutta(+n, +x, f0, f1, +x0, +y00, +y10);
  40. elem0.value = res[0];
  41. elem1.value = res[1];
  42. }
  43. var dict = {
  44. // hoge: { xn: , f0: , f1: , x0: , y00: , y10: }
  45. nothing: {},
  46. cos1: { xn: 1, f0: "return y1", f1: "return -y0", x0: 0, y00: 1, y10: 0 },
  47. second: { f0: "return y1", f1: "/* y0''(x,y0,y0') */" }
  48. }
  49. window.onload = function () {
  50. var ex = document.getElementById("examples");
  51. for (var i in dict) {
  52. var opt = document.createElement("option");
  53. opt.value = i; opt.textContent = i;
  54. ex.appendChild(opt);
  55. }
  56. }
  57. function selectExample(ev) {
  58. var ex = dict[ev.target.value];
  59. document.getElementById("x").value = ex.xn || null;
  60. document.getElementById("function0").value = ex.f0 || null;
  61. document.getElementById("function1").value = ex.f1 || null;
  62. document.getElementById("x0").value = ex.x0 || null;
  63. document.getElementById("y00").value = ex.y00 || null;
  64. document.getElementById("y10").value = ex.y10 || null;
  65. }
  66. </script>
  67. </head>
  68. <body>
  69. <p>precision is <input id="precision" value="100"></input></p>
  70. <p>dy0/dx = <input id="function0"></input></p>
  71. <p>dy1/dx = <input id="function1"></input></p>
  72. <p>y0(<input id="x0"></input>)
  73. = <input id="y00"></input></p>
  74. <p>y1( )
  75. = <input id="y10"></input></p>
  76. <button onclick="solve()">Solve</button>
  77. <p>y0(<input id="x"></input>)
  78. = <input type="text" id="result0" size="25" readonly></input></p>
  79. <p>y1( )
  80. = <input type="text" id="result1" size="25" readonly></input></p>
  81. <p>
  82. you can choose example:
  83. <select id="examples" onchange="selectExample(event)">
  84. </select>
  85. </p>
  86. </body>
  87. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement