数值分析课程设计报告

时间:2024.4.20

 

课程设计报告

                                        

题目:数值分析课程设计报告

                                       

            理学院           

      数学与应用数学2010 

学生姓名        戴铭             

学    号      201030470270       

提交日期   20##  年  8 月 20 日 


数值分析课程设计报告

[设计题一]

一.要求

编写解线性代数方程组的列主元高斯消去法的函数,并调用该函数计算某个9阶以上的非奇异阵A的逆矩阵。通过计算AA-1检查答案,并与使用inv(A)所得结果和运行时间进行比较。

二.设计思路

①先确定求逆矩阵A为方阵,构造n*2n矩阵C,使得C=[A+E];

②令i=1,2,3……n,找出第i列中从i到n的绝对值最大元素C(k,i),如果k~=I,则两行调换位置,并且把换位信息传给记录矩阵flag,同时对第i行进行化一处理,对第i+1行到n行通过行列变换使得C[:,i]=0,最后得到C为前n*n是上三角的单位阵;

③通过行列变换把矩阵C的前n*n部分化成单位阵;

④把C的后n*n部分赋给B,则B就是所求的逆矩阵。

三.程序清单

function B=inv_dm(A)

%用途:列主元高斯消去法求逆矩阵

%A----------原矩阵

%B----------逆矩阵

[n,n]=size(A);

B=zeros(n,n);

C=zeros(n,2*n);

for i=1:n

    for j=1:n

        C(i,j)=A(i,j);

    end

    for k=n+1:2*n

        if k~=n+i

            C(i,k)=0;

        else

            C(i,k)=1;

        end

    end

end

%构造C=[A+E]

flag=1:n;

%记录行顺序向量

for i=1:n-1

    t=find(abs(C(i:n,i))==max(abs(C(i:n,i))));

    %寻找最大元素

    t=t(1)+i-1;

    flag(i)=t;

    if t~=i

        p=C(i,:);C(i,:)=C(t,:);C(t,:)=p;

         %换位

    end

    if C(i,i)==0

        error('矩阵不可逆');

    end

    C(i,:)=C(i,:)/C(i,i);

    for j=i+1:n

        C(j,:)=C(j,:)-C(i,:)*C(j,i);

    end

end

C(n,:)=C(n,:)/C(n,n);

%因为循环结构问题,所以C[n,:]并没有化一,所以在最后才把最后一行化一

for i=n:-1:2

    for j=1:i-1

        C(j,:)=C(j,:)-C(i,:)*C(j,i);

    end

end

%通过行变换,使得C的前n列为单位阵形式

for i=n:-1:1

    t=flag(i);

    if t~=i

        p=C(:,t);C(:,t)=C(:,i);C(:,i)=p;

    end

end

%通过行变化矩阵还原行的顺序

for i=1:n

    for j=1:n

        B(i,j)=C(i,n+j);

    end

end

%将C的后n列赋给B矩阵

四.程序运行操作过程与输出结果

操作时间

①给出所要求逆的矩阵A:

②执行inv_dm(A)

③执行inv(A)

④检验正确性

显然从数量级上我们可以容易判断这是一个单位阵,负号的出现是由于计算机默认误差造成细小误差。

[设计题二]

一.要求

对于迭代法, 它显然有不动点。 试不用判定收敛阶的定理,设计1至2个数值实验(其中必须有一个不是直接用收敛阶的定义)得到收敛阶数的大概数值。

二.设计思路

①   求出不动点,利用fixed.m函数:

    确定包含不动点的区间[a,b],此处令a=-0.5,b=0.5,接着从b开始迭代,利用迭代公式,以x0=0.5开始迭代,终止条件为abs(x-x0)>=1e-6

或者迭代次数超过了10000次,最终返回不动点

②   计算收敛阶m,利用jie.m函数:

1.由①知道当,所以根据收敛阶公式,其中C为非零常数,转化为

2.从1开始找出满足的p,如果p不满足,令p=p+1,直至找到满足条件的p.

3.返回收敛阶n=p.

