python计算分段函数的值的代码_分段函数:求方程并用数据点求解

不知道你是基于什么理由说结果不接近数据点。当我把它们画出来的时候,它们看起来很好:#!/usr/bin/env python2.7

import matplotlib.pyplot as plt

import numpy as np

from scipy.interpolate import interp1d

x = np.array([1000, 1010, 1020, 1030, 1040, 1050,

1060, 1070, 1080, 1090, 1100, 1110])

y = np.array([0, 50, 100, 250, 300, 350,

500, 550, 600, 750, 800, 850])

A = np.vstack([ x, np.ones(12)])

m, c = np.linalg.lstsq(A.T, y)[0]

sol = m*x + c

finterp = interp1d(x, y)

print x[9], finterp(x[9]), y[9]

plt.plot(x, y, 'o', label='data')

plt.plot(x, sol, '-.', label='fit')

plt.plot(x, finterp(x), '-', label='interpolated')

plt.xlabel('x')

plt.ylabel('y')

plt.legend(loc='best')

plt.show()

基于评论,我添加了插值。我不太喜欢这种方法(如果已经知道的话,我更喜欢定义函数),因为当数据是噪声时,可能会导致过度拟合,但插值似乎更接近您想要的结果。在

6PCI4.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值