资源描述:
《北航数值分析作业三.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、《数值分析》第三次上机大作业姓名:学号:一、题目关于x,y,t,u,v,w的下列方程组0.5cost+u+v+w-x=2.67t+0.5sinu+v+w-y=1.070.5t+u+cosv+w-x=3.74t+0.5u+v+sinw-y=0.79以及关于z,t,u的下列二维数表zut00.40.81.21.620-0.5-0.340.140.942.063.50.2-0.42-0.5-0.260.31.182.380.4-0.18-0.5-0.5-0.180.461.420.60.22-0.34-0.58-0.5-0.10.620.
2、80.78-0.02-0.5-0.66-0.5-0.021.01.50.46-0.26-0.66-0.74-0.5确定了一个二元函数z=f(x,y)。1.试用数值方法求出f(x,y)在区域D={(x,y)︱0≤x≤0.8,0.5≤y≤1.5}上的一个近似表达式要求p(x,y)一最小的k值达到以下的精度其中xi=0.08i,yj=0.5+0.05j。2.计算f(xi*,yj*),p(xi*,yj*)(i=1,2,…,8;j=1,2,…,5)的值,以观察p(x,y)逼近f(x,y)的效果,其中xi*=0.1i,yj*=0.5+0.2j。
3、二、算法方案1.使用C++语言实现,使用牛顿迭代法求解非线性方程组,对,,()的共计1121组分别求出非线性方程组的解,即求出与对应的。均为1121的矩阵。2.由求出的,使用分片二次代数插值法对题中给出的数表进行插值得到。即得到的1121个数值解。3.k=0时的多项式拟合必然不符合要求,从k=1开始迭代,使用最小二乘法的曲面拟合法对进行拟合,计算在不符合要求的情况下增大。当时结束计算,输出结果。4.由3中得到的系数计算的值,再次使用牛顿迭代法对进行求解得到,再次进行二次插值得到结果,以观察逼近的效果。其中,,。三、源程序:#incl
4、ude#include#include#include#include#defineN4//方程组未知个数#defineM6//z,t,u数表阶数#defineX_Num11#defineY_Num21//定义数表大小#defineEPSL1e-12//定义阶数,精度#defineEPSL21e-7usingnamespacestd;typedefvector>Mat;//将二维数组简写为Matvector5、ble>Equation(Matinput);//定义求解非线性方程的函数,同时供Inverse,Zxy函数调用MatInverse(intrank,Matinput2);//定义求解逆矩阵的函数doubleAccuracy(vectorX_1,vectorX_2);//定义求解近似向量精度的函数doubleInterpolation(doubleu_1,doublet_1);//定义分片代数二次插值函数MatCrs(vectorX,vectorY,MatU);//最小
6、二乘法求解近似表达式系数MatZxy(vectorX1,vectorY1);//定义非线性方程组,调用Equation,Accuracy和Interpolation完成求解//所有的output应该调整,是否调整为输出到文件为好voidoutput(vectorFinal1,vectorFinal2,MatFinal3);//定义输出函数,输出矩阵voidoutput2(MatXi);doublevector_u[M]={0,0.4,0.8,1.2,1.6,2};dou
7、blevector_t[M]={0,0.2,0.4,0.6,0.8,1};doublemat_z[M][M]={{-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},};//定义初始数表z
8、,t,u,此处使用数组,而其它矩阵和向量均使用的为vector以及二维vectorvoidmain(){inti,j;vectorx,y;x.resize(X_Num);y.resize(Y_Num);for(i=0;