函数的一次最佳平方逼近
- 格式: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上的一次最佳平方逼近多项式。
最佳平方逼近与最小二乘拟合——两者的区别与联系 函数逼近是用一个多项式无限接近原函数,而拟合是将函数中的元素联系起来。
也就是说,最佳平方逼近是针对函数,最小二乘法是针对离散的点,二者在形式上基本一致。
另外,最小二乘拟合也称为离散型最佳平方逼近,两者的解法有很多相似之处。
一、 函数的最佳平方逼近 (一)最佳平方逼近函数的概念对[]b a C x f ,)(∈及[]b a C ,中的一个子集{}n span ϕϕϕφ,,,10⋯=,若存在φ∈)(*x S,使[]dx x S x f x S f Sf baS S ⎰-=-=-∈∈22222*)()()(infinf ρϕϕ,则称)(*x S 是)(x f 在子集[]b a C ,⊆φ中的最佳平方逼近函数。
(二)最佳平方逼近函数的解法为了求)(*x S ,由[]dxx S x f x S f Sf baS S ⎰-=-=-∈∈22222*)()()(infinf ρϕϕ可知,一般的最佳平方逼近问题等价于求多元函数dxx f x a x a a a I banj j j n 2010)()()(),,,(⎰∑⎥⎦⎤⎢⎣⎡-=⋯=ϕρ的最小值问题。
由于),,,(10n a a a I ⋯是关于n a a a ,,,10⋯的二次函数,利用多元函数极值的必要条件),,1,0(0n k a Ik⋯==∂∂,即),,,,1(2nn x x x G G =n),,1,0(0)()()()(20⋯==⎥⎦⎤⎢⎣⎡-=∂∂⎰∑=k dx x x f x a x a Ik b a n j j j kϕϕρ,于是有()()),,1,0(,,0n k f a k j nj j k ⋯==∑=ϕϕϕ。
()()),,1,0(,,0n k f a k j nj j k⋯==∑=ϕϕϕ是关于n 10,,,a a a ⋯的线性方程组,称其为法方程。
由于n ϕϕϕ,,,10⋯线性无关,故系数行列式()0,,,10≠⋯n G ϕϕϕ,于是方程组()()),,1,0(,,0n k f a k j nj j k⋯==∑=ϕϕϕ有唯一解),,1,0(*n k a a k k ⋯==,从而得到)()()(*0*0*x a x a x S n n ϕϕ+⋯+=。
如何用MATLAB求解一次和二次最佳平方逼近多项式MATLAB是一款功能强大的科学计算软件,广泛应用于各个领域中。
在数学建模中,经常需要使用最佳平方逼近技术来找到最符合样本数据的多项式函数,而MATLAB正是一个能够高效求解最佳平方逼近问题的工具。
本文将详细介绍如何用MATLAB求解一次和二次最佳平方逼近多项式。
一、最佳平方逼近最佳平方逼近是一种拟合问题,其目的是找到一个多项式函数,使其能够最好地逼近给定的样本数据集合,即最小化其平方误差。
这个问题可以表示为以下形式:minimize f(x) = ||Ax - b||^2其中,x是待求解的多项式系数向量,A是输入数据集合的矩阵表示,而b则是对应的样本输出向量。
通过数学推导,可以得到最佳平方逼近问题的解析解为:x = (A^T A)^{-1} A^T b二、一次最佳平方逼近在一次最佳平方逼近中,我们需要找到一个一次多项式 y = ax + b,使其能够最好地逼近给定的样本数据集合。
首先,我们需要构建A 矩阵和b向量,并将其带入解析公式中求解。
具体步骤如下:步骤1:生成样本数据集合x = [1 2 3 4 5];y = [1.2 1.9 3.2 4.1 5];步骤2:构建A矩阵和b向量n = length(x);A = [x' ones(n, 1)];b = y';步骤3:求解多项式系数向量a_b = inv(A' * A) * A' * b;步骤4:绘制拟合曲线a = a_b(1);b = a_b(2);x_fit = linspace(min(x), max(x), 100);y_fit = a*x_fit + b;plot(x, y, 'o', x_fit, y_fit);三、二次最佳平方逼近在二次最佳平方逼近中,我们需要找到一个二次多项式 y = ax^2 + bx + c,使其能够最好地逼近给定的样本数据集合。
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)
上机运行截图。