信息与计算科学专业《数值分析》上机实验报告 2

时间:2024.4.27

数学与统计学院信息与计算科学系

《数值分析》上机实验报告

实验题目:  1.                                           

  2.                                           

         

姓    名:  陈忆      程鑫      邓柳   

学    号: 11201010103      11201010104

           11201010106                 

专    业:       信息与计算科学       

班    级:         112010101          

上课老师:          刘瑞华            

成绩评定

                                                                                              

                               上机实验报告

一、


第二篇:数值分析上机实验报告八


实验报告八

题目: 线性方程组的迭代法

摘要:

对于工程技术中产生的大型稀疏矩阵方程组,利用迭代法解是最合适的。

前言:(目的和意义)

掌握Jacobi迭代法、Gauss-Serdel迭代法、SOR方法的基本原理和应用。

数学原理:

Jacobi迭代法,对于线性方程组Ax=b,如果A为非奇异方阵,即

则可将A分解为A=D-L-U,其中D为对角阵。其元素为A的对角元素,L与U为A的下三角阵和上三角阵:

               

于是Ax=b转化为:

        

与之对应的迭代公式为:

        

Gauss-Serdel迭代法,在Jacobi迭代过程中,计算?已经得到,不必再用?,即原来的迭代公式可以改进为,于是得到Gauss-Serdel迭代公式:

         

SOR方法,全称为逐次超松弛迭代法,它是Gauss-Serdel迭代法的一种加速方法,是解大型稀疏矩阵方程组的有效方法之一,逐次超松弛迭代公式为:

         

其中

程序设计:

本实验采用Matlab编写主程序如下

Jacobi迭代法:

A=[5,2,1;-1,4,2;2,-3,10];

MAXTIME=50;

 eps=1e-4;