三.程序清单

1.求不动点函数fixed.m

function x=fixed(x0,e)

%用途---求不动点

%x0-------初值,abs(x0)<0.5

%e-----迭代精度

x=0.99*x0-x0^2;

%迭代公式

n=1;

while (abs(x-x0)>=e)&&(n<10000)

x0=x;

x=0.99*x0-x0^2;

 n=n+1;

end

%循环体

x=x0;

2.求收敛阶函数jie.m

function n=jie(x0)

%用途---求阶函数

k=0;

syms x;

x1=0.99*x-x^2;

h=(abs(x0-x1))/(abs(x0-x))^k;

while limit(h,x,x0)==0

    k=k+1;

    h=(abs(x0-x1))/(abs(x0-x))^k;

end

n=k;

四.程序运行操作过程与输出结果

操作时间

1.求不动点调用fixed.m

由执行不动点结果可以看出确定了迭代精度1e-6后,根据迭代精度接近0,所以.

2.求收敛阶调用jie.m

所以收敛阶数为1,即线性收敛。

[设计题四]

一.要求

某飞机头部的光滑外形曲线的型值点坐标由下表给出:

试建立其合适的模拟曲线(未必是用拟合方法),并求在点x=100,250,400,500,800处的函数值y及一阶、二阶导数值y’,y”。绘出模拟曲线的图形。

二.设计思路

运用cftool工具箱,根据散点图,认为接近对数函数。故设定拟合函数为

 f(x) = a*log(x+b)+c

三.程序清单
都是在cftool工具箱上操作,无函数调用。

四.程序运行操作过程与输出结果

操作时间

1.输入数据

2.打开cftool工具箱


第二篇:数值分析课程设计实验报告基本格式


水手、猴子和椰子问题

实验题目:有五个水手带了一只猴子来到南太平洋的一个荒岛上,发现那里有一大堆椰子。由于旅途的颠簸,大家都很疲倦,很快就入睡了。第一个水手醒来后,把椰子平分成五堆,并将多余的一个椰子给了猴子,他私藏了一堆后便又去睡了。第二、第三、第四、第五个水手也陆续起来,和第个水手一样,把椰子平分成五堆后,将恰好多的一个也给猴子,并私藏了一堆,再去入睡。天亮以后,大家把余下的椰子重新等分成五堆,每人分一堆,正好余一个再给猴子。试问原先共有几个椰子?

试分析椰子数目变化的规律,利用逆向递推的方法求解这一问题。

(必要时可简写为实验一、1.2,教材P13)

一、       实验目的

掌握利用逆向递推求解问题的方法,熟悉matlab的循环操作。

二、       实验原理简述

求解这一问题可以用递推算法。首先分析椰子数目的变化规律,设最初的椰子数为p 0,即第一个水手所处理之前的椰子数,用p 1、p 2、p 3、p4、p 5 分别表示五个水手对椰子动了手脚以后剩余的椰子数目,则根据问题有

再用x表示最后每个水手平分得到的椰子数,于是有

所以

p5 = 5x +1

利用逆向递推的方法,有

有了逆向递推关系式,求解这一问题似乎很简单,但由于椰子数为一正整数,用任意的x作为初值递推出的p0数据不一定是合适的。

这里用 for 循环语句结合 break 语句来寻找合适的 x 和 p0 ,对任意的 x 递推计算出 p0 ,当计算结果为正整数时,结果正确,否则选取另外的 x 再次重新递推计算,直到计算出的结果 p0­ 为正整数为止。

三、       实验结果

   运行这段程序后,屏幕出现要求从键盘输入 x 数据的信息input n,输入1200后,MATLAB计算出合适的 x 和 p0 的值为:

1023 15621

四、      实验分析

由于:

所以

要使得最初的椰子数p0为整数,必须取 (x +1) 为 4 5( =1024)的倍数,一种简单的处理可取 x = 1023。

五、       实验程序(含必要注释)

程序如下

%%

%%   FIX    Round towards zero.

