資源描述:
《數(shù)值分析上機(jī)報告》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、......第一題:1、已知A與b(1)用Househloser變換,把A化為三對角陣(并打印B)。(2)用超松弛法求解Bx=b(取松弛因子ω=1.4,x(0)=0,迭代9次)。(3)用列主元素消去法求解Bx=b。一、分析如下:(3)用列主元素消去法求解Bx=b。將方陣A和向量b寫成C=(Ab)。將C的第1列中第1行的元素與其下面的此列的元素逐一進(jìn)行比較,找到最大的元素,將第j行的元素與第1行的元素進(jìn)行交換,然后通過行變換,將第1列中第2到第n個元素都消成0。將變換后的矩陣的第二列中第二行的元素與其下面的此列的元素逐一進(jìn)行比較,找到最大
2、的元素,將第k行的元素與第2行的元素進(jìn)行交換,然后通過行變換,將第2列中第3到第n個元素都消成0。以此方法將矩陣的左下部分全都消成0。最終形式如下:(Ab)~二、程序:#include"math.h"#include"stdio.h"/*標(biāo)準(zhǔn)的基本庫函數(shù)頭文件*/#definege8voidmain(){intsign(doublex);/*該函數(shù)為sign函數(shù)*/學(xué)習(xí)好幫手......doublet[9][9]=/*數(shù)組賦初值*/{{12.38412,2.115237,-1.061074,1.112336,-0.113584,0.71
3、8719,1.742382,3.067813,-2.031743},{2.115237,19.141823,-3.125432,-1.012345,2.189736,1.563849,-0.784165,1.112348,3.123124},{-1.061074,-3.125432,15.567914,3.123848,2.031454,1.836742,-1.056781,0.336993,-1.010103},{1.112336,-1.012345,3.123848,27.108437,4.101011,-3.741856,2.10
4、1023,-0.71828,-0.037585},{-0.113584,2.189736,2.031454,4.101011,19.897918,0.431637,-3.111223,2.121314,1.784317},{0.718719,1.563849,1.836742,-3.741856,0.431637,9.789365,-0.103458,-1.103456,0.238417},{1.742382,-0.784165,-1.056781,2.101023,-3.111223,-0.103458,14.713846,3.123
5、789,-2.213474},{3.067813,1.112348,0.336993,-0.71828,2.121314,-1.103456,3.123789,30.719334,4.446782},{-2.031743,3.123124,-1.010103,-0.037585,1.784317,0.238417,-2.213474,4.446782,40.00001}};doublep,v,s,w;inti,j,h,m,g;doubleu[9],x1[9],y[9],q[9],b1[9][10],x[9];doubled[9]={2.
6、1874369,33.992318,-25.173417,0.84671695,1.784317,-86.612343,1.1101230,4.719345,-5.6784392};/*--------------------開始迭代----------------------*/for(j=0;j<7;++j)/*Household變換*/{s=0.0;for(i=j+1;i<9;++i)s=s+t[i][j]*t[i][j];s=sqrt(s);v=(t[j+1][j]>0)?(s*s+s*t[j+1][j]):(s*s-s*t[j
7、+1][j]);for(g=0;g<9;++g){if(g<=j)u[g]=0;elseif(g==j+1)u[g]=t[j+1][j]+s*sign(t[j+1][j]);elseu[g]=t[g][j];}for(m=0;m<9;++m)學(xué)習(xí)好幫手......{y[m]=0;for(h=0;h<9;++h)y[m]=y[m]+t[m][h]*u[h];y[m]=y[m]/v;}p=0;for(i=0;i<9;++i)p=p+u[i]*y[i];p=0.5*p/v;for(i=0;i<9;++i)q[i]=y[i]-p*u[i];fo
8、r(h=0;h<9;++h)for(m=0;m<9;++m)t[m][h]=t[m][h]-(q[m]*u[h]+u[m]*q[h]);}printf("Household:h");for(i=0;i<9