亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在圖形上打印擬合詳細信息并繪制多項式擬合

在圖形上打印擬合詳細信息并繪制多項式擬合

吃雞游戲 2023-09-19 14:53:42
兩部分問題:通過一堆拼湊在一起的谷歌搜索,我設法將Python中的代碼粘合在一起,以獲取列表的日志并將其與原始列表進行比較,并應用最佳擬合的線性線(下面的代碼,合成數據) 。我將如何在圖表本身上打印此線性擬合的詳細信息(例如梯度、y 截距、卡方)?我如何修改代碼以對多項式擬合(例如 x^2 線)執行相同的操作?import numpy as npimport matplotlib.pyplot as pltfrom scipy.optimize import curve_fitfrom numpy import exp, loadtxt, pi, sqrt, random, linspacefrom lmfit import Modelimport glob, osx=[2,3,5,7,11,13,17,19,23,29,31]y=np.log10(x)print(y)plt.scatter(x, y, label="prime-logs", color="red",            marker="1", s=50)plt.xlabel('Primes')plt.ylabel('Log10 Primes')plt.title('Non-Log Plot of Log Prime v Prime')plt.legend()plt.plot(np.unique(x), np.poly1d(np.polyfit(x, y, 1))(np.unique(x)))plt.show()
查看完整描述

1 回答

?
富國滬深

TA貢獻1790條經驗 獲得超9個贊

這是一個解決方案。此處僅顯示卡方(作為殘差平方和)。注意,這里不存在梯度下降,np.polyfit因為問題是最小二乘問題,可以直接用SVD偽逆矩陣計算來解決。


使用允許您提取反演的每個步驟的算法(使用梯度下降或任何其他優化器),將允許您在同一圖上顯示擬合的每個步驟。


import numpy as np

import matplotlib.pyplot as plt

from scipy.optimize import curve_fit

from numpy import exp, loadtxt, pi, sqrt, random, linspace


# from lmfit import Model

import glob, os


x = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]

y = np.log10(x)

print(y)


plt.plot(x, y, "1", ms=8, label="prime-logs")



y1, r, *_ = np.polyfit(x, y, 1, full=True)

f1 = np.poly1d(y1)

plt.plot(x, f1(x), label=f"linear ($\chi^2$ = {r[0]:0.2f})")


y2, r, *_ = np.polyfit(x, y, 2, full=True)

f2 = np.poly1d(y2)

plt.plot(x, f2(x), label=f"quadratic ($\chi^2$ = {r[0]:0.2f})")


plt.xlabel("Primes")

plt.ylabel("Log10 Primes")

plt.title("Non-Log Plot of Log Prime v Prime")

plt.legend()

https://img1.sycdn.imooc.com//650945a9000166fb05760452.jpg

查看完整回答
反對 回復 2023-09-19
  • 1 回答
  • 0 關注
  • 105 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號