質問編集履歴
2
誤った書き方をしていたようです, 失礼しました\.
test
CHANGED
File without changes
|
test
CHANGED
@@ -68,11 +68,19 @@
|
|
68
68
|
|
69
69
|
error: Result from function call is not a proper array of floats.
|
70
70
|
|
71
|
+
|
72
|
+
|
71
73
|
###該当のソースコード
|
72
74
|
|
73
75
|
|
74
76
|
|
77
|
+
|
78
|
+
|
79
|
+
```
|
80
|
+
|
75
|
-
|
81
|
+
Python
|
82
|
+
|
83
|
+
```
|
76
84
|
|
77
85
|
import numpy as np
|
78
86
|
|
1
ほぼオリジナルに近いコードに書き加えました\.
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
関数定義するとfloat64ではなくObjectで扱われてしまう.
|
test
CHANGED
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
|
40
40
|
|
41
|
-
C:\Users\
|
41
|
+
C:\Users\anaconda\lib\site-packages\scipy\optimize\minpack.py in fsolve(func, x0, args, fprime, full_output, col_deriv, xtol, maxfev, band, epsfcn, factor, diag)
|
42
42
|
|
43
43
|
144 'diag': diag}
|
44
44
|
|
@@ -52,7 +52,7 @@
|
|
52
52
|
|
53
53
|
|
54
54
|
|
55
|
-
C:\Users\
|
55
|
+
C:\Users\anaconda\lib\site-packages\scipy\optimize\minpack.py in _root_hybr(func, x0, args, jac, col_deriv, xtol, maxfev, band, eps, factor, diag, **unknown_options)
|
56
56
|
|
57
57
|
222 maxfev = 200 * (n + 1)
|
58
58
|
|
@@ -73,6 +73,54 @@
|
|
73
73
|
|
74
74
|
|
75
75
|
```Python
|
76
|
+
|
77
|
+
import numpy as np
|
78
|
+
|
79
|
+
import matplotlib.pyplot as plt
|
80
|
+
|
81
|
+
from IPython.display import clear_output
|
82
|
+
|
83
|
+
from scipy import (optimize, exp)
|
84
|
+
|
85
|
+
from scipy import *
|
86
|
+
|
87
|
+
%matplotlib inline
|
88
|
+
|
89
|
+
from sympy import *
|
90
|
+
|
91
|
+
init_printing()
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
var("Tt2")
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
def func1(Tt2):
|
100
|
+
|
101
|
+
return Tt1*(((((ρ1*Cz1*A1*R)/(C2*A2))*(Tt2-(C2**2)/(2*Cp)))+((ρ1*Cz1*A1*C2)/(2*A2)))**((γ-1)/(γ*ec)))-(pt1**((γ-1)/(γ*ec)))*Tt2 #func1は, 与えられたC2からTt2を返す.
|
102
|
+
|
103
|
+
func1(Tt2)
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
Tt2 = np. linspace(100, 500, 1000)
|
108
|
+
|
109
|
+
plt. plot(Tt2, func1(Tt2))
|
110
|
+
|
111
|
+
plt. show()
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
ans_Tt2 = optimize.fsolve(func1, 300) #ここでfunc1は機能し, 値を返してくれる.
|
116
|
+
|
117
|
+
Tt2 = ans_Tt2[0]
|
118
|
+
|
119
|
+
print("Tt2 = ", Tt2)
|
120
|
+
|
121
|
+
T2 = Tt2 - (C2**2)/(2*Cp)
|
122
|
+
|
123
|
+
|
76
124
|
|
77
125
|
|
78
126
|
|