数值分析报告上机第四次作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数值分析上机第四次作业
实验项目:共轭梯度法求解对称正定的线性方程组
实验容:用共轭梯度法求解下面方程组
(1) 123421003131020141100155x x x x -⎛⎫⎛⎫⎛⎫ ⎪ ⎪ ⎪--- ⎪ ⎪ ⎪= ⎪ ⎪ ⎪-- ⎪ ⎪ ⎪-⎝⎭⎝⎭
⎝⎭ 迭代20次或满足()(1)
1110k k x x --∞-<时停止计算。
(2) Ax b =,A 是1000阶的Hilbert 矩阵或如下的三对角矩阵,
A[i,i]=4,A[i,i-1]=A[i-1,i]=-1,i=2,3,..,n
b[1]=3, b[n]=3, b[i]=2,i=2,3,…,n-1
迭代10000次或满足()()710k k r b Ax -=-≤时停止计算。
(3)*考虑模型问题,方程为 222222(),(,)(0,1)(0,1)(0,)1,(1,),01(,0)1,(,1),01
xy y x u u x y e x y D x y
u y u y e y u x u x e x ∂∂+=+∈=⨯∂∂==≤≤==≤≤
用正方形网格离散化,若取1/,10h N N ==,得到100n =的线性方程组,并用共轭梯度法(CG 法)求解,并对解作图。
实验要求:迭代初值可以取01(,1,...,)ij u i j N ==,计算到32||||10k r -≤停止.本
题有精确解(,)xy u x y e =,这里k u 表示以k ij u 为分量的向量,
u 表示在相应点(,)i j 上取值作为分量的向量.
实验一:
(1)
编制函数子程序CGmethod 。
function [x,k]=CGmethod(A,b)
n=length(A);x=zeros(n,1);r=b-A*x;rho=r'*r;
k=0;
while rho>10^(-12) & k<20
k=k+1;
if k==1
p=r;
else
beta=rho/rho1;
p=r+beta*p;
end
w=A*p;
alpha=rho/(p'*w);
x=x+alpha*p;
r=r-alpha*w;
rho1=rho;
rho=r'*r;
end
编制主程序shiyan1_1:
clear,clc
A=[2,-1,0,0;-1,3,-1,0;0,-1,4,1;0,0,-1,5]; b=[3,-2,1,5]';
[x,k]=CGmethod(A,b)
运行结果为:
x =
1.3882
-0.2855
-0.0222
0.9367
k =
20
(2)
编制函数子程序CGmethod_1
function [x,k]=CGmethod_1(A,b)
n=length(A);x(1:n,1)=0;r=b-A*x;r1=r;
k=0;
while norm(r1,1)>=10^(-7)&k<10^4
k=k+1;
if k==1
p=r;
else
beta=(r1'*r1)/(r'*r);p=r1+beta*p;
end
r=r1;
w=A*p;
alpha=(r'*r)/(p'*w);
x=x+alpha*p;
r1=r-alpha*w;
end
编制主程序shiyan1_2:
clear,clc
n=1000;
A=hilb(n);
b=sum(A')';
[x,k]=CGmethod_1(A,b)
运行结果为:x 的值,均接近1,迭代次数k=32
实验二
实验目的:用复化Simpson 方法、自适应复化梯形方法和Romberg 方法求数值积分。
实验容:计算下列定积分 (1) dx x x x ⎰⎪⎪⎭⎫ ⎝⎛+-2
02610 (2)⎰10dx x x (3) ⎰20051dx x 实验要求:
(1)分别用复化Simpson 公式、自适应复化梯形公式计算要求绝对误差限为7102
1-⨯=ε,输出每种方法所需的节点数和积分近似值,对于自适应方法,显示实际计算节点上离散函数值的分布图;
(2)分析比较计算结果。
2、实验目的:高斯数值积分方法用于积分方程求解。
实验容:线性的积分方程的数值求解,可以被转化为线性代数方程组的求解问题。而线性代数方程组所含未知数的个数,与用来离散积分的数值方法的节点个数相同。在节点数相同的前提下,高斯数值积分方法有较高的代数精度,用它通常会得到较好的结果。对第二类Fredholm 积分方程
b t a t f ds s y s t k t y b
a ≤≤+=⎰),()(),()( 首先将积分区间[a,b]等分成n 份,在每个子区间上离散方程中的积分就得到线性代数方程组。
实验要求:分别使用如下方法,离散积分方程中的积分
1.复化梯形方法;
2.复化辛甫森方法;
3.复化高斯方法。求解如下的积分方程
t t e ds s y e e t y --=⎰10)(1
2)(,方程的准确解为t e , 并比较各算法的优劣。
实验二
1、复化Simpson 方法)
输入积分区间下限0
输入积分区间上限2
输入等分份数20
输入被积函数(以x 为自变量)x^6/10-x^2+x
S =
1.1619
输入积分区间下限0
输入积分区间上限1
输入等分份数20