1 回答
TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
這是一個(gè)解決方案。此處僅顯示卡方(作為殘差平方和)。注意,這里不存在梯度下降,np.polyfit因?yàn)閱?wèn)題是最小二乘問(wèn)題,可以直接用SVD偽逆矩陣計(jì)算來(lái)解決。
使用允許您提取反演的每個(gè)步驟的算法(使用梯度下降或任何其他優(yōu)化器),將允許您在同一圖上顯示擬合的每個(gè)步驟。
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()

添加回答
舉報(bào)
