teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

p、値について追記

2022/07/11 08:12

投稿

yusuke.
yusuke.

スコア66

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
  q0=0
9
9
  ```
10
10
  を解きたいです。
11
- 現在、ウェブサイトでルンゲクッタ法の解き方を自分で調べて書いてみたのですが、明らかにおかしな値になっています。
11
+ 現在、ウェブサイトでルンゲクッタ法の解き方を自分で調べて書いてみたのですが、明らかにおかしな値(sin,cos の値になっていない)になっています。
12
12
  参考にしたところに書いてあったのは
13
13
  ```ここに言語を入力
14
14
  d^2y/dx^2=f(x,y,y')
@@ -53,4 +53,7 @@
53
53
  q += (dq1 + 2 * dq2 + 2 * dq3 + dq4)*(h/6.0);
54
54
     t = t0 + i*h;
55
55
  printf("q(%f)=%f\n", t, q);
56
+    p += (dp1 + 2 * dp2 + 2 * dp3 + dp4)*(h/6.0);
57
+ printf("p(%f)=%f\n", t, p);
56
58
  ```
59
+

1

タグを編集し、tについてのご指摘を変更しました

2022/07/08 06:54

投稿

yusuke.
yusuke.

スコア66

title CHANGED
File without changes
body CHANGED
@@ -41,7 +41,7 @@
41
41
 
42
42
 
43
43
  for ( i=1; i <= n ; i++){
44
- t = t0 + i*h;
44
+
45
45
  dp1 = -q;
46
46
  dq1 = p;
47
47
  dp2 = -(q+dq1/2);
@@ -51,5 +51,6 @@
51
51
  dp4 = -(q + dq3);
52
52
  dq4 = p+ dp3;
53
53
  q += (dq1 + 2 * dq2 + 2 * dq3 + dq4)*(h/6.0);
54
+    t = t0 + i*h;
54
55
  printf("q(%f)=%f\n", t, q);
55
56
  ```