资源预览内容
第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
第9页 / 共24页
第10页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数值分析 B1目录目录 .11、题目 .22、算法设计方案 .23、源程序 .34、输出结果 .16数值分析 B21、题目关于 x、y、t、u、w 的下列方程组 0.5cos2.67in10(). 3.4si9tuvwxyt以及关于 z、t、 u 的下列二位数表0 0.4 0.8 1.2 1.6 20 -0.5 -0.34 0.14 0.94 2.06 3.50.2 -0.42 -0.5 -0.26 0.3 1.18 2.380.4 -0.18 -0.5 -0.5 -0.18 0.46 1.420.6 0.22 -0.34 -0.58 -0.5 -0.1 0.620.8 0.78 -0.02 -0.5 -0.66 -0.5 -0.021.0 1.5 0.46 -0.26 -0.66 -0.74 -0.5确定了一个二元函数 。z(,)fxy1、试用数值方法求出 在区域 上的一(,)|0.8,541.Dxyy个近似表达式 ,0()krsrspc要求 一最小的 k 值达到以下精度(,)pxy102 27(,)(,)10ijijijfxyp其中 。0.8,.5ijxiy2、计算 的值,以观察 逼近*(),()1,2.8,.5)ijijfpxyj(,)pxy的效果,其中(,)fxy0.50ij2、算法设计方案根据题目可知,要得到 ,必须首先确定 的值,通过一系列 点(,)pxy(,)fxy(,)xyzuzt数值分析 B3进行曲面拟合得到 。所以之前必须得到对应于 x、y 的 z 值。(,)pxy由已知条件可知,当给定一组 的值,方程组(1)就唯一确定,通过对方程组求(,)xy解就可以解得一组 ,故而可得到对应于 的一系列,(,)Ttuvw0.8,.50ijxiyj值。然后根据给出的二位数表进行二元函数插值得到对应于 的 值。(,)tu (,)xz1、采用 Newton 迭代法进行方程组(1)求解;2、做二元插值时采用分片二次插值,进行分片二次插值需要九个插值节点。跟定Newton 法解得的 值,求得与其最近的插值节点,以该插值节点为中心找八个插值节(,)tu点即可满足要求。3、根据求出的一系列 值,进行曲面拟合,得到近似表达式z,0()krsrspxycxy4、 的值的求法见 1、2,而对于 而言,只需将对应的 代入近*(,)ijfxy()*(,)ijxy似表达式中计算即可。5、在进行曲面拟合时,涉及到矩阵的求逆问题。由逆矩阵的性质 可知,只1AE需求解 n 次 ,其中 表示第( +1)个元素为 1,其余元素为 0 的 n 维单位坐标iAxeii向量, , 为矩阵 的阶数,则 组成的向量组即为 A 的逆矩阵。=0,12.()nAix6、求解过程中涉及到的线性方程组求解问题,本次设计采用 Gauss 选主元求解方程组。3、源程序源程序如下:#include stdafx.h#include math.h#define M 6#define N 4 #define preci 1.0e-12 /Newton 迭代的精度水平;#define Sigma 1.0e-7 /曲面拟合的精度水平;#define X_NUM 11#define Y_NUM 21数值分析 B4FILE *p;double uM = 0, 0.4, 0.8, 1.2, 1.6, 2.0, / u 向量;tM = 0, 0.2, 0.4, 0.6, 0.8, 1.0, / t 向量;ztuMM = / z 关于 t 、u 的二维数表;-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,1.5, 0.46, -0.26, -0.66, -0.74, -0.5,zX_NUMY_NUM = 0, /z 的值z_xX_NUMY_NUM = 0, /z*的值tuvw4 = 1,2,1,2; /Newton 迭代法迭代初始向量/*用 Gauss (选主元) 方法解带状方程组*/void Gauss(double FKK, double xK, double _bK, int rank)int i,j,k,t;int ik;double temp, mik, bK;for (k = 0; k fabs(temp)数值分析 B5temp = Fi - 1k - 1;ik = i;/交换if (ik != k)for (j = k; j = 0; k-)temp = 0; for(j = k+1; j fabs(temp)temp = fabs(xi);return temp;/*牛顿迭代法求方程组的解*/int Newton(double FK, double F1KK, double AnswerK, double x, double y)int i, j, k;double DKK;double rxK; /偏差数值分析 B8/*复制矩阵 F ,使矩阵 A 在计算过程中保持不变,使 D = A*/for (i = 0;i N; i+)for (j = 0;j N; j+)Dij = F1ij;/给定初始值for (i = 0; i N; i+)Answeri = tuvwi;for (k = 0; ; k+) /不限制最大迭代次数/* 求 F(xk)和 F1(xk) */F0 = -1 * (0.5 * cos(Answer0) + Answer1 + Answer2 + Answer3 - x - 2.67);F1 = -1 * (Answer0 + 0.5 * sin(Answer1) + Answer2 + Answer3 - y - 1.07);F2 = -1 * (0.5 * Answer0 + Answer1 + cos(Answer2) + Answer3 - x - 3.74);F3 = -1 * (Answer0 + 0.5 * Answer1 + Answer2 + sin(Answer3) - y - 0.79);F100 = -0.5 * sin(Answer0);F101 = 1;F102 = 1;F103 = 1;F110 = 1;F111 = 0.5 * cos(Answer1);F112 = 1;F113 = 1;F120 = 0.5;数值分析 B9F121 = 1;F122 = -1 * sin(Answer2);F123 = 1;F130 = 1;F131 = 0.5;F132 = 1;F133 = cos(Answer3);Gauss(F1, rx, F, 4);for (i = 0; i N; i+)Answeri = Answeri + rxi;if (Nome(rx) / Nome(Answer) preci)break;return 1;/*二次插值*/double Qua_Interpolation(double _t, double _u)int r, i, j, k;double I_u3, I_t3; /进行二次插值需要三个点double z;z = 0;r = (int)(fabs(_t / 0.2) + 0.5); /寻找与 t,u 最接近的点,以此为中心找插值节点k = (int)(fabs(_u / 0.4) + 0.5);if(r = 0)r = 1;if(r = 5)r = 4;if(k = 0)k = 1;数值分析 B10if(k = 5)k = 4;/关于 u 的拉格朗日插值基函数I_u0 = (_u - uk) * (_u - uk + 1) / (uk - 1 - uk) / (uk - 1 - uk + 1);I_u1 = (_u - uk - 1) * (_u - uk + 1) / (uk - uk - 1) / (uk - uk + 1);I_u2 = (_u - uk - 1) * (_u - uk) / (uk + 1 - uk - 1) / (uk + 1 - uk);/关于 t 的拉格朗日插值基函数I_t0 = (_t - tr) * (_t - tr + 1) / (tr - 1 - tr) / (tr - 1 - tr + 1);I_t1 = (_t - tr - 1) * (_t - tr + 1) / (tr - tr - 1) / (tr - tr + 1);I_t2 = (_t - tr - 1) * (_t - tr) / (tr + 1 - tr - 1) / (tr + 1 - tr
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号