前言
C++反正切函数 actan 与 actan2 计算复杂度较高,且对输入参数有要求,基于对 arctan 的泰勒展开近似计算角度,降低计算复杂度。
一、反正切函数 arctan 特性介绍
反正切函数 arctan 泰勒展开为:
同时在[-1, 1]的区间内可视为有固定系数的曲线,因此可尝试进行曲线拟合
二、最小二乘法拟合曲线
最小二乘法,x范围取[-π/4, π/4],y范围为x对应的tan值,对arctan函数进行四阶泰勒展开并忽略最小项,利用python的leastsq或curve_fit进行最小二乘拟合(最近在练习python)
代码如下(python):
import math
import numpy as np
from scipy.optimize import leastsq, curve_fit
def fun(p, x):
a1, a2, a3 = p
return x - a1 * x**3 + a2 * x**5 - a3 * x**7
def fun1(x,a1,a2,a3):
return x - a1 * x**3 + a2 * x<