%%   FIX(X) rounds the elements of X to the nearest integers

%%   towards zero.

n=input('input  n:');    %%输入必要的n值

for  x=1:n               %%外循环

    p=5*x+1;

    for  k=1:5           %%内循环

        p=5*p/4+1;

    end

    if  p== fix(p)       %%判断p是否为整数

        break

    end

end

disp([x,p])             %%显示结果

更多相关推荐:
数值分析课程设计报告

计算机学院计算机科学与技术专业程序设计综合课程设计报告20xx20xx学年第一学期学生姓名学生班级学生学号指导教师20xx年1月9日1数值分析21目录第一章课程设计的目的和要求111课程设计的目的112课程设计...

数值分析课程设计

青岛农业大学本科生课程论文题目数值分析课程设计姓名杨宝赟学院理学与信息科学学院专业信息与计算科学专业班级20xx级2班学号20xx4051指导教师常桂娟完成时间20xx年12月23日二一一年十二月二十三日1课程...

数值分析课程设计报告

课程设计说明书班级姓名设计题目设计时间20xx31至20xx35指导教师评语评阅成绩华北科技学院课程设计设计任务和技术要求本课程设计是在学习了数值分析C面向对象程序设计C程序设计和数据结构等课程后让学生通过实际...

数值分析课程设计实验报告

数值分析课程设计实验报告姓名陈浩学号081002102班级091002指导老师任林源完成日期20xx7目录一丶概述二丶设计内容三丶设计过程四丶主要代码五丶结果显示六丶结果验证七丶设计总结实验一Gauss消去法和...

数值分析课程设计

武汉理工大学数值分析课程设计说明书附件1课程设计题目学院专业班级姓名指导教师对求解方程实根的研究理学院信息与计算科学信计080120xx年7月10日1武汉理工大学数值分析课程设计说明书附件2课程设计任务书学生姓...

数值分析课程设计报告

Xx大学数值分析课程设计报告设计题目:二分法求方程的根目录第1章引言...3第2章任务概述...32.1问题概述...32.1.1问题重述...32.1.2设计目的...3第3章实验步骤...33.1算法原理.…

数值分析课程设计报告书

数值分析课程设计报告书院系名称学生姓名专业名称班级时间数值分析课程设计实验一三次样条插值的三弯矩法一实验目的已知数据xiyifxii0n及边界条件yjxjj01n求fx的三次样条插值函数Sx要求输出用追赶法解出...

数值分析课程设计报告

数值分析NumericalAnalysis课程设计系专班级姓名学号指导老师1实验一11水手猴子和椰子问题五个水手带了一只猴子来到南太平洋的一个荒岛上发现那里有一大堆椰子由于旅途的颠簸大家都很疲惫很快就入睡了第一...

数值分析课程设计

数值分析课程设计专业班级信息与计算科学姓名陈育伟学号091班20xx6361实验一11水手猴子和椰子问题五个水手带了一只猴子来到南太平洋的一个荒岛上发现那里有一大堆椰子由于旅途的颠簸大家都很疲惫很快就入睡了第一...

数值分析课程设计

数值分析课程设计报告专业班级学号姓名11水手猴子和椰子问题五个水手带了一只猴子来到南太平洋的一个荒岛上发现那里有一大堆椰子由于旅途的颠簸大家都很疲惫很快就入睡了第一个水手醒来后把椰子平分成五堆将多余的一只给了猴...

数值分析课程设计

数值分析课程设计报告学号学生姓名姚梅指导教师缪红益一题目二分法求方程根用二分法求1xxexpx0在x01附近的根2xexpx10在x01附近的根3log10xx20在x02附近的根二理论应用二分法求方程根主要应...

张超电力系统分析课程设计报告书

信息工程学院电力系统分析课程设计报告书题目电力系统短路故障的计算机算法程序设计专业电气工程及其自动化班级0309408学号30学生姓名张超指导教师钟建伟20xx年3月2日信息工程学院课程设计任务书目录1任务的提...

数值分析课程设计报告(24篇)