关键词不能为空

当前您在: 主页 > 英语 >

数值分析编程题c语言汇总

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-01-29 02:12
tags:

-inst

2021年1月29日发(作者:amphibian)


------------------------------------------< /p>


精品文档


------------------------- ------------


















































































数值分析实习报告





- 1 -




数值分析实习报告




















































































上机实习题一



一、题目:


b


与已知


A


12.38412,2.115237,-1.0 61074,1.112336,-0.113584,0.718719,1.742382,3.06781 3,-2.0317


43



2.115237,19.141823,-3.125432,-1.012345,2.1897 36,1.563849,-0.784165,1.112348,3.12312


4



-1.061074,-3.125432 ,15.567914,3.123848,2.031454,1.836742,-1.056781,0. 336993,-1.0101


03


< /p>


1.112336,-1.012345,3.123848,27.108437,4. 101011,-3.741856,2.101023,-0.71828,-0.03758


5


A=


-0.113584,2. 189736,2.031454,4.101011,19.897918,0.431637,-3.111 223,2.121314,1.784137



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.7138465,3.123789,-2.21


3474



3.067813 ,1.112348,0.336993,-0.71828,2.121314,-1.103456,3.1 23789,30.719334,4.446782



-2.031743,3.123124,-1.010103,-0.037585,1.78 4317,0.238417,-2.213474,4.446782,40.0000


1


b={2.1874369,33.992318,-25.173417,0 .84671695,1.784317,-86.612343,1.1101230,4.719345


,-5.6784392}



1


.用


Household


变换,把


A


化为三对角阵


B


(并打印


B






(0)


=0,


迭代


9


次)


ω


=1.4,X




2


.用超松弛法求解


BX=b


(取松弛因子


3


.用列主元素消去法求解


BX=b





二、解题方法的理论依据


:



学资学习网



1

、用


Householder


变换的理论依据





1





A0=A,a(ij)1=a(ij),


已知


Ar_1



Ar_1=a(ij) r




2



Sr=sqrt(pow(a,2))




3



a(r)=Sr*Sr+abs(a(r+1,r))*Sr




4



y(r)=A(r_1)*u?/a?




5



Kr=(/2)*Ur


的转置


*Yr/a?




6



Qr=Yr-Kr*Ur




7



Ar =A(r-1)-(Qr*Ur


的转置


+Ur*Qr

< p>
的转置) r=1,2,,……,n


-2


2


、用超松弛法求解



(m)(m-1)



其基本思想:在高 斯方法已求出


x,x


的基础上,组合新的序列,从而加快收敛速 度。



其算式:




B[i][i


?

1]


?


X[i


?

< br>1]


?


B[i][i]


?


X[i]


?


B[i][i

?


1]


?


X[i

< br>?


1]


?


b[i]





B[i][i


?


1]B[i][i


?

1]b[i]~


?


X[i]


??< /p>


X[i


?


1]


?


X0[i


?


1]


???


?


?


?


B[i][i]B[i][i]B[i][i]


?


~X[i]


?


w


?


X[i ]


?


X0[i]


??


X0[i]


?


X[i]


??


其中


ω


是超松弛 因子,当


ω


>1


时,可


以加快收敛速度



3


、用消去法求解



用追赶消去法求< /p>


Bx=b


的方法:




d1[i


?


1]


?


b[i]a1[i


?

< p>
2]


?


B[i


?


1][i]


,


,




- 2 -





数值分析实习报告


















































































]1


i< /p>


][


i


??


1[


i


1]


?


B< /p>


[


ib


1[


?< /p>


1]


?


B


[


i


][


i


]


c


, ,


q1[0]=0 , u1[0]=0 ,



8


?


,,


??


i]),i


?


1,2ib1[]


?

a1[i]


?


