python数据拟合固定参数_如何将数据拟合到非理想二极管方程(隐式非线性函数)并检索参数 - python...
散亂數(shù)據(jù)圖
我需要將(x,y)-數(shù)據(jù)擬合到具有兩個變量(x和y)的方程式中,并檢索5個未知參數(shù)。
我正在編寫一個腳本,以處理來自簡單.txt文件的IV數(shù)據(jù)(電流電壓),并將其擬合為稱為非理想二極管方程的方程;這是一個隱式非線性函數(shù)。
到目前為止,我已經(jīng)使用python打開了文件,將數(shù)據(jù)分類為numpy數(shù)組,繪制了原始數(shù)據(jù)的散點圖,并且我知道要適合的函數(shù)的外觀。我嘗試定義方程式,并嘗試了SciPy函數(shù)fsolve和curve_fit,但沒有運氣(也許我不好用它們)。
我只需要簡單地將數(shù)據(jù)擬合到以下方程式,檢索參數(shù)并繪制實際曲線即可:
y = a-b *(np.exp((x-y * d)/ c)-1)-(x + y * d)/ e
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import optimize
OpenFile = pd.read_csv("test.txt", sep="\t", header=0)
FileArray = np.array(OpenFile)
x = FileArray[:, 0]
y = FileArray[:, 1] * 1000.0 / 0.08
plt.scatter(x, y)
def diode(data, a, b, c, d, e):
v, j = data
return a - b * (np.exp((v - j * d) / c) - 1) - (v + j * d) / e - j
### FAILED SCIPY OPTIMIZE ATTEMPT ###
parameters, parameterscovariance = optimize.curve_fit(diode, (x,y), y,
bounds = ([0, 0, 0, 0, 0],
[np.inf, np.inf, np.inf, np.inf, np.inf]),
max_nfev=10000)
plt.plot(x, diode((x,y), parameters[0], parameters[1], parameters[2], parameters[3], parameters[4]))
plt.show()
該代碼繪制了數(shù)據(jù)點,但需要優(yōu)化二極管方程,檢索參數(shù)并繪制優(yōu)化方程。
編輯:現(xiàn)在插入嘗試使scipy優(yōu)化隱式函數(shù)
參考方案
將數(shù)據(jù)發(fā)布到某處并給出失敗的性質將很有幫助。也就是說,Python是否會給出異常,是否契合會給出錯誤消息,或者契合運行到完成,但契合只是“不好”?
您絕對希望為擬合參數(shù)提供初始值。 scipy.optimize.curve_fit()不允許用戶不指定起始值,這是一種理解,這是一個錯誤,因為它沒有指定初始值。非線性曲線擬合問題通常不是全局優(yōu)化,而是通過優(yōu)化初始值來工作的,并且通常對初始值敏感(尤其是在涉及指數(shù)衰減時)。 FWIW,當您未明確聲明所有參數(shù)的初始值時,使用的初始值為“ 1”。這是一個好的默認值嗎?不它不是。
我還認為您有一個可能更嚴重的問題。您的“ y”模型是先驗的:“ y”取決于“ y”。我不知道您使用的公式,但我可以相信二極管的I-V曲線是超驗的。除非您的d參數(shù)值是<< 1,否則我認為您的模型將不穩(wěn)定。您可能要確保d的邊界必須為<< 1,并且?guī)缀蹩梢钥隙ú幌M詃 = 1開頭。
那可能不是您想要的答案,但是我希望它能幫助您走上正確的道路。
Python GPU資源利用 - python
我有一個Python腳本在某些深度學習模型上運行推理。有什么辦法可以找出GPU資源的利用率水平?例如,使用著色器,float16乘法器等。我似乎在網(wǎng)上找不到太多有關這些GPU資源的文檔。謝謝! 參考方案 您可以嘗試在像Renderdoc這樣的GPU分析器中運行pyxthon應用程序。它將分析您的跑步情況。您將能夠獲得有關已使用資源,已用緩沖區(qū),不同渲染狀態(tài)上…Python sqlite3數(shù)據(jù)庫已鎖定 - python
我在Windows上使用Python 3和sqlite3。我正在開發(fā)一個使用數(shù)據(jù)庫存儲聯(lián)系人的小型應用程序。我注意到,如果應用程序被強制關閉(通過錯誤或通過任務管理器結束),則會收到sqlite3錯誤(sqlite3.OperationalError:數(shù)據(jù)庫已鎖定)。我想這是因為在應用程序關閉之前,我沒有正確關閉數(shù)據(jù)庫連接。我已經(jīng)試過了: connectio…Python exchangelib在子文件夾中讀取郵件 - python
我想從Outlook郵箱的子文件夾中讀取郵件。Inbox ├──myfolder 我可以使用account.inbox.all()閱讀收件箱,但我想閱讀myfolder中的郵件我嘗試了此頁面folder部分中的內(nèi)容,但無法正確完成https://pypi.python.org/pypi/exchangelib/ 參考方案 您需要首先掌握Folder的myfo…python-docx應該在空單元格已滿時返回空單元格 - python
我試圖遍歷文檔中的所有表并從中提取文本。作為中間步驟,我只是嘗試將文本打印到控制臺。我在類似的帖子中已經(jīng)看過scanny提供的其他代碼,但是由于某種原因,它并沒有提供我正在解析的文檔的預期輸出可以在https://www.ontario.ca/laws/regulation/140300中找到該文檔from docx import Document from…Python ThreadPoolExecutor抑制異常 - python
from concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED def div_zero(x): print('In div_zero') return x / 0 with ThreadPoolExecutor(max_workers=4) as execut…
總結
以上是生活随笔為你收集整理的python数据拟合固定参数_如何将数据拟合到非理想二极管方程(隐式非线性函数)并检索参数 - python...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dubbo 自定义路由_Dubbo分层架
- 下一篇: python selenium截图_py