北航大数值分析实习:Fortran编程非线性方程组与插值拟合

需积分: 10 2 下载量 130 浏览量 更新于2024-07-26 收藏 167KB DOC 举报
该资源是一份北航大学的数值分析计算实习作业,主要针对非线性方程组的求解和分片二次代数插值法的应用。作业由学生杜传宇完成,涉及的主题是《数值分析》课程中的实践内容。 首先,算法设计部分的核心是求解一个非线性方程组。学生采用牛顿迭代法来求解,具体步骤包括: 1. 选择初始向量 {t, u, v, w} = {1, 1, 1, 1}。 2. 计算函数和其导数,即和。 3. 解由线性方程组组成的系统,这个方程组的形式是。 4. 如果满足某个终止条件,如,那么更新解;否则继续迭代。 5. 在迭代过程中不断调整向量,直到达到预设精度。 接下来,作业转向插值技术。通过已求得的特定 t 和 u 值,使用分片二次代数插值法对数表进行处理,得到 z 关于 x 和 y 的函数 Z(I, J)。插值节点的选择遵循一定的规则,当满足某些条件时,会选择特定的 (x, y) 对作为插值点。 然后,作业涉及最小二乘曲面拟合,目标是找到一个函数 P(X, Y),使得与 F(X, Y) 接近,并且误差在指定范围内。这个过程包括: - 对于固定的 K 值,使用特定的基函数对数据进行拟合,形成拟合曲线。 - 解 n+1 个线性方程组来计算拟合参数,形成矩阵 A。 - 重复以上步骤,得到系数矩阵 C。 - 最后,计算特定点 (X*, Y*) 上函数 P 和 F 的值,评估拟合效果。 整个过程使用 Fortran 语言编写,模块 math 中定义了用于求向量无穷范数的函数 fs 和用于执行牛顿迭代法的子程序 newton。通过这些函数和算法,学生展示了数值分析中的关键概念和编程技巧在实际问题中的应用。这份作业展示了非线性方程求解、插值理论以及数值拟合方法在工程计算中的实用性。