你们知道
y = 0.02222 x6 - 0.458333 x5 + 3.597222 x4 - 13.625 x 3 + 26.880555 x 2 - 29.416666 x + 18,
(x = 1, 2, …, 7) 其中 y 四舍五入取整数。
你们知道这个函数代表的意思吗?
# %%
import numpy as np
import matplotlib.pyplot as pltx = [1, 2, 3, 4, 5, 6, 7]
y = [5, 2, 0, 1, 3, 1, 4]# %%
# 从2阶到11阶找一个函数来拟合5201314
for n_order in range(2, 11):p = np.poly1d(np.polyfit(x, y, n_order))plt.plot(x, y, 'ro', x, p(x), '-')plt.title('{} orders'.format(n_order), fontsize=22, backgroundcolor='y', color='w')plt.show()# 发现6阶效果可以# %%
p = np.poly1d(np.polyfit(x, y, 6))
# 输出系数
ffs)# %%
q = np.poly1d([0.02222, -0.458333, 3.597222, -13.625, 26.880555, -29.416666, 18])
for i in range(1, 8):print(np.int(q(i) + 0.5), end='')t = list(range(1, 8))
u = np.linspace(1, 8, 200)
plt.xlim(0, 7.5)
plt.ylim(0, 6)
plt.plot(t, q(t), 'ro', u, q(u), '-')
plt.show()
第一步画出的9个图中的6orders:
最后一个画出的图:
本文发布于:2024-02-03 00:07:50,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170689007147361.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |