资源描述:
《北航数值分析A大作业3.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一、算法设计方案1、解非线性方程组将各拟合节点(xi,yj)分别带入非线性方程组,求出与相对应的数组te[i][j],ue[i][j],求解非线性方程组选择Newton迭代法,迭代过程中需要求解线性方程组,选择选主元的Doolittle分解法。2、二元二次分偏插值对数表z(t,u)进行分片二次代数插值,求得对应(tij,uij)处的值,即为的值。根据给定的数表,可将整个插值区域分成16个小的区域,故先判断(tij,uij)所在,的区域,再作此区域的插值,计算zij,相应的Lagrange形式的插值多项式为:其中(k=m-1,m,m+1)(r=n-1,n,n+1
2、)3、曲面拟合从k=1开始逐渐增大k的值,使用最小二乘法曲面拟合法对z=f(x,y)进行拟合,当时结束计算。拟合基函数φr(x)ψs(y)选择为φr(x)=xr,ψs(y)=ys。拟合系数矩阵c通过连续两次解线性方程组求得。,其中17,4、观察比较计算的值并输出结果,以观察逼近的效果。其中。二、全部源程序//hean.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"#include#include#includevoidSet_non_JacobiA(double*A,doubl
3、e*x);//求题中非线性方程组对应自变量向量x的雅克比//矩阵voidSet_non_B(double*B,double*x,doublea,doubleb);//求非线性方程组Newton迭代法的右//端式:-F(x)voidArray_Mult_Array(double*A,double*B,intm,ints,intn,double*C);//矩阵相乘AB=CvoidTranspose(double*A,intm,intn,double*AT);//转置voidDoolittle(double*A,intn,int*M);voidSolve_LU(do
4、uble*A,intn,double*b,double*x);//解方程LUx=b17voidSolve_lin(double*A,intn,double*B,double*x,intm);//解线性方程组Ax=BdoubleVector_FanShu(double*V,intn);voidSolve_non_Equation(doublea,doubleb,double*x);//求解非线性方程组intNear_Index(double*v,doublea,intn);//查找n维向量V中与常数a最接近的元素的下标doubleChaZhi(doublea,d
5、oubleb);//求数表z(t,u)在点(x,y)处的分片二次代数差值voidNiHe(double*U,double*x,double*y,intm,intn,intp,intq,double*C);//对m×n数表U(x,y)进行二元多项式拟合doublePxy(double*C,intp,intq,doublex,doubley);//求多项式拟合函数P(x,y)在点(x,y)处的函数值voidmain(){doublenon[4];//非线性方程组变量向量(t,u,v,w)doublef[11][21];//f(x,y)在拟合节点处的值doublex
6、[11],y[21];//拟合节点double*C;//拟合系数矩阵doubledet=1e-7;//拟合精度要求doublep,d;inti,j,k,t;//设置拟合节点for(i=0;i<11;i++)x[i]=0.08*i;for(j=0;j<21;j++)y[j]=0.5+0.05*j;//求拟合节点处的f(x,y)的值for(i=0;i<11;i++)17{for(j=0;j<21;j++){Solve_non_Equation(x[i],y[j],non);f[i][j]=ChaZhi(non[0],non[1]);}}printf("数值分析
7、第三次大作业");//打印数表f(xi,yi)printf("f(xi,yi)");for(t=0;t<21/3;t++){printf("-------------------------------------------------------------------------------------");printf("
8、f(x,y)
9、");for(i=3*t;i<3*t+3;i++){printf("y=%4.2f
10、",y[i]);}printf("");for(j=0;j<11;j++){printf("
11、x=%4.2f
12、",
13、x[j]);for(i=3*t;i<3