迭代法求解两点边值问题.doc_第1页
迭代法求解两点边值问题.doc_第2页
迭代法求解两点边值问题.doc_第3页
迭代法求解两点边值问题.doc_第4页
迭代法求解两点边值问题.doc_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

迭代法求解两点边值问题(三)1背景介绍大规模科学计算和工程技术中许多问题的解决,最终归结为大型稀疏线性方程组的求解,其求解时间在整个问题求解时间中占有很大的比重,有的甚至达到80%。由于现今科学研究和大型项目中各种复杂的可以对计算精度和计算速度的要求越来越高。因此,作为大规模科学计算基础的线性代数方程组的高效数值求解引起了人们的普遍关注。这种方程组的求解一般采用迭代法,所以,迭代法的收敛性和收敛速度就成为人们关注的焦点,为许多专家和学者所研究。本文对大型稀疏线性方程组迭代求解与三种迭代法(Jacobi,Gauss-Seidel和超松弛迭代法)的收敛速度与精确解的误差比较做出研究。2 课程设计任务内容利用我们所学的数值分析的迭代法知识对线性方程组的问题进行求解,同时把迭代法的求解过程用MATLAB程序语言实现其算法功能。对实验结果进行记录,对比与分析最后得出结论。3研究方法与原理3.1 迭代法简介1.Jacobi迭代法:对于非奇异线性方程组Ax=b,令A=D-L-U,其中则原方程组可改写为: (2.2)其中给定初始向量:由(2.2)可以构造迭代公式:其分量形式为:2. Guass-Seidel迭代法:类似于Jacobi迭代法,给定初值:令则得到Guass-Seidel公式:其分量形式为:3.超松弛迭代法(SOR 迭代法):SOR迭代法是对Guass-Seidel迭代法的加权平均改造,即为Guass-Seidel迭代解,即它的分量形式为:其中称为松弛因子,当1时称为超松弛;当 tol * (1-q)/qx1 = B*x0 + g; % 迭代公式r = norm(x1-x0, inf); % 使用无穷范数x0 = x1;k = k+1;if k = N % 如果达到最大迭代次数disp(达到最大迭代次数,迭代失败);break;endendx = x0;e = norm(y-x, inf);% - % filename : gs.m% abstract : GS迭代法解线性方程组Ax = b% 调用方式:% x, k, e = gs(A,b,y)% 返回值:% x :迭代解% k :迭代次数% e :与精确解的误差% - % - %function x, k, e = gs(A,b,y) % y为精确解N = 100000000; % 允许的最大迭代次数tol = 1e-4;q = 1 - 1/(100*100); % 近似求出q = |B|D = diag(diag(A);L = triu(A)-A;U = tril(A)-A;B = (D-L)U;g = (D-L)b;%迭代首项n = length(b);x0=eye(n,1);x1=eye(n,1);for i=1:nx0(i)=1;x1(i)=0;endr = 1;k = 0;while r tol * (1-q)/qx1 = B*x0 + g; % 迭代公式r = norm(x1-x0, inf); % 使用无穷范数x0 = x1;k = k+1;if k = N % 如果达到最大迭代次数disp(达到最大迭代次数,迭代失败);break;endendx = x0;e = norm(y-x, inf);% - % filename : sor.m% abstract : SOR迭代法解线性方程组Ax = b% 调用方式:% x, k, e = sor(A,b,y)% 返回值:% x :迭代解% k :迭代次数% e :与精确解的误差% - % - %function x, k, e = sor(A,b,y) % y为精确解N = 100000000; % 允许的最大迭代次数tol = 1e-4;q = 1 - 1/(100*100); % 近似求出q = |B|D = diag(diag(A);L = triu(A)-A;U = tril(A)-A;% 求最佳松弛因子wB = D(L+U);w = P(B);w = 2/(1+sqrt(1-w2);if w2disp(迭代不收敛);return;endfprintf(最佳松弛因子w: %.4fn, w);% 生成矩阵B, 向量gB = (D-w*L)(1-w)*D+w*U);g = (D-w*L)b*w;%迭代首项n = length(b);x0=eye(n,1);x1=eye(n,1);for i=1:nx0(i)=1;x1(i)=0;endr = 1;k = 0;while r tol * (1-q)/qx1 = B*x0 + g; % 迭代公式r = norm(x1-x0, inf); % 使用无穷范数x0 = x1;k = k+1;if k = N % 如果达到最大迭代次数disp(达到最大迭代次数,迭代失败);break;endendx = x0;e = norm(y-x, inf);% 求矩阵A的谱半径% 在SOR迭代法中求最佳松弛因子时作为子程序function a = P(A)n n = size(A);x = eig(A);a = 0;for i = 1:nb = abs(x(i);if b aa = x(i);endenda = abs(a);% - % filename : exactsolution.m% abstract : m函数文件,生成系数矩阵和常向量% - % - %function A, b = genmatrix(eps, a, n)h = 1/n;% 系数矩阵A = zeros(n-1,n-1);A(1,1) = -1*(2*eps + h);A(1,2) = eps + h;A(n-1, n-1) = A(1,1);A(n-1, n-2) = eps;for i = 2:n-2A(i,i) = A(1,1);A(i, i-1) = eps;A(i, i+1) = A(1,2);end% 常向量b = a * h * h * ones(n-1,1);% 注意边值条件b(1,1) = b(1,1) - eps*0;b(n-1,1) = b(n-1,1) - (eps+h);% - % filename : exactsolution.m% abstract : m函数文件,用于获得精确解% - %

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论