11109876543211234567891011
图三 J-PCG
四 三种迭代法效率分析
有场的等值图可以看出,三种迭代方法的结果(达到相同的精度)比较一致,但是J-PCG只需要37次(耗时0.1100秒)迭代即可达到比较好的结果;超松弛迭代法需要48次(耗时0.0310秒)迭代即可达到满意的结果;块Gauss-Sediel迭代法需要93次(耗时1.3280)迭代才到达满意的结果。所以对此问题来说,超松弛迭代法和J-PCG法的效率要好于块Gauss-Sediel迭代法。
一. 任务:
用MATLAB语言编写连续函数最佳平方逼近的算法程序(函数式M文件)。并用此程
序进行数值试验,写出计算实习报告。 二. 程序功能要求:
在书中Page355或Page345的程序leastp.m(见附一)的基础上进行修改,使其更加完善。要求算法程序可以适应不同的具体函数,具有一定的通用性。所编程序具有以下功能:
1. 用Lengendre多项式做基,并适合于构造任意次数的最佳平方逼近多项式。
P0(x)?1,P1(x)?x可利用递推关系 Pn(x)???(2n?1)xPn?1(x)?(n?1)Pn?2(x)??/n
n?2,3,.....2. 被逼近函数f(x)不用内联函数构造,而改用M文件建立数学函数。这样,此程序可通过
修改建立数学函数的M文件以适用不同的被逼近函数(要学会用函数句柄)。 3. 要考虑一般的情况f(x)?[a,b]?[?1,?1]。因此,程序中要有变量代换的功能。 4. 计算组合系数时,计算函数的积分采用变步长复化梯形求积法(见附三)。
5. 程序中应包括帮助文本和必要的注释语句。另外,程序中也要有必要的反馈信息。 6. 程序输入:(1)待求的被逼近函数值的数据点x0(可以是一个数值或向量)
(2)区间端点:a,b。
7. 程序输出:(1)拟合系数:c0,c1,c2,...,cn
(2)待求的被逼近函数值
1. 基本原理:
设内积空间X,取线性无关组?span{?0?x?,?,?1?x?,?n?x?,构造X的子空间 H=
0?x?,?,?1?x?,?n?x?,},对被逼近函数f(x)不属于H构造逼近函数s(x):
ns(x)= ?j?02
c??x?
jj求出系数c0,c1, …,cn,使‖f(x)-s(x)‖2=min,则函数s(x)就是f(x)H在中的最佳平方逼近元。
若取正交函数组?0?x?,?,?1?x?,?n?x?,对权函数ρ(x)满足
?x?,?j?x?=???x???x???x?dx=?ijb(i,j=0,1,…,n)
??i?b0i?j2?i?x?2i?j
以Legendre正交多项式为函数的最佳平方逼近多项式,若f(x)=xcos(x),x∈[-1,1],用p1(x)=1,p2(x)=x,p3(x)=(3x2-1)/2,p4(x)=(5x3-3x)/2构造函数f(x)的三次最佳平方逼近多项式 :
s(x)=c1p1(x)+c2 p2(x)+c3 p3(x)+c4 p4(x)
2 程序功能:
该程序可对被拟合函数做以Legendre多项式为基的最佳平方拟合,拟合数据可以是一个点或一个向量,并绘出该函数与拟合多项式以及泰勒展式在指定区间上的对比图。 3 使用说明:
程序用法简单,只需输入拟合数据点x,拟合区间a、b的值,以及[c,s]=leasp(x,a,b),程序即可自动运行。 4 源程序: (1) 主程序M文件
%LEASTP.M: 以Legendre多项式为基的最佳平方拟合 function [c,s]=leastp(x,a,b) %x:输入拟合点 %func:输入拟合函数 %c:输出拟合系数 %s:输出拟合值
if nargin<3, disp('必须输入三个参数'); return;end ff=@func; for i=1:4
pp(i)=2/(2*(i-1)+1); end
c(1)=quad('func',a,b)/pp(1)*(2/(b-a));
c(2)=quad('fp2',a,b,[ ],[ ],a,b)/pp(2)*(2/(b-a)); c(3)=quad('fp3',a,b,[ ],[ ],a,b)/pp(3)*(2/(b-a)); c(4)=quad('fp4',a,b,[ ],[ ],a,b)/pp(4)*(2/(b-a)); s=c(1)+c(2)*p2(x,a,b)+c(3)*p3(x,a,b)+c(4)*p4(x,a,b); x0=a:0.15:b;
s0=c(1)+c(2)*p2(x0,a,b)+c(3)*p3(x0,a,b)+c(4)*p4(x0,a,b);
plot(x0,s0,'r-'); %绘制多项式拟合图 hold on
fplot(ff,[a,b,feval(ff,a),feval(ff,b)],'c'); % 绘制拟合函数图 syms xx
ff1=xx*cos(xx); y1=taylor(ff1,xx,4); hold on
ezplot(y1,[a,b]); % 绘制拟合函数的泰勒展式图像 title('comparison figure of fitted funcyion,fitting polynomials and taylor formulation');
plot(x,s,'r *'); %数据点
legend('原 函 数 f(x)','最佳逼近s(x)','泰勒展开T(x)','数据点');
(2) legendre多项式M文件 function y=p2(x,a,b) t=(2*x-a-b)./(b-a); y=t;
function y=p3(x,a,b) t=(2*x-a-b)/(b-a); y=(3*t.^2-1)/2; function y=p4(x,a,b) t=(2*x-a-b)./(b-a); y=(5*t.^3-3*t)/2;
(3) 函数与多项式内积M文件 function y=fp2(x,a,b)
y=feval('p2',x,a,b).*feval('func',x); function y=fp3(x,a,b)
y=feval('p3',x,a,b).*feval('func',x); function y=fp4(x,a,b)
y=feval('p4',x,a,b).*feval('func',x);
(4) 函数M文件 function f=func(x) f=x.*cos(x);
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库matlab上机作业报告(计算初等反射阵,用Householder变换法对矩阵A(5)在线全文阅读。
相关推荐: