sin函数对照表_正弦函数表

Modify Red Max value and Point count to the value you want

Level

Max Value

Point Count

Point Number

Degree

Sin Value

30

255

45

0

0

0

30

255

45

1

0.034906585

0.034899497

30

255

45

2

0.06981317

0.069756474

30

255

45

3

0.104719755

0.104528463

30

255

45

4

0.13962634

0.139173101

30

255

45

5

0.174532925

0.173648178

30

255

45

6

0.20943951

0.207911691

30

255

45

7

0.244346095

0.241921896

30

255

45

8

0.27925268

0.275637356

30

255

45

9

0.314159265

0.309016994

30

255

45

10

0.34906585

0.342020143

30

255

45

11

0.383972435

0.374606593

30

255

45

12

0.41887902

0.406736643

30

255

45

13

0.453785606

0.438371147

30

255

45

14

0.488692191

0.469471563

30

255

45

15

0.523598776

0.5

30

255

45

16

0.558505361

0.529919264

30

255

45

17

0.593411946

0.559192903

30

255

45

18

0.628318531

0.587785252

30

255

45

19

0.663225116

0.615661475

30

255

45

20

0.698131701

0.64278761

30

255

45

21

0.733038286

0.669130606

30

255

45

22

0.767944871

0.69465837

30

255

45

23

0.802851456

0.7193398

30

255

45

24

0.837758041

0.743144825

30

255

45

25

0.872664626

0.766044443

30

255

45

26

0.907571211

0.788010754

30

255

45

27

0.942477796

0.809016994

30

255

45

28

0.977384381

0.829037573

30

255

45

29

1.012290966

0.848048096

30

255

45

30

1.047197551

0.866025404

30

255

45

31

1.082104136

0.882947593

30

255

45

32

1.117010721

0.898794046

30

255

45

33

1.151917306

0.913545458

30

255

45

34

1.186823891

0.927183855

30

255

45

35

1.221730476

0.939692621

30

255

45

36

1.256637061

0.951056516

30

255

45

37

1.291543646

0.961261696

30

255

45

38

1.326450232

0.970295726

30

255

45

39

1.361356817

0.978147601

30

255

45

40

1.396263402

0.984807753

30

255

45

41

1.431169987

0.990268069

30

255

45

42

1.466076572

0.994521895

30

255

45

43

1.500983157

0.99756405

30

255

45

44

1.535889742

0.999390827

30

255

45

45

1.570796327

1

30

255

45

46

1.605702912

0.999390827

30

255

45

47

1.640609497

0.99756405

30

255

45

48

1.675516082

0.994521895

30

255

45

49

1.710422667

0.990268069

30

255

45

50

1.745329252

### Python 中的函数拟合 #### 使用 `numpy.polyfit` 和 `numpy.poly1d` 对于多项式拟合,可以利用 NumPy 库中的两个功能强大的工具——`polyfit` 和 `poly1d`。前者用于计算最小二乘法下的最佳拟合系数;后者则创建了一个方便调用的一维多项式对象。 ```python import numpy as np import matplotlib.pyplot as plt # 假设有一组数据点 (x, y) x = np.array([0, 1, 2, 3, 4]) y = np.array([-1, 0.7, 0.9, 0.8, -1]) degree = 3 # 设定为三次方程 coefficients = np.polyfit(x, y, degree)[^2] polynomial = np.poly1d(coefficients) print(f'Fitted polynomial coefficients: {coefficients}') print('Polynomial function:', str(polynomial)) plt.scatter(x, y, color='red') xp = np.linspace(min(x), max(x)) yp = polynomial(xp) plt.plot(xp, yp, label=f'Degree={degree} fit') plt.legend() plt.show() ``` 这段代码展示了如何通过给定的数据集来找到最合适的三次多项式的参数,并绘制原始散点图及其对应的拟合曲线。 #### 利用 SciPy 进行更复杂的插值与平滑处理 当面对更加复杂的情况时,SciPy 提供了一系列高级算法来进行不同类型的拟合工作。例如: - **线性和样条插值** 可以借助于 `scipy.interpolate.interp1d` 来完成; - 对含有噪声的数据序列应用萨维奇尔-戈利滤波器 (`savgol_filter`) 能够有效地去除高频干扰并保持趋势特征不变。 下面是一个简单的例子展示如何使用 Savitzky-Golay 滤波器对带有随机噪音的时间序列信号进行平滑化操作: ```python from scipy.signal import savgol_filter np.random.seed(0) # 设置种子以便重复实验结果 time_series = np.sin(np.linspace(0, 10 * np.pi, num=50)) + \ 0.5 * np.random.randn(len(x)) filtered_signal = savgol_filter(time_series, window_length=7, polyorder=3) fig, ax = plt.subplots(figsize=(8, 6)) ax.plot(time_series, 'b-', lw=2, alpha=0.4, label="Noisy signal") ax.plot(filtered_signal, 'r-', lw=2, label="Filtered signal") ax.set_xlabel("Time index", fontsize=14) ax.set_ylabel("Amplitude", fontsize=14) ax.grid(True) ax.legend(loc='best', frameon=False); ``` 此段脚本先生成了一串正弦波动加上一定比例的标准正态分布白噪声音频片段作为输入源材料,接着采用七阶宽度窗口配合三阶多项式模型执行 SG 滤镜运算得到净化后的输出版本. #### 多变量高次项拟合案例分析 针对多维度空间内的非线性关系建模需求,则可考虑引入 Scikit-Learn 的预处理器模块所提供的 `PolynomialFeatures` 类型转换机制,它允许用户自定义目标达式的最高幂次数目从而构建出更高层次结构化的回归预测框架. ```python from sklearn.linear_model import LinearRegression from sklearn.pipeline import make_pipeline X = [[i / 10., i % 10.] for i in range(-50, 50)] Y = [(xi[0]**2 + xi[1]**2)**0.5 for xi in X] model = make_pipeline(PolynomialFeatures(degree=2), LinearRegression()) model.fit(X, Y) test_points = [[a/10., b%10.]for a,b in zip(range(-10, 10),range(-10, 10))] predictions = model.predict(test_points) for point,prediction in zip(test_points[:5], predictions[:5]): print(f"Point ({point}) -> Predicted value: {prediction:.3f}") # 输出部分样本测试点与其对应估计值得对照表 ``` 上述程序实现了基于二次曲面假设条件下的欧式距离估算任务,在此基础上还可以进一步扩展至任意指定形式的目标函数形态之上[^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值