q1[1q1[i]


??


c[i](




u1[i}


?


(d1[i]


?


a1[i]


?


u1[i]) (b1[i]


?


a1[i]


?


q1[i


?


1]),i


?


1,2,


???


,9



x[9]=u1[9]



x


[


i


]


?


q


1[


i


]


?


x

< p>
[


i


?


1]


?


u


1[


i


],


i


?


8,7,

< p>
???


,1




三、


1


.计算程序:




#include math.h



#include stdio.h



#define ge 8



void main()



{



int sign(double x);



double a[][9]=



{



{12.38412,2.11 5237,-1.061074,1.112336,-0.113584,0.718719,1.74238 2,3.067813,-2.031743},




{ 2.115237,19.141823,-3.125432,-1.01234 5,2.189736,1.563849,-0.784165,1.112348,3.123124},




{-1.061074,-3.1 25432,15.567914,3.123848,2.031454,1.836742,-1.0567 81,0.336993,-1.010103},




{1.112336,-1.012345,3.123848,27.108437,4. 101011,-3.741856,2.101023,-0.71828,-0.037585},



学资学习网




{-0.113584,2.189736,2.03145 4,4.101011,19.897918,0.431637,-3.111223,2.121314,1 .784317},




{0.71 8719,1.563849,1.836742,-3.741856,0.431637,9.789365 ,-0.103458,-1.103456,0.238417},




{1.742382,-0.784165,-1.0567 81,2.101023,-3.111223,-0.103458,14.713846,3.123789 ,-2.213474},




{3 .067813,1.112348,0.336993,-0.71828,2.121314,-1.103 456,3.123789,30.719334,4.446782},




{-2.031743,3.123124,-1.0101 03,-0.037585,1.784317,0.238417,-2.213474,4.446782, 40.00001}




};




double k,h,s,w;




int i,j,n,m,g;




double u[9],x1[9],y[9],q[9],b1[9][10],x[9];




double b[9]=



{2.1874369,33.992318,-25.173417,0.8467169 5,1.784317,-86.612343,1.1101230,4.719345,-5.678439 2


};





for(j=0;j<7;++j)































/*Household


变换



*/




{





s=0.0;








for(i=j+1;i<9;++i)






s=s+a[i][j]*a[i][j];





s=sqrt(s);





h=( a[j+1][j]>0)?(s*s+s*a[j+1][j]):(s*s-s*a[j+1][j]);





for(g=0;g<9;++g)





{




- 3 -


















































































数值分析实习报告







if (g<=j)






u[g]=0;






else if (g==j+1)









u[g]=a[j+1][j]+s*sign(a[j+1][j]);






else u[g]=a[g][j];





}




for(m=0;m<9;++m)






{






y[m]=0;






for(n=0;n<9;++n)






y[m]=y[m]+a[m][n]*u[n];












y[m]=y[m]/h;





}




k=0;






for(i=0;i<9;++i)





k=k+u[i]*y[i];






k=0.5*k/h;





for(i=0;i<9;++i)






q[i]=y[i]-k*u[i];



学资学习网





for(n=0;n<9;++n)






for(m=0;m<9;++m)







a[m][n]=a[m][n]-(q[m]*u[n]+u[m]*q[n]);



}





printf(Household:n);




for(i=0;i<9;++i)






for(j=0;j<9;++j)





{






if (j%9==0)







printf(


);






printf(%-9.5f,a[i][j]);




}





printf(


);





w=1.4;




































/*


超松弛法


*/





for(i=0;i<9;i++)






x1[i]=0;





for(i=0;i<9;i++)






for(j=0;j<9;j++)






{







if(i==j)








b1[i][j]=0;







else b1[i][j]=-a[i][j]/a[i][i];





}







for(i=0;i<9;i++)







b1[i][9]=b[i]/a[i][i];




- 4 -


















































































数值分析实习报告







for(n=0;n<9;n++)







for(i=0;i<9;i++)







{








s=0;








for(j=0;j<9;j++)









s=s+b1[i][j]*x1[j];








s=s+b1[i][9];








x1[i]=x1[i]*(1-w)+w*s;







}







for(i=0;i<9;i++)







{









if (i==5)



学资学习网









printf(


);








牰湩晴尨


?????


屦椬砬嬱嵩


?






}









printf(


);







u[0]=a[0][0];






















/*


以下是消去法


*/







y[0]=b[0];







for(i=1;i<9;i++)







{








q[i]=a[i][i-1]/u[i-1];








u[i]=a[i][i]-q[i]*a[i-1][i];








y[i]=b[i]-q[i]*y[i-1];







}







x[ge]=y[ge]/u[ge];







for(i=ge-1;i>=0;i--)








x[i]=(y[i]-a[i][i+1]*x[i+1])/u[i];







for(i=0;i<9;i++)







{








if (i==5)









printf(


);








printf( x%d=%-10.6f,i,x[i]);







}



}




int sign(double x)




{





int



z;





z=(x>=(1e-6)?1:-1);





return(z);




}




2


.打印结果:




Household:



12.38412 -4.89308 0.00000



0.00000



0.00000



0.00000



0.00000



0.00000



0.00000




- 5 -


















































































数值分析实习报告




-4.89308 25.39842 6.49410



0.00000



0.00000



0.00000



0.00000



0.00000



0.00000



0.00000



6.49410



20.61150 8.24393



0.00000



0.00000



0.00000



0.00000



0.00000



0.00000



0.00000



8.24393



23.42284 -13.880070.00000



0.00000



0.00000



-0.00000



0.00000



0.00000



0.00000



-13.8800729.69828 4.53450



0.00000



0.00000



0.00000



0.00000



0.00000



0.00000



0.00000



4.53450



16.00612 4.88144



0.00000



0.00000



学资学习网



0.00000



0.00000



0.00000



0.00000



0.00000



4.88144



26.01332 -4.50363 -0.00000



0.00000



0.00000



0.00000



0.00000



0.00000



0.00000



-4.50363 21.25406 4.50450



0.00000



0.00000



0.00000



-0.00000 0.00000



0.00000



-0.00000 4.50450



14.53412



x0=1.073409



x1=2.272579



x2= -2.856601



x3=2.292514



x4=2.112165



x5= -6.422586



x6=1.357802



x7=0.634259



x8= -0.587042





x0=1.075799




x1=2.275744




x2= -2.855515



x3=2.293099




x4=2.112634




x5= -6.423838



x6=1.357923




x7=0.634244




x8= -0.587266



四、问题讨论:



< br>此程序具有很好的通用性。在


GS


方法的基础上,已经求 出


x


的第


m


解 ,第


m-1


基础上,经过


重新组合得新 的序列,而在此新序列收敛速度加快。





上机实习题二




一、题目:




已知函数值如下表:




x



f(x)



x



f(x)



f'(x)



试用三次样条插值求


f(4.563)


< br>f



(4.563)


的近似值。




1



0



6



1.791795



f'(1)=1



2



0.6931478



7



1.9459101





3



1.0986123



8



2.079445





4



1.3862944



9



2.1972246





5



1.6094378



10



2.3025851



f'(0)=0.1



二、解题方法的理论依据:




任意划分的三弯矩插值法以及方程组解法中的三对角阵追赶算法。




应用三次样条插值法能够对函数产生很好的逼近效果。而追赶 算法又具有计算量少、方法简单、


算法稳定的特点。




方法应用条件:适用于求复杂函数在给定区间内某一点的函数 值,给出函数


f(x)


在区间


[a,b ]


中的


n


个插值点,并且给出函数在区 间端点处的值。




三、


1


.计算程序:




#include stdio.h



#include math.h



#define n 11




- 6 -




数值分析实习报告

















































































学资学习网


-inst


-inst


-inst


-inst


-inst


-inst


-inst


-inst



本文更新与2021-01-29 02:12,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/582885.html

数值分析编程题c语言汇总的相关文章