北航数值分析大作业第三题(fortran).pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《北航数值分析大作业第三题(fortran).pdf》由会员分享,可在线阅读,更多相关《北航数值分析大作业第三题(fortran).pdf(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、“数值分析数值分析“计算实习大作业第三题计算实习大作业第三题SY1415215孔维鹏一、计算说明一、计算说明1、将=0.08,=0.5+0.05j分别代入方程组(A.3)得到关于 t,u,v,w 的的方程组,调用离散牛顿迭代子函数求出与,对应的,。2、调用分片二次代数插值子函数在点(,)处插值得到(,)=(,),得到数表(,(,)。3、对于=1,2,3,4,分别调用最小二乘拟合子函数计算系数矩阵及误差,直到满足精度,即求得最小的 k 值及系数矩阵。4、将=0.1,=0.5+0.2j分别代入方程组(A.3)得到关于,的的方程组,调用离散牛顿迭代子函数求出与,对应的,调用分片二次代数插值子函数在点
2、(,)处插值得到(,)=(,);调用步骤 3 中求得的系数矩阵求得(,),打印数表(,(,),(,)。二、源程序(二、源程序(FORTRANFORTRAN)PROGRAMPROGRAM SY1415215DIMENSIONDIMENSION X(11),Y(21),T(6),U(6),Z(6,6),UX(11,21),TY(11,21),FXY(11,21),C(6,6)DIMENSIONDIMENSION X1(8),Y1(5),FXY1(8,5),PXY1(8,5),UX1(8,5),TY1(8,5)REAL(8)REAL(8)X,Y,T,U,Z,FXY,UX,TY,C,E,X1,Y1,F
3、XY1,PXY1,UX1,TY1OPENOPEN(1,FILE=第三题计算结果.TXT)DODO I=1,11 X(I)=0.08*(I-1)ENDDOENDDODODO I=1,21 Y(I)=0.5+0.05*(I-1)ENDDOENDDO!*求解非线性方程组,得到z=f(t,u)的函数*DODO I=1,11DODO J=1,21CALLCALL DISNEWTON_NONLINEAR(X(I),Y(J),UX(I,J),TY(I,J)ENDDOENDDOENDDOENDDO!*分片二次插值得到z=f(x,y)*DODO I=1,11DODO J=1,21CALLCALL INTERPO
4、LATION(UX(I,J),TY(I,J),FXY(I,J)ENDDOENDDOENDDOENDDOWRITEWRITE(1,(数表(x,y,f(x,y):)WRITEWRITE(1,(3X,X,7X,Y,10X,F(X,Y)DODO I=1,11DODO J=1,21WRITEWRITE(1,(1X,F5.2,2X,F5.3,2X,E20.13)X(I),Y(J),FXY(I,J)ENDDOENDDOWRITEWRITE(1,()ENDDOENDDO!*最小二乘拟合得到P(x,y)*N=11M=21WRITEWRITE(1,(,K和 分别为:)DODO K=1,20CALLCALL LSF
5、ITTING(X,Y,FXY,C,N,M,K,K,E)WRITEWRITE(1,(I3,2X,E20.13)K-1,EIFIF(E10E-7)EXITEXITENDDOENDDOWRITEWRITE(1,()WRITEWRITE(1,(系数矩阵Crs(按行)为:)DODO I=1,KDODO J=1,KWRITEWRITE(1,(E20.13,2X,)C(I,J)ENDDOENDDOWRITEWRITE(1,()WRITEWRITE(*,()ENDDOENDDODODO I=1,8 X1(I)=0.1*IENDDOENDDODODO J=1,5 Y1(J)=0.5+0.2*JENDDOENDD
6、ODODO I=1,8DODO J=1,5CALLCALL DISNEWTON_NONLINEAR(X1(I),Y1(J),UX1(I,J),TY1(I,J)ENDDOENDDOENDDOENDDODODO I=1,8DODO J=1,5CALLCALL INTERPOLATION(UX1(I,J),TY1(I,J),FXY1(I,J)ENDDOENDDOENDDOENDDOPXY1=0DODO I=1,8DODO J=1,5DODO II=1,KDODO JJ=1,K PXY1(I,J)=PXY1(I,J)+C(II,JJ)*(X1(I)*(II-1)*(Y1(J)*(JJ-1)ENDDOE
7、NDDOENDDOENDDOENDDOENDDOENDDOENDDOWRITEWRITE(1,()WRITEWRITE(1,(数表(x,y,f(x,y),p(x,y):)WRITEWRITE(1,(2X,X,6X,Y,12X,F(X,Y),14X,P(X,Y)DODO I=1,8DODO J=1,5WRITEWRITE(1,(F5.3,2X,F5.3,2X,E20.13,2X,E20.13)X1(I),Y1(J),FXY1(I,J),PXY1(I,J)ENDDOENDDOWRITEWRITE(1,()ENDDOENDDOCLOSECLOSE(1)ENDEND!*用离散牛顿法求解非线性方程组*S
8、UBROUTINESUBROUTINE DISNEWTON_NONLINEAR(X1,Y1,U,T)PARAMETERPARAMETER(N=4)REALREAL EPS!EPS为迭代精度,M为最大迭代次数DIMENSIONDIMENSION X(N),H(N),Y(N),JA(N,N),E(N),XK(N)REAL(8)REAL(8)JA,X,H,Y,E,XK,U,T,V,W,X1,Y1,E1,E2F1(T,U,V,W)=0.5*COS(T)+U+V+W-X1-2.67F2(T,U,V,W)=T+0.5*SIN(U)+V+W-Y1-1.07F3(T,U,V,W)=0.5*T+U+COS(V)
9、+W-X1-3.74F4(T,U,V,W)=T+0.5*U+V+SIN(W)-Y1-0.79EPS=10E-12M=100X=1.0DODO K=1,M H=1!计算Y=F(x)Y(1)=F1(X(1),X(2),X(3),X(4)Y(2)=F2(X(1),X(2),X(3),X(4)Y(3)=F3(X(1),X(2),X(3),X(4)Y(4)=F4(X(1),X(2),X(3),X(4)!计算JA(N,N)E=0.0DODO I=1,NDODO J=1,NDODO JJ=1,NIFIF(JJ=J)THENTHEN E(JJ)=X(JJ)+H(JJ)ELSEELSE E(JJ)=X(JJ)E
10、NDIFENDIFENDDOENDDOIFIF(I=1)THENTHEN JA(I,J)=(F1(E(1),E(2),E(3),E(4)-F1(X(1),X(2),X(3),X(4)/H(J)ELSEIFELSEIF(I=2)THENTHEN JA(I,J)=(F2(E(1),E(2),E(3),E(4)-F2(X(1),X(2),X(3),X(4)/H(J)ELSEIFELSEIF(I=3)THENTHEN JA(I,J)=(F3(E(1),E(2),E(3),E(4)-F3(X(1),X(2),X(3),X(4)/H(J)ELSEIFELSEIF(I=4)THENTHEN JA(I,J)=
11、(F4(E(1),E(2),E(3),E(4)-F4(X(1),X(2),X(3),X(4)/H(J)ENDIFENDIFENDDOENDDOENDDOENDDO!求解线性方程组CALLCALL GAUSS(JA,XK,-Y,N)!判断精度CALLCALL NORM(XK,N,E1)CALLCALL NORM(X,N,E2)IFIF(E1/E2TA).OR.(A(L,K)=TA)THENTHENTA=A(L,K)TL=LDODO J=K,NT(K,J)=A(K,J)A(K,J)=A(TL,J)A(TL,J)=T(K,J)ENDDOENDDOTB(K)=B(K)B(K)=B(TL)B(TL)=T
12、B(K)ENDIFENDIFENDDOENDDODODO I=K+1,NM(I,K)=A(I,K)/A(K,K)A(I,K)=0DODO J=K+1,NA(I,J)=A(I,J)-M(I,K)*A(K,J)ENDDOENDDOB(I)=B(I)-M(I,K)*B(K)ENDDOENDDOENDDOENDDO!回代过程X(N)=B(N)/A(N,N)DODO K=N-1,1,-1S=0.0DODO J=K+1,NS=S+A(K,J)*X(J)ENDDOENDDOX(K)=(B(K)-S)/A(K,K)ENDDOENDDORETURNRETURNENDEND!*求向量的无穷范数*SUBROUTIN
13、ESUBROUTINE NORM(X,N,A)DIMENSIONDIMENSION X(N)REAL(8)REAL(8)X,AA=ABS(X(1)DODO I=2,NIFIF(ABS(X(I)ABS(X(I-1)THENTHEN A=ABS(X(I)ENDIFENDIFENDDOENDDORETURNRETURNENDEND!*分片二次代数插值*SUBROUTINESUBROUTINE INTERPOLATION(U,V,W)PARAMETERPARAMETER(N=6,M=6)DIMENSIONDIMENSION X(N),Y(M),Z(M,N),LK(3),LR(3)REAL(8)REAL
14、(8)X,Y,Z,H,TREAL(8)REAL(8)U,V,W,LK,LR!U,V分别为插值点处的坐标,W为插值结果INTEGERINTEGER R!*数据赋值*DATADATA Y/0.0,0.2,0.4,0.6,0.8,1.0/DATADATA X/0.0,0.4,0.8,1.2,1.6,2.0/DATADATA Z/-0.5,-0.42,-0.18,0.22,0.78,1.5,&-0.34,-0.5,-0.5,-0.34,-0.02,0.46,&0.14,-0.26,-0.5,-0.58,-0.5,-0.26,&0.94,0.3,-0.18,-0.5,-0.66,-0.66,&2.06,
15、1.18,0.46,-0.1,-0.5,-0.74,&3.5,2.38,1.42,0.62,-0.02,-0.5/H=0.4T=0.2!*计算K,R*IFIF(UX(N-1)-H/2)THENTHEN K=N-1ELSEELSEDODO I=3,N-2IFIF(UX(I)-H/2).AND.(U=X(I)+H/2)THENTHEN K=IENDIFENDIFENDDOENDDOENDIFENDIFIFIF(VY(M-1)-T/2)THENTHEN R=M-1ELSEELSEDODO J=3,M-2IFIF(VY(J)-T/2).AND.(VN)P=NIFIF(P20)P=20IFIF(QM)Q
16、=MIFIF(Q20)Q=20XX=0YY=0D1=NAPX(1)=0.0DODO I=1,N APX(1)=APX(1)+X(I)ENDDOENDDOAPX(1)=APX(1)/D1DODO J=1,M V(1,J)=0.0DODO I=1,N V(1,J)=V(1,J)+Z(I,J)ENDDOENDDO V(1,J)=V(1,J)/D1ENDDOENDDOIFIF(P1)THENTHEN D2=0.0 APX(2)=0.0DODO I=1,N G=X(I)-APX(1)D2=D2+G*G APX(2)=APX(2)+(X(I)-XX)*G*GENDDOENDDO APX(2)=APX(2)
17、/D2 BX(2)=D2/D1DODO J=1,M V(2,J)=0.0DODO I=1,N G=X(I)-APX(1)V(2,J)=V(2,J)+Z(I,J)*GENDDOENDDO V(2,J)=V(2,J)/D2ENDDOENDDO D1=D2ENDIFENDIFDODO K=3,P D2=0.0 APX(K)=0.0DODO J=1,M V(K,J)=0.0ENDDOENDDODODO I=1,N G1=1.0 G2=X(I)-APX(1)DODO J=3,K G=(X(I)-APX(J-1)*G2-BX(J-1)*G1 G1=G2 G2=GENDDOENDDO D2=D2+G*G A
18、PX(K)=APX(K)+X(I)*G*GDODO J=1,M V(K,J)=V(K,J)+Z(I,J)*GENDDOENDDOENDDOENDDODODO J=1,M V(K,J)=V(K,J)/D2ENDDOENDDO APX(K)=APX(K)/D2 BX(K)=D2/D1 D1=D2ENDDOENDDOD1=MAPY(1)=0.0DODO I=1,M APY(1)=APY(1)+Y(I)ENDDOENDDOAPY(1)=APY(1)/D1DODO J=1,P U(J,1)=0.0DODO I=1,M U(J,1)=U(J,1)+V(J,I)ENDDOENDDO U(J,1)=U(J,1
19、)/D1ENDDOENDDOIFIF(Q1)THENTHEN D2=0.0 APY(2)=0.0DODO I=1,M G=Y(I)-APY(1)D2=D2+G*G APY(2)=APY(2)+(Y(I)*G*GENDDOENDDO APY(2)=APY(2)/D2 BY(2)=D2/D1DODO J=1,P U(J,2)=0.0DODO I=1,M G=Y(I)-APY(1)U(J,2)=U(J,2)+V(J,I)*GENDDOENDDO U(J,2)=U(J,2)/D2ENDDOENDDO D1=D2ENDIFENDIFDODO K=3,Q D2=0.0 APY(K)=0.0DODO J=1
20、,P U(J,K)=0.0ENDDOENDDODODO I=1,M G1=1.0 G2=Y(I)-APY(1)DODO J=3,K G=(Y(I)-APY(J-1)*G2-BY(J-1)*G1 G1=G2 G2=GENDDOENDDO D2=D2+G*G APY(K)=APY(K)+Y(I)*G*GDODO J=1,P U(J,K)=U(J,K)+V(J,I)*GENDDOENDDOENDDOENDDODODO J=1,P U(J,K)=U(J,K)/D2ENDDOENDDO APY(K)=APY(K)/D2 BY(K)=D2/D1 D1=D2ENDDOENDDOV(1,1)=1.0V(2,1
21、)=-APY(1)V(2,2)=1.0DODO I=1,PDODO J=1,Q A(I,J)=0.0ENDDOENDDOENDDOENDDODODO I=3,Q V(I,I)=V(I-1,I-1)V(I,I-1)=-APY(I-1)*V(I-1,I-1)+V(I-1,I-2)IFIF(I=4)THENTHENDODO K=I-2,2,-1 V(I,K)=-APY(I-1)*V(I-1,K)+V(I-1,K-1)-BY(I-1)*V(I-2,K)ENDDOENDDOENDIFENDIF V(I,1)=-APY(I-1)*V(I-1,1)-BY(I-1)*V(I-2,1)ENDDOENDDODOD
22、O I=1,PIFIF(I=1)THENTHEN T(1)=1.0 T1(1)=1.0ELSEIFELSEIF(I=2)THENTHEN T(1)=-APX(1)T(2)=1.0 T2(1)=T(1)T2(2)=T(2)ELSEELSE T(I)=T2(I-1)T(I-1)=-APX(I-1)*T2(I-1)+T2(I-2)IFIF(I=4)THENTHENDODO K=I-2,2,-1 T(K)=-APX(I-1)*T2(K)+T2(K-1)-BX(I-1)*T1(K)ENDDOENDDOENDIFENDIF T(1)=-APX(I-1)*T2(1)-BX(I-1)*T1(1)T2(I)=T
23、(I)DODO K=I-1,1,-1 T1(K)=T2(K)T2(K)=T(K)ENDDOENDDOENDIFENDIFDODO J=1,QDODO K=I,1,-1DODO L=J,1,-1 A(K,L)=A(K,L)+U(I,J)*T(K)*V(J,L)ENDDOENDDOENDDOENDDOENDDOENDDOENDDOENDDODT1=0.0DODO I=1,N X1=X(I)DODO J=1,M Y1=Y(J)X2=1.0 DD=0.0DODO K=1,P G=A(K,Q)DODO KK=Q-1,1,-1 G=G*Y1+A(K,KK)ENDDOENDDO G=G*X2 DD=DD+G
24、 X2=X2*X1ENDDOENDDO DT=DD-Z(I,J)DT1=DT1+DT*DTENDDOENDDOENDDOENDDORETURNRETURNENDEND三、计算结果三、计算结果数表(x,y,f(x,y):XYUXTYF(X,Y)0.000.5001.3450.2430.4465040260217E+000.000.5501.3220.2690.3246832410866E+000.000.6001.2990.2950.2101596387135E+000.000.6501.2770.3220.1030436532994E+000.000.7001.2550.3500.340191
25、2404030E-020.000.7501.2350.377-0.8873582055387E-010.000.8001.2150.406-0.1733716589358E+000.000.8501.1960.434-0.2505346523772E+000.000.9001.1770.463-0.3202764787154E+000.000.9501.1590.492-0.3826681228086E+000.001.0001.1420.521-0.4377957495101E+000.001.0501.1250.550-0.4857588795274E+000.001.1001.1090.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 北航 数值 分析 作业 第三 fortran
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内