python 資料擬合求解方程引數

2021-10-09 15:44:06 字數 1833 閱讀 7271

首先引入三件套和scipy

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

from scipy.optimize import curve_fit

拿到實驗資料,通過pandas讀取為dataframe

將資料繪製出來,以方便確認使用哪種方程進行擬合

從上圖曲線可以推斷出,我們的資料應該符合指數分布,所以下面定義乙個指數函式,將引數使用a,b,c預留出來.

def

func

(x,a,b,c)

:return a*np.exp(b*x)

+ c

進行擬合,得出上一步定義的引數, popt中得出的三個值分別代表上述函式中的三個引數 a,b,c

popt, pcov = curve_fit(func, data[

'ind'

], data[

'val'])

print

(popt)[-

443.68006622

-2.49480416

1293.98737632

]

至此我們的求解已經結束,下面用得到的結果繪製出函式曲線以驗證結果的正確性

'''

'''# 原始資料

plt.plot(data[

'ind'

], data[

'val'],

'*',label=

'original values'

)# 擬合出的資料

求解方程 語言 c

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述 用牛頓迭代法求方程2x 3 4x 2 3xsinx 6 0的根,要求誤差小於10的 6次方。輸入 乙個浮點數,表示起始點。輸出 乙個浮點數,為方程的根。輸入樣例 1.0輸出樣例 2.064076 include include...

MathCAD求解方程組

1 解一元一次方程 root函式 格式 root f x x 例 x 0 定義變數 x 此步不能省 f x 3x 6 root f x x 2 根為2 2 解一元高次方程 格式 polyroots v 其中v是係數矩陣 公升冪排列 例 f x x3 10x 2 r polyroots v 3 解線性...

MATLAB 求解方程(組)

eg.解方程x 2 x 2 0 1.roots p 函式 此 matlab 函式 以列向量的形式返回 p 表示的多項式的根。輸入 p 是乙個包含 n 1 多項式係數的向量,以 xn 係數開頭。0係數表示方程中不存在的中間冪。p 1 1,2 x roots p 2.solve函式 利用solve函式求...