函数的一次最佳平方逼近
- 格式:doc
- 大小:118.59 KB
- 文档页数:6
2016-2017(1)专业课程实践论文用最佳平方逼近法求逼近函数肖夏, 29,R数学12-1班一、算法理论设函数组φ0,φ1,…,φm 都是[a,b]上的连续函数,并且在[a,b]上线性无关。
以此函数组为基,生成空间C[a,b]上的一个子空间H =Span{φ0,φ1,…,φm }则H 中的任意一个元素为p (x )=∑c j φj (x )mj=0对空间C[a,b]的任意两个函数f ,g ,定义内积(f,g )=∫ω(x )f (x )g (x )dx ba对于给定的函数f(x)∈C[a,b],若p ∗(x )∈H ,满足(f −p ∗,f −p ∗)=min p∈H (f −p,f −p )则称p ∗(x )为子空间H 中对于f(x)的最佳逼近平方元素。
特别地,若φj (x )=x j ,j =0,1,…m 则称满足条件的p ∗(x )∈H ,为函数f (x )在区间[a,b]上带权ω(x )的m 次最佳平方逼近多项式。
设f(x)∈C[a,b],p ∗(x )∈H 是子空间H 中对于f(x)的最佳平方逼近元素的充分必要条件是(f −p ∗,φj )=0,(j =0,1,…,m)或对于任意一个p (x ),总有(f −p ∗,p )=0。
求最佳平方逼近元素p ∗(x )=∑c k ∗φk (x )m k=0,只要求出c k ∗。
因(f −p ∗,φj )=(f,φj )−∑c k ∗(φi ,φj )=0mk=0得∑c k ∗(φi ,φj )=(f,φj )mk=0得((φ0,φ0)⋯(φ0,φm )⋮⋱⋮(φm ,φ0)⋯(φm ,φm ))(c 0∗⋮c m ∗)=((f,φ0)⋮(f,φm )) 求出c k ∗,带入p ∗(x )=∑c k ∗φk (x )m k=0即可。
二、算法框图三、算法程序function S=abc(n,a,b) //创建一个函数,里面填入次数,和区间范围base=inline('x^(j-1)','x','j');///定义quan=inline('1','x');for k=1:(n+1)for j=1:(n+1)syms xl(k,j)=int(base(x,k)*base(x,j)*quan(x),x,a,b); endy(k)=int(base(x,k)*(sqrt(x^2+1)),x,a,b);//红色字体是f(x) endl;y';c=vpa(inv(l)*y',3)p=0;for i=1:(n+1)p=p+c(i)*base(x,i);endp四、算法实现例1.求f (x )=√x 2+1在[0,1]上的一次最佳平方逼近多项式。
第二章 最佳平方逼近为了便于计算和分析,常常需要用一个简单的函数()x ϕ来近似代替给定的函数()f x ,这类问题称为函数逼近问题。
插值问题以及Taylor 展开问题都属于这类问题。
本章介绍另一种函数逼近问题,即最佳平方逼近。
最佳平方逼近问题的提法是:设()f x 是[],a b 上的连续函数,n H 是所有次数不超过n 的多项式的集合,在n H 中求()n P x *逼近()f x ,使()()()()()1/2222infnb n naP x H f Px f x P x dx f Pρ**∈⎡⎤-=-=-⎣⎦⎰此时称()n P x *为()f x 在[],a b 上的最佳平方逼近多项式。
我们将要研究()n P x *是否存在?是否唯一?如何求得()n P x *?首先介绍正交多项式及其性质。
§1、正交多项式正交多项式是函数逼近的重要工具,在数值积分中也有广泛的应用。
1.1正交函数系的概念定义1 设()x ρ定义在[],a b 上(有限或无限),如果满足条件:(1)()[]0,,x x a b ρ≥∈; (2)()()0,1,bnax x dx n ρ=⎰存在;(3)对非负连续函数()f x ,若()()0ba f x x dx ρ=⎰,则在[],a b 上一定有()0f x ≡那么称()x ρ是区间[],a b 上的权函数。
简称为权函数。
权函数()x ρ的一种解释是物理上的密度函数,相应的()bax dx ρ⎰表示总质量。
当()x ρ=常数时,表示质量分布是均匀的。
下面引进内积定义。
定义2 给定()[]()(),,,,f x g x C a b x ρ∈是[],a b 上的权函数,称 ()()(),()ba f g x f x g x dx ρ=⎰ ()1.1为函数()f x 与()g x 在[],a b 上的内积。
内积具有下列简单性质: ()f g g f (1)、(,)=,;()()()1212,)(,00.f g f g R f f g f g f g f f f ααα∈++≠>(2)、(,)=,;(3)、 (,)=(4)、 当时,, 此外,还有如下Cauchy-Schwarz 不等式()()()2,,,.f g f f g g ≤⋅ ()1.2我们知道,一个向量的长度的几何概念,对于函数空间及逼近有许多自然的应用。
最佳平方逼近原理最佳平方逼近原理是数值分析中的一个经典原理,用于寻找函数在给定定义域上的最佳平方逼近曲线。
在实际应用中,我们经常需要通过已知的离散数据点来近似拟合一个函数,最佳平方逼近原理就是为了解决这个问题而提出的。
最佳平方逼近原理的核心思想是,通过最小化残差平方和来选择最佳的曲线拟合函数。
残差平方和是指每个数据点与拟合曲线之间的差值的平方和,通过最小化残差平方和,我们可以找到能够最好地拟合数据点的曲线。
为了更好地理解最佳平方逼近原理,我们可以通过一个简单的例子来说明。
假设我们有一组包含有N个点的数据集{(x1,y1),(x2,y2),...,(xn,yn)},我们需要找到一条曲线y=f(x)来拟合这些数据点。
首先,我们可以假设拟合曲线为一条直线y=ax+b,其中a为斜率,b为截距。
我们的目标是找到最佳的斜率a和截距b,使得拟合曲线能够最好地拟合数据点。
为了评估拟合曲线的好坏,我们可以定义残差ei为数据点yi与拟合曲线f(xi)之间的差值,即ei=yi-f(xi)。
然后,可以定义残差平方和E为所有残差的平方和,即E=∑(yi-f(xi))^2。
根据最佳平方逼近原理,我们需要选择最优的斜率a和截距b,使得E达到最小值。
这可以通过对E分别对a和b求偏导数,并令偏导数等于零来实现。
∂E/∂a=0和∂E/∂b=0的解可以分别表示为a=(N∑(xiyi)-∑xi∑yi)/(N∑(xi^2)-(∑xi)^2)和b=(∑yi-∑(xi/n)a))/N 通过求解这两个方程,我们可以得到最佳的斜率a和截距b,从而得到最佳的拟合曲线。
上述例子只是最佳平方逼近原理的一个简单应用,实际上,最佳平方逼近原理可以应用于更复杂的拟合曲线,如多项式拟合、指数拟合等。
在实际应用中,最佳平方逼近原理广泛应用于数据分析、信号处理、图像处理等领域。
通过最佳平方逼近原理,我们可以从大量的离散数据中提取有效的信息,利用拟合曲线来进行预测、分类、回归等操作。
2012-2013(1)专业课程实践论文函数的一次最佳平方逼近袁勇超,0818180208,R数学08-2班下面研究在区间[]b a,上一般的最佳平方逼近问题。
对[]b aCxf,)(∈及[]b aC,中的一个子集{}nspanϕϕϕ,,,1=Φ,若存在Φ∈*)(xS,使[]dxxSxfxSfSf baSS22222)(-)()(inf-inf-⎰∈∈*==ρϕϕ,则称)(xS*是)(xf在子集[]b aC,⊆Φ中的最佳平方逼近函数。
为了求)(xS*,由式可知,该为题等价于求多元函数。
若用H表示行列式)2,,,,1(nnxxxGG=对应的矩阵,则⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡+++++=)12(1)2(1)1(1)2(13121)1(1211nnnnnH,H称为Hilbert矩阵。
记Tnaaaa),,,(1=,Tndddd),,(1=,其中),,1,0)(,(nkxfd kk==,则方程dHa=的解),,1,0(nkaakk==*即为所求。
开始 =)(x f 闭区间连续函数 00Re sult d =11Re sult d =输出系数0a ,1a三、算法程序#include<stdio.h>#include<math.h>double function1(double x){ double s1;s1=1/sqrt(4+x*x);//替换函数return s1;}double function2(double x){ double s2;s2=x/sqrt(4+x*x);//替换函数return s2;}double ReiterationOfSimpson(double a,double b,double n,double f(double x)) { double h,fa,fb,xk,xj;h=(b-a)/n;fa=f(a);fb=f(b);double s1=0.0;double s2=0.0;for(int k=1;k<n;k++){ xk=a+k*h;s1=s1+f(xk);}for(int j=0;j<n;j++){ xj=a+(j+0.5)*h;s2=s2+f(xj);}double sn;sn=h/6*(fa+fb+2*s1+4*s2);return sn;}void main(){ double a=0.0,b=1.0,Result[2];int n=5;Result[0]=ReiterationOfSimpson(a,b,n,function1);Result[1]=ReiterationOfSimpson(a,b,n,function2);printf("d0=%f,d1=%f\n\n",Result[0],Result[1]);double x[2]={Result[0],Result[1]};double a0,a1;a0=4*Result[0]-6*Result[1];a1=12*Result[1]-4*Result[0];printf("a0=%5.7f,a1=%5.7f\n\n",a0,a1); }四、算法实现(一)设24/1)(x x f +=,求[]1,0上的一次最佳平方逼近多项式。
2013-2014(1)专业课程实践论文题目:函数的最佳平方逼近
一、算法理论
下面研究在区间[],a b 上一般的最佳平方逼近问题。
对于给定的函数()[,]f x C a b ∈,如果存在
*01(){(),(),,()}n S x Span x x x ϕϕϕ∈
使得
[]22*()()()min ()()()b
b a a a x b x f x S x dx x f x s x dx ρρ≤≤⎡⎤-=-⎣⎦⎰⎰
则称*()s x 是()f x 在集合01{(),(),,()}n Span x x x ϕϕϕ 中的最佳平方逼近函数。
为了求*()s x ,由式可知,该为题等价于求多元函数。
若用H 表示行列式2(1,,,....,)n Gn G x x x =对应的矩阵,则*()s x , H 称为Hilbert 矩阵。
记
01(,,....,)T n a a a a =,01(,,....,)T n d d d d =
其中 (,)(0,1,.....,)k k d f x k n ==
则方程 Ha d =
的解*(0,1,.....)k k a a k n ==即为所求。
二、算法框图
三、算法程序
#include<stdio.h>
#include<math.h>
double function1(double x)
{ double s1;
s1=1/sqrt(4+x*x);//替换函数
return s1;
}
double function2(double x)
{ double s2;
s2=x/sqrt(4+x*x);//替换函数
return s2;
}
double ReiterationOfSimpson(double a,double b,double n,double f(double x))
{ double h,fa,fb,xk,xj;
h=(b-a)/n;
fa=f(a);
fb=f(b);
double s1=0.0;
double s2=0.0;
for(int k=1;k<n;k++)
{ xk=a+k*h;
s1=s1+f(xk);}
for(int j=0;j<n;j++)
{ xj=a+(j+0.5)*h;
s2=s2+f(xj);}
double sn;
sn=h/6*(fa+fb+2*s1+4*s2);
return sn;
}
int main()
{ double a=0.0,b=1.0,Result[2];
int n=5;
Result[0]=ReiterationOfSimpson(a,b,n,function1);
Result[1]=ReiterationOfSimpson(a,b,n,function2);
printf("d0=%f,d1=%f\n\n",Result[0],Result[1]);
double x[2]={Result[0],Result[1]};
double a0,a1;
a0=4*Result[0]-6*Result[1];
a1=12*Result[1]-4*Result[0];
printf("a0=%5.7f,a1=%5.7f\n\n",a0,a1);
}
四、算法实现
例1. 求()f x x =在[1,1]-上的一次最佳平方逼近
解:运行程序,把替换函数分别改成s1=abs(x),s2=x*abs(x), 上机运行截图
例2. 设()1/
0,1上的一次最佳平方逼近多项式。
f x=[]
解:运行程序把替换函数分别改成s1=1/sqrt(4+x*x),s2=x/sqrt(4+x*x)
上机运行截图。