[n,m]=size(A);

 x=zeros(n,1);

 y=zeros(n,1);

 k=0;

  disp('迭代过程X的值情况如下:')

 disp('X=');

 while 1

     disp(x');

   for i=1:1:n

        s=0.0;

      for j=1:1:n

         if j~=i

          s=s+A(i,j)*x(j);

         end

         y(i)=(A(i,n+1)-s)/A(i,i);

      end

   end

   for i=1:1:n

       maxeps=max(0,abs(x(i)-y(i))); 

   end

   if maxeps<=eps

       for i=1:1:n

           x(i)=y(i);

       end

       return;

   end

   for i=1:1:n 

       x(i)=y(i);

       y(i)=0.0;

   end

   k=k+1;

   if k>MAXTIME

       error('超过最大迭代次数,退出');

       return;

   end

 end

Gauss-Serdel迭代法:

A=[5,2,1;-1,4,2;2,-3,10];

 [n,m]=size(A);

Maxtime=50;

Eps=10E-4;

x=zeros(1,n);

disp('x=');

for k=1:Maxtime   

    disp(x);   

    for i=1:n

        s=0.0;

        for j=1:n

            if i~=j

             s=s+A(i,j)*x(j);

            end

        end

        x(i)=(A(i,n+1)-s)/A(i,i);

    end

    if sum((x-floor(x)).^2)<Eps

        break;

    end;

end;

X=x;

disp('迭代结果:');

X

SOR方法:

A=[5,2,1;-1,4,2;2,-3,10];

b=[-12,20,3]';

w=1.45;

Maxtime=100;

Eps=1E-5;

format long;

n=length(A);

k=0;

x=ones(n,1);

y=x;

disp('迭代过程:');

disp('x=');

while 1

    y=x;

    disp(x');

    for i=1:n

        s=b(i);

        for j=1:n

            if j~=i

                s=s-A(i,j)*x(j);

            end

        end

        if abs(A(i,i))<1E-10 | k>=Maxtime

            error('已达最大迭代次数或矩阵系数近似为0,无法进行迭代');

            return;

        end

        s=s/A(i,i);

        x(i)=(1-w)*x(i)+w*s;

    end

    if norm(y-x,inf)<Eps

        break;

    end

    k=k+1;

end

disp('最后迭代结果:');

X=x'

format short;

结果分析和讨论:

1.        设方程组

(1)     考察用Jacobi迭代法,Gauss-Seidel迭代法解此方程组的收敛性;

(2)     用Jacobi迭代法,Gauss-Seidel迭代法解此方程组,要求当时迭代终止。

结果是:

两种方法都收敛。

用Jacobi迭代法要迭代18次,

Gauss-Seidel迭代法需8次,

2.        用SOR方法解方程组,要求当时迭代终止。

迭代8次时达到精度要求

结论:

    和Jacobi迭代法相比Gauss-Seidel迭代法用新分量代替旧分量精度会高一些。而SOR计算公式简单,程序设计容易,占用计算机内存较少,但需要选择好的加速因子,它是Gauss-Serdel迭代法的一种加速方法,是解大型稀疏矩阵方程组的有效方法之一。

更多相关推荐:
哈工大-数值分析上机实验报告

实验报告一题目非线性方程求解摘要非线性方程的解析解通常很难给出因此线性方程的数值解法就尤为重要本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法前言目的和意义掌握二分法与Newton法的基...

数值分析实验报告(一)(完整)

数值分析实验报告123456

数值分析实验报告(包含源程序)

课程实验报告课程实验报告课程实验报告课程实验报告

数值分析实验报告

数值分析实验报告数值分析实验报告一实验名称在matlab上实现牛顿插值和拉格朗日差值二实验内容1运用点2170112217构造三次拉格朗日插值多项式并计算f062运用已知点2170112219构造牛顿插值函数并...

数值分析实验报告册

数值分析实验报告册实验名称Lagrange插值实验一实验目的掌握Lagrange插值数值算法能够根据给定的函数值表达求出插值多项式和函数在某一点的近似值实验准备1在开始本实验之前请回顾教科书的相关内容2需要一台...

数值分析matlab完整版实验报告

数值分析报告运用Matlab求解非线性方程的根学院专业班级姓名学号数值分析报告1目的掌握非线性方程求根的方法并选取实例运用MATLAB软件进行算法的实现分别用牛顿法弦截法和抛物线法求非线性方程的根2报告选题报告...

西南交通大学数值分析上机实验报告

数值分析上机实习报告学号姓名专业联系电话任课教师序1一必做题21问题一211问题重述212实验方法介绍213实验结果32问题二521问题重述522实验原理5雅各比算法将系数矩阵A分解为ALUD则推到的最后迭代公...

哈工大-数值分析上机实验报告

实验报告一题目非线性方程求解摘要非线性方程的解析解通常很难给出因此线性方程的数值解法就尤为重要本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法前言目的和意义掌握二分法与Newton法的基...

矩阵与数值分析上机实验报告

大连理工大学矩阵与数值分析上机实验报告任课教师孟兆良教学班号06院系电信计算机应用学生姓名邓会杰学生学号21306151目录实验一设SNj2N106分别编制从小到大和从大到小的顺序程序分别计算3j211程序代码...

贵州大学20xx级数值分析实验报告

本次作业共七道题第一道大题有三个小题按三道题算程序加载了StanfordCPPLiblib库主要利用gridh类似二维数组vectorh类似一维数组目的是使程序更通用安全方便编程1householder变换程序...

数值分析上机实验报告二

西安工程大学数值计算方法实验报告实验报告二题目如何求解插值函数摘要在工程测量和科学实验中所得到的数据通常都是离散的如果要得到这些离散点意外的其他点的数值就需要根据这些已知数据进行插值这里我们将采用多种插值方法前...

武汉大学数学与统计学院 数值分析实验报告

武汉大学数学与统计学院数值分析实验报告武汉大学数学与统计学院数值分析原始书记记录实验名称关于正定矩阵cholesky分解的研究实验时间20xx年12月16日姓名雷锦江邢周华学号20xx3100017420xx3...

数值分析上机实验报告(38篇)