北航2007级研究生。
数值分析》计算实习作业。
第二题)院系:航空科学与工程学院。
学号: sy0705118
姓名: 刘德博
日期: 2023年12月09日
计算实习说明书。
目的:训练运用计算机进行科学与工程计算的能力。
要求:1.独立进行算法设计、程序设计和上机运算,并得出正确的结果。
2.编制程序时全部采用双精度,要求按题目的要求设计输出,并执行打印。
3.只能根据题目给出的信息并且只允许一次计算得出全部结果。
题目:第二题关于,,,的下列方程组。
以及关于,,的下列二维数表。
确定了一个二元函数。
1.试用数值方法求出在区域上的一个近似表达式:
要求一最小的值达到以下精度:
其中。2.计算的值,以观察逼近的效果,其中。
说明:1.用迭代方法求解非线性方程组时,要求近似解向量满足:
2.作二元插值时,要使用分片二次代数插值。
3.要求由程序自动确定最小的值。
4.打印以下内容:
(1)算法的设计方案。
2)全部源程序(要求注明主程序和每个子程序的功能)。
3)数表:。
4)选择过程的值。
5)达到精度要求时的值以及中的系数。
6)数表:。
5.采用f型输出的准确值,其余实型采用e型输出并至少显示12位有效数字。
一、程序算法的设计。
根据题目要求,并结合题目的特点,算法设计方案如下表所示:
二、全部源程序。
本人编程所用的软件是fortran,所编写的程序如下:
三、计算结果。
以下为“计算结果。txt”文件中的内容,即为计算结果:
四、心得体会。
本次作业从难度上来说要比第一次的大,首先要求解非线性方程,其次就是分片二次插值,再次就是曲面的拟合,而且拟合要自动确定最小的k值。本题主要是分析好做题的思路,由于本人提前已经开始编写解非线性方程的程序,由于没有分析好题意,以为将,代入方程去求解,,,所以采用简单迭代法编程,虽然也能解出值来,但是却不能往下做了。后来才弄明白是要将,视为已知,然后确定,,,在用插值法求。
看来在做一件事的时候,首先要弄明白怎么去做再去下手。
在本次编程过程中遇到很多问题。比如说精度问题,对结果有明显的影响,这是在程序的后期阶段,由于程序总是不能收敛时才发现的。再如,在求拟合系数时是解方程还是求矩阵的逆,本人结合矩阵理论的知识,同时翻阅了关于矩阵求拟的资料,觉得对于方阵通过行变换来求逆的根本原理与高斯消元相同,而且比较简练,所以最终采用这种方法。
再如,fortran里的数组下标默认均是从1开始,而不是从0开始,所以在求拟合多项式的时候,就用到了加减1的情况,使程序可读性有所降低。
在c语言中,有这样的规定就是尽量不用或少用goto语句,在c里也很容易将goto语句用恰当的循环语句来替换,但是在fortran中,有些不容易替换,在程序编写好以后,有两处用到goto语句,本人都用do while语句替换了,但是在循环前也都添加了程序执行一次的充分条件。这也算是程序方面新的认识吧。
这次编程觉得收获很大,以后虽然没有像这样的作业了,但是本人觉得数值分析很有意义,也将会一直坚持下去,学会更多的数值分析方法及其程序的实现。
北航数值分析大作业第二次
数值分析 计算实习作业。第二题 算法设计方案 1 对矩阵a赋值,取计算精度 1 10 12 2 对矩阵a进行拟上三角化,得到a n 1 并输出a n 1 对矩阵a的拟上三角化,通过直接调用子函数inftrianglize a 来实现 拟上三角化得到的矩阵a n 1 输出至文件中。3 对a n 1 进...
北航数值分析第二次大作业
题目 使用带双步位移的qr分解法求矩阵的全部特征值,并对其中的每一个实特征值求相应的特征向量。已知 i,j 1,2,10 一 算法的设计方案 一 总体方案设计 构造矩阵 a,先利用householder矩阵对矩阵a作相似变换,把a化为拟上三角矩阵a n 1 然后进行带双步位移的qr分解求解矩阵的全部...
北航数值分析第二次大作业 QR分解
数值分析a 计算实习题目二。2012年10月。一 算法设计方案。整个程序主要分为四个函数,主函数,拟上三角化函数,qr分解函数以及使用双步位移求解矩阵特征值 特征向量的函数。因为在最后一个函数中也存在qr分解,所以我没有采用参考书上把矩阵m进行的qr分解与矩阵ak的迭代合并的方法,而是在该函数中调用...