回答編集履歴

1

グラフ追加

2020/07/23 21:22

投稿

Penpen7
Penpen7

スコア698

test CHANGED
@@ -1,6 +1,6 @@
1
- 色々ややこので、間違はご容赦ください
1
+ x,yにリストとて座標を追加し、numpy配列に変換すれば以下のソースコード計算できると思ます
2
2
 
3
- x,yにリストとして座標を追加し、numpyの配列に変換すれば以下のソースコードで計算できると思ます
3
+ Ax=rとしてa,b,c,dは三次関数の係数。
4
4
 
5
5
  ```python
6
6
 
@@ -11,8 +11,6 @@
11
11
  x = np.array([0, 1, 4, 5, 8])
12
12
 
13
13
  y = np.array([0, 3, 3, 1, 2])
14
-
15
-
16
14
 
17
15
  n = len(x)-1
18
16
 
@@ -60,17 +58,19 @@
60
58
 
61
59
 
62
60
 
63
- b = np.empty(n+1)
61
+ r = np.zeros(n+1)
64
62
 
65
- b[:] = 0
66
-
67
- b[1:-1] = (3/h)[1:]*(a[2:]-a[1:-1])-(3/h)[:-1]*(a[1:-1]-a[:-2])
63
+ r[1:-1] = (3/h)[1:]*(a[2:]-a[1:-1])-(3/h)[:-1]*(a[1:-1]-a[:-2])
68
64
 
69
65
 
70
66
 
71
- c = np.dot(Ainv, b)
67
+ c = np.dot(Ainv, r)
72
68
 
73
69
 
70
+
71
+ d = (c[1:]-c[:-1])/(3*h)
72
+
73
+ b = (a[1:]-a[:-1])/h-h/3*(2*c[:-1]+c[1:])
74
74
 
75
75
  print("x", x, "y", y)
76
76
 
@@ -80,9 +80,17 @@
80
80
 
81
81
  print(A)
82
82
 
83
+ print("r", r)
84
+
85
+
86
+
87
+ print("a", a)
88
+
83
89
  print("b", b)
84
90
 
85
91
  print("c", c)
92
+
93
+ print("d", d)
86
94
 
87
95
  ```
88
96
 
@@ -106,8 +114,18 @@
106
114
 
107
115
  [0. 0. 0. 0. 1.]]
108
116
 
109
- b [ 0. -9. -6. 7. 0.]
117
+ r [ 0. -9. -6. 7. 0.]
118
+
119
+ a [0 3 3 1 2]
120
+
121
+ b [ 3.31018519 2.37962963 -1.96759259 -1.5462963 ]
110
122
 
111
123
  c [ 0. -0.93055556 -0.51851852 0.93981481 0. ]
112
124
 
125
+ d [-0.31018519 0.04578189 0.48611111 -0.10442387]
126
+
113
127
  ```
128
+
129
+ ![イメージ説明](e3fd9e612e19ba01268a2ec4ecedbd77.png)
130
+
131
+ ![イメージ説明](c5c67075d9de612e33dc8a6d5a2c03a0.png)