Все константы известны, кроме Ts2. Я хочу выполнить итерацию для нескольких значений r2, но я также хочу знать, чему равна любая из сторон уравнения. Как бы я go решил что-то подобное в Python?
Небольшая заметка, не уверен, что это важно, но знаменатель правой стороны должен быть в отрицательной степени 1.
Я посмотрел на fsolve в scipy, но не понимаю, как бы я go написал о написании кода.
Редактировать: я получил ошибку при попытке использовать этот метод. Вот мой код:
def f(ts2, r2):
e = 0.2
ts1 = 90
r1 = 0.25
o = 5.67 * 10 ** -8
k = 0.00016
tsur = 298
lhand = (ts2 - ts1) / ((1 / (4 * np.pi * k)) * ((1 / r1) - (1 / r2)))
rhand = (tsur - ts2) / (4 * np.pi * r2 * r2 * (e * o * (ts2 + tsur) * (ts2 * ts2 + tsur * tsur))) ** -1
return lhand - rhand
rvalues = np.linspace(0.251, 0.3, num=50)
y = np.zeros_like(rvalues)
i = 0
for ele in rvalues:
y[i] = fsolve(f, 280., args=[ele, ]) # Here it says: Expected type ndarray got float instead.
i += 1
код в блоке - это, в основном, вся программа, в которой пропущены операции импорта и некоторые строки pyplot. редактировать: полное сообщение об ошибке:
Traceback (most recent call last):
File "C:/Users/djoha/OneDrive/Dokumenter/Skole/Python/Vår20/Varme/Øving4/1b.py", line 23, in <module>
y[i] = fsolve(f, 280., args=[ele, ])
File "C:\Users\djoha\OneDrive\Dokumenter\Skole\Python\venv\lib\site-packages\scipy\optimize\minpack.py", line 147, in fsolve
res = _root_hybr(func, x0, args, jac=fprime, **options)
File "C:\Users\djoha\OneDrive\Dokumenter\Skole\Python\venv\lib\site-packages\scipy\optimize\minpack.py", line 213, in _root_hybr
shape, dtype = _check_func('fsolve', 'func', func, x0, args, n, (n,))
File "C:\Users\djoha\OneDrive\Dokumenter\Skole\Python\venv\lib\site-packages\scipy\optimize\minpack.py", line 26, in _check_func
res = atleast_1d(thefunc(*((x0[:numinputs],) + args)))
File "C:/Users/djoha/OneDrive/Dokumenter/Skole/Python/Vår20/Varme/Øving4/1b.py", line 13, in f
lhand = (ts2 - ts1) / ((1 / (4 * np.pi * k)) * ((1 / r1) - (1 / r2)))
TypeError: unsupported operand type(s) for /: 'int' and 'list'