找个函数来拟合5201314

你们知道

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 plt

x = [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))
# 输出系数
print(p.coeffs)

# %%
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:
在这里插入图片描述

最后一个画出的图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值