北航数值分析大作业三.doc

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、题目: 关于x, y, t, u, v, w的下列方程组 以及关于z, t, u的下列二维数表 z u t 0 0.4 0.8 1.2 1.6 2.0 0 -0.5 -0.34 0.14 0.94 2.06 3.5 0.2 -0.42 -0.5 -0.26 0.3 1.18 2.38 0.4 -0.18 -0.5 -0.5 -0.18 0.46 1.42 0.6 0.22 -0.34 -0.58 -0.5 -0.1 0.62 0.8 0.78 -0.02 -0.5 -0.66 -0.5 -0.02 1.0 1.5 0.46 -0.26 -0.66 -0.74 -0.5 确定了一个二元函数z = f(x, y)。 1、试用数值方法求出f(x, y)在区域 上的一个近似表达式 要求一最小的k值达到以下的精度 其中,。 2、计算(i = 1, 2, …,8;j = 1, 2,…,5)的值,以观察逼近的效果,其中,=0.1i, =0.5+0.2j。 说明:1、用迭代方法求解非线性方程组时,要求近似解向量满足 2、作二元插值时,要使用分片二次代数插值。 3、要由程序自动确定最小的k值。 4、打印以下内容: ●算法的设计方案。 ●全部源程序(要求注明主程序和每个子程序的功能)。 ●数表: (i = 0,1,2,…,10;j = 0,1,2,…,20)。 ●选择过程的值。 ●达到精度要求时的值以及中的系数(r = 0,1,…,k;s = 0,1,…,k)。 ●数表:(i = 1, 2, …,8;j = 1, 2,…,5)。 5、采用f型输出的准确值,其余实型数采用e型输出并且至少显示12位有效数字。 二、算法设计方案 1.使用牛顿迭代法,对原题中给出的,,()的11*21组分别求出原题中方程组的一组解,于是得到一组和对应的。 2.对于已求出的,使用分片二次代数插值法对原题中关于的数表进行插值得到。于是产生了z=f(x,y)的11*21个数值解。 3.从k=1开始逐渐增大k的值,并使用最小二乘法曲面拟合法对z=f(x,y)进行拟合,得到每次的。当时结束计算,输出拟合结果。 4.计算的值并输出结果,以观察逼近的效果。其中。 三、算法实现方案 1、求: (1)Newton法解非线性方程组 , 其中,t, u, v ,w为待求的未知量,x, y为代入的已知量。 设,给定精度水平和最大迭代次数M,则解该线性方程组的迭代格式为: 迭代终止条件为,若时仍未达到迭代精度,则迭代计算失败。 其中,雅可比矩阵 , , (2)分片双二次插值: 根据题目给出的表格, (其中,) 对于给定的,如果满足 则选择为插值节点,相应的插值多项式为 其中, 如果,则在式(2)中取i=1或i=4; 如果,则在式(2)中取u=1或u=4。 在区域上,将(i=0,1,…,10;0.5+0.2j,j=0,1,…20)代入到非线性方程组(1)中,用Newton法解出,再由分片双二次插值得,则有(i=0,1,…,10;j=0,1,…,20),即求出了。 2、求: 乘积型最小二乘拟合曲面: (1)求系数矩阵C: 其中, 计算中涉及到对矩阵求逆,接着在后面将会具体说明列主元的高斯消去法求矩阵的逆的方法。 (2)确定最小的k值,拟合曲面: 设,给定精度水平和最大迭代次数N,则确定最小k值的迭代格式为: 迭代终止条件为,若时仍未达到迭代精度,则迭代计算失败。 待确定满足精度条件的最小k值后,就可以进行曲面拟合计算了。 3、关于列主元的高斯消去法求矩阵的逆: 设非奇异矩阵,且 ,则 , 对B和I列分块,有 即 其中, 应用列主元的高斯消去法线性解方程组 , 则即为A的逆。 注:若A不可逆,则此算法失效。 四、源程序 #includeiostream // zhhfshzhfx3.cpp : 定义控制台应用程序的入口点。 // #include stdio.h #include cmath const int M= 500;//迭代最大次数 const double E=1.0e-12;//确定牛顿迭代精度水平 const double E1=1.0e-7;//确定拟合精度水平 const int kmax=9;//k的最大值 const double matrix[6][6]={ {-0.5, -0.34, 0.14, 0.94, 2.06, 3.5}, {-0.42, -0.5, -0.26, 0.3, 1.18, 2.38}, {-0.18, -0.5, -0.5, -0.18, 0.46, 1.42}, {0.22, -0.34, -0.58, -0.5, -0.1, 0.62}, {0.78, -0.02, -0.5, -0.66, -0.5, -0.02

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档