利用最小二乘法求解拟合曲线

  • 格式:docx
  • 大小:136.78 KB
  • 文档页数:5

下载文档原格式

  / 5
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

利用最小二乘法求解拟

合曲线

IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

实验三函数逼近

一、 实验目标

1.掌握数据多项式拟合的最小二乘法。

2.会求函数的插值三角多项式。

二、实验问题

(2)求函数()2cos f x x x =在区间[,]ππ-上的插值三角多项式。

三、 实验要求

1.利用最小二乘法求问题(1)所给数据的3次、4次拟合多项式,画出拟合曲线。

2.求函数()2cos f x x x =在区间[,]ππ-上的16次插值三角多项式,并画出插值多项式的图形,与()f x 的图形比较。

3.对函数()2cos f x x x =,在区间[,]ππ-上的取若干点,将函数值作为数据进行适当次数的最小二乘多项式拟合,并计算误差,与上题中的16次插值三角多项式的结果进行比较。

《数值分析》实验报告

项式,画出拟合曲线 【实验目标】

(1)加深对用最小二乘法求拟合多项式的理解 (2)学会编写最小二乘法的数值计算的程序;

【理论概述与算法描述】

在函数的最佳平方逼近中()[,]f x C a b ∈,如果()f x 只在一组离散点集{,0,1,,}i x i m =⋅⋅⋅上给出,这就是科学实验中经常见到的实验数据{(,),0,1,,}i i x y i m =⋅⋅⋅的曲线拟合,这里

(),0,1,,i i y f x i m ==⋅⋅⋅,要求一个函数*()y S x =与所给数据{(,),0,1,,}i i x y i m =⋅⋅⋅拟合,若

记误差*()(0,1,,)i i i S x y i m δ=-=⋅⋅⋅,()01,,,T

m δδδδ=⋅⋅⋅,设01(),(),,()n x x x ϕϕϕ⋅⋅⋅是[,]C a b 上的线性无关函数族,在01{(),(),,()}n span x x x ϕϕϕϕ=⋅⋅⋅中找一个函数*()S x ,使误差平方和

|2

2

22*

2

()0

|||[()][()]min m

m

m

i

i i i i S x i i i S x y S x y ϕδδ∈=====-=-∑∑∑

这里

这就是一般的最小二乘逼近,用几何语言说,就称为曲线拟合的最小二乘法。 通常在最小二乘法中考虑加权平方和有

0(,)()()()m

j k i j k i x x x ϕϕωϕϕ==∑,

上式可改写为

(,),0,1,,m

k

j

j

k j a

d k n ϕϕ===⋅⋅⋅∑。

这个线性方程组称为法方程,可将其写成矩阵形式 其中0,10,1(,,),(,,)T T n n a a a a d d d d =⋅⋅⋅=⋅⋅⋅ 求出0,1,,n a a a ⋅⋅⋅

则拟合函数*2012()n n S x a a x a x a x =+++⋅⋅⋅+ a=inv(G)*d

【实验问题】

利用最小二乘法求所给数据的2次、3次、4次拟合多项式,画出拟合曲线。

【实验过程与结果】 【结果分析、讨论与结论】

(1)n=2时

y=['

n=2

p=leastsq(x,y,n)

I=lsp(p,t)

回车得到结果

p=

所以拟合多项式为I=t*((18733*t)/5982-74179/59820)+73337/99700 (2)n=3时

x=['

y=['

n=3

Apleastsq(x,y,n)

I=lsp(p,t)

回车得到结果

所以拟合多项式为I=

+

t^2+^3;

(3)n=4时

x=['

y=['

n=4

p=leastsg(x,y,n)

I=lsq(p,t)

回车得到结果

A=

附程序

y=['

symst

n=2

p=leastsq(x,y,n)

c=lsp(p,t)

plot(x,y,'*')

2.

functionp=leastsq(x,y,n)

m=length(x);

G=zeros(n+1,n+1);

b=zeros(n+1,1);

fori=0:n

forj=0:n

G(i+1,j+1)=(x.^i)'*(x.^j); end

end

fork=0:n

b(k+1,1)=(x.^k)'*y;

end

p=inv(G)*b;

3.

functionI=lsp(p,t)

m=length(p)-1;

I=p(m+1);

forj=m:-1:1

I=I.*t+p(j);

end