当前位置: 首页 > 知识库问答 >
问题:

用最小二乘法求正弦近似

鲁文昌
2023-03-14

我正在做一个项目,用最小二乘法找到正弦函数的近似值。我也可以用我自己选择的12个值。由于我不知道如何求解,我想到用泰勒级数来求解正弦,然后用5阶多项式来求解。下面是我的代码:

%% Find the sine of the 12 known values
x=[0,pi/8,pi/4,7*pi/2,3*pi/4,pi,4*pi/11,3*pi/2,2*pi,5*pi/4,3*pi/8,12*pi/20];
y=zeros(12,1);
for i=1:12
    y=sin(x);
end
n=12;
j=5;
%% Find the sums to populate the matrix A and matrix B
s1=sum(x);s2=sum(x.^2);
s3=sum(x.^3);s4=sum(x.^4);
s5=sum(x.^5);s6=sum(x.^6);
s7=sum(x.^7);s8=sum(x.^8);
s9=sum(x.^9);s10=sum(x.^10);
sy=sum(y);
sxy=sum(x.*y);
sxy2=sum( (x.^2).*y);
sxy3=sum( (x.^3).*y);
sxy4=sum( (x.^4).*y);
sxy5=sum( (x.^5).*y);
A=[n,s1,s2,s3,s4,s5;s1,s2,s3,s4,s5,s6;s2,s3,s4,s5,s6,s7;
    s3,s4,s5,s6,s7,s8;s4,s5,s6,s7,s8,s9;s5,s6,s7,s8,s9,s10];
B=[sy;sxy;sxy2;sxy3;sxy4;sxy5];

然后在matlab中得到这个结果

>> a=A^-1*B
a =
   -0.0248
    1.2203
   -0.2351
   -0.1408
    0.0364
   -0.0021
>> t=pi/2;
fun=t-t^3*a(4)+a(6)*t^5
fun =
    2.0967

共有1个答案

夏侯嘉荣
2023-03-14

如果需要最小二乘近似,只需确定一个要近似的固定间隔,并在该间隔上生成一些x横坐标(可以使用linspace等间距横坐标-或像示例中那样非均匀间距)。然后在每个点计算你的正弦函数,这样你就有了

y = sin(x)

然后简单地使用polyfit函数(这里有文档)来获得最小二乘参数

b = polyfit(x,y,n)

其中n是要近似的多项式的次。然后,您可以使用polyval(这里有文档说明)来获得x的其他值的近似值。

A = ones(length(x),1);
x = x';
for i=1:n
    A = [A x.^i];
end
b = A\y;

您可以清楚地优化上面的笨拙的Vandermonde生成循环,我刚刚编写了这个循环来说明这个概念。为了更好的数值稳定性,你最好使用一个好的正交多项式系统,比如第一类切比雪夫多项式。如果您甚至不允许使用矩阵divide\函数,那么您将需要编写自己的QR分解实现,并以这种方式(或其他一些数值稳定的方法)求解系统。

 类似资料:
  • 最小二乘法是用来做函数拟合或者求函数极值的方法。在机器学习,尤其是回归模型中,经常可以看到最小二乘法的身影,这里就对我对最小二乘法的认知做一个小结。 1.最小二乘法的原理与要解决的问题 最小二乘法是由勒让德在19世纪发现的,原理的一般形式很简单,当然发现的过程是非常艰难的。形式如下式: 目标函数 = Σ(观测值-理论值) $$^2$$ 观测值就是我们的多组样本,理论值就是我们的假设拟合函数。目标函

  • 1 原理   给定n个带权的观察样本$(w_i,a_i,b_i)$: $w_i$表示第i个观察样本的权重; $a_i$表示第i个观察样本的特征向量; $b_i$表示第i个观察样本的标签。   每个观察样本的特征数是m。我们使用下面的带权最小二乘公式作为目标函数: minimize{x}\frac{1}{2} \sum{i=1}^n \frac{wi(a_i^T x -b_i)^2}{\sum{k=

  •   spark中的非负正则化最小二乘法并不是wiki中介绍的NNLS的实现,而是做了相应的优化。它使用改进投影梯度法结合共轭梯度法来求解非负最小二乘。 在介绍spark的源码之前,我们要先了解什么是最小二乘法以及共轭梯度法。 1 最小二乘法 1.1 最小二乘问题   在某些最优化问题中,目标函数由若干个函数的平方和构成,它的一般形式如下所示:   其中x=(x1,x2,…,xn),一般假设m>=n

  • 主要内容:语法,示例当对真实世界数据建模进行回归分析时,我们观察到模型的方程很少是给出线性图的线性方程。 大多数情况下,现实世界数据模型的方程式涉及更高程度的数学函数,如或函数的指数。 在这种情况下,模型的曲线给出了曲线而不是线性。线性和非线性回归的目标是调整模型参数的值以找到最接近您的数据的线或曲线。当找到这些值时,我们才能够准确估计响应变量。 在最小二乘回归中,我们建立了一个回归模型,不同点与回归曲线的垂直距离的

  • 在对真实世界数据进行建模以进行回归分析时,我们观察到模型方程很少是给出线性图的线性方程。 大多数情况下,现实世界数据模型的方程涉及更高程度的数学函数,如指数为3或sin函数。 在这种情况下,模型的图给出曲线而不是线。 线性回归和非线性回归的目标是调整模型参数的值,以找到最接近数据的直线或曲线。 在找到这些值后,我们将能够以良好的准确度估计响应变量。 在最小二乘回归中,我们建立一个回归模型,其中不同

  • 1 原理   迭代再加权最小二乘(IRLS)用于解决特定的最优化问题,这个最优化问题的目标函数如下所示: arg min{\beta} \sum{i=1}^{n}|y{i} - f{i}(\beta)|^{p}   这个目标函数可以通过迭代的方法求解。在每次迭代中,解决一个带权最小二乘问题,形式如下: \beta ^{t+1} = argmin{\beta} \sum{i=1}^{n} w{i}(