数值分析大作业三.docx
《数值分析大作业三.docx》由会员分享,可在线阅读,更多相关《数值分析大作业三.docx(33页珍藏版)》请在冰豆网上搜索。
数值分析大作业三
1、算法设计
1、使用牛顿迭代法,对原题中给出的xi=0.08i,yj=0.5+0.05j,(0<=i<=10,0<=j<=20),的11*21组xi,yj分别求出原题中方程组的一组解,于是得到一组和(xi,yj)对应的(ui,tj)。
2、对于已求出的(ui,tj),使用分片二次代数插值法对原题中关于(z,t,u)的数表进行插值得到zij。
于是产生了z=f(xi,yj)的11*21个数值解。
3、从k=1开始逐渐增大k的值,并使用最小二乘法曲面拟合法对z=f(xi,yj)进行拟合,得到每次的k,σ。
当σ<10-7时结束计算,输出拟合结果。
4、计算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。
2、结果
分片二次多项式插值得到的f(xi,yj):
zx
y
0.00
0.08
0.16
0.24
0.50
4.465040184799E-01
6.380152265097E-01
8.400813957651E-01
1.051515091802E+00
0.55
3.246832629272E-01
5.066117551462E-01
6.997641656725E-01
9.029274308300E-01
0.60
2.101596866830E-01
3.821763692773E-01
5.660614423514E-01
7.605802668592E-01
0.65
1.030436083159E-01
2.648634911535E-01
4.391716081174E-01
6.247151981441E-01
0.70
3.401895562711E-03
1.547802002849E-01
3.192421380407E-01
4.955197560010E-01
0.75
-8.873581363801E-02
5.199268349087E-02
2.063761923873E-01
3.731340427743E-01
0.80
-1.733716327497E-01
-4.346804020491E-02
1.006385238914E-01
2.576567488723E-01
0.85
-2.505346114666E-01
-1.316010567885E-01
2.060740067833E-03
1.491505594102E-01
0.90
-3.202765063876E-01
-2.124310883088E-01
-8.935402476700E-02
4.764698677337E-02
0.95
-3.826680661097E-01
-2.860045510581E-01
-1.736269688649E-01
-4.684932320143E-02
1.00
-4.377957667383E-01
-3.523860789794E-01
-2.507999561599E-01
-1.343567603849E-01
1.05
-4.857589414438E-01
-4.116554565222E-01
-3.209322694446E-01
-2.149133449274E-01
1.10
-5.266672548835E-01
-4.639049115188E-01
-3.840977350046E-01
-2.885737006348E-01
1.15
-5.606384797965E-01
-5.092367247006E-01
-4.403821754175E-01
-3.554063647857E-01
1.20
-5.877965387677E-01
-5.477611179623E-01
-4.898811523126E-01
-4.154913964886E-01
1.25
-6.082697790899E-01
-5.795943883391E-01
-5.326979655338E-01
-4.689182499695E-01
1.30
-6.221894528764E-01
-6.048572588895E-01
-5.689418792921E-01
-5.157838831247E-01
1.35
-6.296883781856E-01
-6.236734213318E-01
-5.987265495151E-01
-5.561910752001E-01
1.40
-6.308997600028E-01
-6.361682484133E-01
-6.221686297503E-01
-5.902469305629E-01
1.45
-6.259561525454E-01
-6.424676566901E-01
-6.393865356972E-01
-6.180615482412E-01
1.50
-6.149885466094E-01
-6.426971026996E-01
-6.504993507878E-01
-6.397468392579E-01
zx
y
0.32
0.4
0.48
0.56
0.50
1.271246751481E+00
1.498321052479E+00
1.731892740380E+00
1.971221786403E+00
0.55
1.115002018147E+00
1.334998632065E+00
1.562034577210E+00
1.795329599501E+00
0.60
9.646077272154E-01
1.177125123740E+00
1.397216918208E+00
1.624067113228E+00
0.65
8.203473694750E-01
1.025024055020E+00
1.237801006741E+00
1.457830582708E+00
0.70
6.824476781794E-01
8.789600231744E-01
1.084087532678E+00
1.296954649752E+00
0.75
5.510852085975E-01
7.391451087034E-01
9.363227723148E-01
1.141718105447E+00
0.80
4.263923859016E-01
6.057448714869E-01
7.947044490537E-01
9.923495333242E-01
0.85
3.084629956332E-01
4.788838610661E-01
6.593871980283E-01
8.490326633294E-01
0.90
1.973571296921E-01
3.586506258818E-01
5.304875868398E-01
7.119113522641E-01
0.95
9.310562085941E-02
2.451022361965E-01
4.080886854543E-01
5.810941589217E-01
1.00
-4.285992234087E-03
1.382683509284E-01
2.922442012296E-01
4.566585132334E-01
1.05
-9.483392529683E-02
3.815486540702E-02
1.829822068535E-01
3.386544961395E-01
1.10
-1.785729903639E-01
-5.525282116811E-02
8.030849403542E-02
2.271082557697E-01
1.15
-2.555537790546E-01
-1.419868808137E-01
-1.579041305168E-02
1.220250891932E-01
1.20
-3.258401501575E-01
-2.220944390959E-01
-1.053445516210E-01
2.339221963760E-02
1.25
-3.895069883634E-01
-2.956352324598E-01
-1.883980906096E-01
-6.881870197107E-02
1.30
-4.466382045995E-01
-3.626795115028E-01
-2.650071493189E-01
-1.546493442129E-01
1.35
-4.973249517677E-01
-4.233061642240E-01
-3.352378389040E-01
-2.341526664587E-01
1.40
-5.416640326994E-01
-4.776010361324E-01
-3.991645038868E-01
-3.073910919133E-01
1.45
-5.797564797958E-01
-5.256554266672E-01
-4.568681433016E-01
-3.744348623481E-01
1.50
-6.117062881476E-01
-5.675647436551E-01
-5.084349932782E-01
-4.353605565359E-01
zx
y
0.64
0.72
0.8
0.50
2.215667863689E+00
2.464684222660E+00
2.717811109466E+00
0.55
2.034201133607E+00
2.278058979398E+00
2.526399501258E+00
0.60
1.856955143619E+00
2.095251250840E+00
2.338411386860E+00
0.65
1.684358164161E+00
1.916718127997E+00
2.154329377280E+00
0.70
1.516776352400E+00
1.742854628776E+00
1.974574556652E+00
0.75
1.354519041151E+00
1.573998427333E+00
1.799510579100E+00
0.80
1.197844086672E+00
1.410434835231E+00
1.629448220554E+00
0.85
1.046963049420E+00
1.252401750608E+00
1.464650043751E+00
0.90
9.020460838022E-01
1.100094409628E+00
1.305334967651E+00
0.95
7.632264776629E-01
9.536698512612E-01
1.151682621307E+00
1.00
6.306048219542E-01
8.132510552488E-01
1.003837419905E+00
1.05
5.042528145972E-01
6.789307429660E-01
8.619123372279E-01
1.10
3.842167155456E-01
5.507748485043E-01
7.259923711114E-01
1.15
2.705204766410E-01
4.288256769730E-01
5.961377115201E-01
1.20
1.631685723996E-01
3.131047717400E-01
4.723866279136E-01
1.25
6.214855811677E-02
2.036155140327E-01
3.547580958979E-01
1.30
-3.256661939683E-02
1.003454782409E-01
2.432541841813E-01
1.35
-1.210165348444E-01
3.268565186589E-03
1.378622225247E-01
1.40
-2.032513996228E-01
-8.765306591329E-02
3.855677032640E-02
1.45
-2.793303595584E-01
-1.724672478189E-01
-5.469859593446E-02
1.50
-3.493199575400E-01
-2.512302207523E-01
-1.419496597088E-01
分片二次多项式插值得到的f(xi*,yj*):
zx
y
0.1
0.2
0.3
0.4
0.70
1.947204079177E-01
4.059791892882E-01
6.347771951510E-01
8.789600231744E-01
0.90
-1.830370791887E-01
-2.251595837465E-02
1.588011688393E-01
3.586506258818E-01
1.10
-4.454976469148E-01
-3.382208160396E-01
-2.073656941709E-01
-5.525282116811E-02
1.30
-5.975667076413E-01
-5.444378315219E-01
-4.653579068978E-01
-3.626795115028E-01
1.50
-6.464595939011E-01
-6.473613385679E-01
-6.202709530749E-01
-5.675647436551E-01
zx
y
0.5
0.6
0.7
0.8
0.70
1.136610910158E+00
1.406041798905E+00
1.685783515309E+00
1.974574556652E+00
0.90
5.749803409475E-01
8.059414940633E-01
1.049881153064E+00
1.305334967651E+00
1.10
1.159923767920E-01
3.044292210453E-01
5.082937839397E-01
7.259923711114E-01
1.30
-2.385683040123E-01
-9.501613009962E-02
6.614879670641E-02
2.432541841813E-01
1.50
-4.914343936557E-01
-3.939023077456E-01
-2.768343417776E-01
-1.419496597088E-01
曲面拟合得到的p(xi*,yj*):
px
y
0.1
0.2
0.3
0.4
0.70
1.947303589099E-01
4.059895409397E-01
6.347874537249E-01
8.789698657421E-01
0.90
-1.830418357465E-01
-2.252111365296E-02
1.587962977548E-01
3.586460442403E-01
1.10
-4.455000363718E-01
-3.382240181155E-01
-2.073685772326E-01
-5.525543529708E-02
1.30
-5.975588481607E-01
-5.444304437654E-01
-4.653499182747E-01
-3.626710605192E-01
1.50
-6.464460978163E-01
-6.473480003306E-01
-6.202571316146E-01
-5.675505793308E-01
px
y
0.5
0.6
0.7
0.8
0.70
1.136620353233E+00
1.406050686499E+00
1.685791216195E+00
1.974581259623E+00
0.90
5.749758426295E-01
8.059373006568E-01
1.049877736812E+00
1.305332000187E+00
1.10
1.159893212557E-01
3.044258298113E-01
5.082910402588E-01
7.259893036741E-01
1.30
-2.385604197506E-01
-9.500894958283E-02
6.615634806610E-02
2.432607790330E-01
1.50
-4.914209015159E-01
-3.938898434997E-01
-2.768220548237E-01
-1.419388061602E-01
曲面拟合过程中的K,σ:
K=1,σ=3.220908973634E+000
K=2,σ=4.659960033303E-003
K=3,σ=1.721175379427E-004
K=4,σ=3.309534303841E-006
K=5,σ=2.541378347895E-008
K=5时即满足了精度要求,此时系数crs为
c00=+2.021230522022E+000c01=-3.668426815544E+000c02=+7.092486613401E-001c03=+8.486053638289E-001c04=-4.158974134096E-001c05=+6.743199023921E-002
c10=+3.191909010583E+000c11=-7.411103863748E-001c12=-2.697124579868E+000c13=+1.631183375948E+000c14=-4.847199620208E-001c15=+6.061427928551E-002
c20=+2.568898104996E-001c21=+1.579918684824E+000c22=-4.634081771761E-001c23=-8.134436451576E-002c24=+1.020942197230E-001c25=-2.101522642931E-002
c30=-2.692603658579E-001c31=-7.302475026124E-001c32=+1.076144754730E+000c33=-8.070124867669E-001c34=+3.028726459358E-001c35=-4.597260610859E-002
c40=+2.174598252989E-001c41=-1.783727616679E-001c42=-7.240501261680E-002c43=+2.433296784112E-001c44=-1.413343542190E-001c45=+2.651016847496E-002
c50=-5.590331236476E-002c51=+1.431994973296E-001c52=-1.362708978310E-001c53=+4.072014945137E-002c54=+3.774776079538E-003c55=-2.667652677300E-003
3、源程序
/**********************************************************************************
****************************************头文件************************************
**********************************************************************************/
//MatrixVector.h
#ifndefMATRIXVECTOR_H
#defineMATRIXVECTOR_H
typedefstructs_matrix{/*方阵*/
double*data;
intn;
}Matrix;
typedefstructs_vector{/*列向量*/
double*data;
intlength;
}Vector;
externconstMatrixNullMatrix;//空矩阵
externconstVectorNullVector;//空向量
//清空x所指向的内存
#defineclearMatrix(pm)(*pm=NullMatrix)
#defineclearVector(pv)(*pv=NullVector)
//获取矩阵A[k,j]元素的指针
#definepM(A,k,j)((A).data+(A).n*(k)+(j))
#defineM(A,k,j)(*(pM((A),(k),(j))))
#defineMLen(A)((A).n)
#definesetMLen(A,N)((A).n=(N))
//置矩阵A[k,j]=value
#definesetM(A,k,j,value)(*(pM((A),(k),(j)))=(((value))))
#definepV(v,k)((v).data+(k))
#defineV(v,k)(*(pV((v),(k))))
#defineVLen(v)((v).length)
#definesetV(V,k,value)(*(pV((V),(k)))=(value))
#definesetVLen(v,len)((v).length=len)
MatrixcreateMatrix(intN,doubleinitVal);//
voidfreeMatrix(Matrix*pm);//释放矩阵占有的内存
VectorcreateVector(intlength,doubleinitVal);
voidfreeVector(Vector*pv);//释放占用内存
int