簡體   English   中英

我如何使用 SciPy 根 function 為 m 求解這個方程,我該如何編寫它

[英]How do i solve this equation for m using SciPy root function and how do i write it

```
import numpy as np

K = 1.38e-23
z = 8
J = 1.8e-21
T = 1
m = 0

```

這些只是常數

  m = np.tanh((z*J*m)/(K*T))

這是等式,但我需要為每個 T 值找到每個 m 值,所以我不確定在循環 T 和 m 時嵌套循環是否會更好,因為我已經嘗試過並且無法正常工作我'我只是不確定該怎么做,所以任何幫助都會很棒。 T 也在 1 - 1501 范圍內

我仍然不確定你真正需要什么。

如果您進行一些優化以找到一些minmax ,您應該再次查看是否您向我們提供的信息比需要的少(例如,您說m=0但對於任何T給出的答案都是 0 。您可能想要范圍mT . 然后是另一個故事。

如果沒有 scipy,如果您願意只計算 function 兩個參數mT的結果,您可以使用linspace例如設置范圍和步長。

import numpy as np
import matplotlib.pyplot as plt
def func(T, m):
    z = 8
    K = 1.38e-23
    J = 1.8e-21
    return np.tanh((z*J*m)/(K*T))

xaxis = np.linspace(1, 1501, 1500)
yaxis = np.linspace(0, 10, 10)
result = func(xaxis[:,None], yaxis[None,:])
plt.plot(result)

你會得到如下的結果,幾條曲線。 但是我將 m 設置在范圍內,您可能需要其他值。 由你決定。 檢查和 go。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM