数值分析上机第四次作业

  • 格式:docx
  • 大小:172.62 KB
  • 文档页数:9

下载文档原格式

  / 9
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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