北航数值分析大作业3
时间:2025-07-12
时间:2025-07-12
北航数值分析B第三次大作业
数值分析第三次作业
1. 设计方案
对Fredholm积分方程,用迭代法进行求解:
u(x)' A(u(x)),其中A(u(x)) g(x)
1 1
K(x,y) u(y)dy
对于公式中的积分部分用数值积分方法。
复化梯形积分法,取2601个节点,取迭代次数上限为50次。实际计算迭代次数为18次,最后算得误差为r= 0.97E-10。
复化Simpson积分法,取迭代次数上限为50次,取2*41+1,即83个节点时能满足精度要求。实际计算迭代次数为17次,最后的误差为 r= 0.97E-10。
Guass积分法选择的Gauss—Legendre法,取迭代次数上限为50次,直接选择8个节点,满足精度要求。实际计算迭代次数为24次,最后算得误差为r= 0.87E-10。 2. 全部源程序 module integral implicit none contains
!//////////复化梯形 subroutine trapezoid(m) implicit none integer :: i,j,k,m
real*8 :: x(m+1),u(m+1) real*8 :: sum,sum1,g,r,h real*8 :: e=1.0e-10
h=2./m do i=1,m+1
x(i)=-1.+(i-1)*h end do
u=0.02 do k=1,50 do i=1,m+1 sum1=0.
g=dexp(x(i)*4.)+(dexp(x(i)+4.)-dexp(-4.-x(i)))/(x(i)+4.)
do j=2,m
sum1=sum1+dexp(x(i)*x(j))*u(j)
end do
sum=h/2.*(dexp(x(i)*-1.)*u(1)+dexp(x(i)*1.)*u(m+1)+2*sum1)
u(i)=g-sum end do
北航数值分析B第三次大作业
r=h/2.*((dexp(x(1)*4)-u(1))**2+(dexp(x(m+1)*4)-u(m+1))**2) do i=2,m
r=r+h*(dexp(x(i)*4)-u(i))**2 end do
if(dabs(r)<=e) exit end do
write(*,*) k
open(1,file="trapezoid.txt") do i=1,m+1
write(1,'(3(f18.12))') x(i),u(i),dexp(x(i)*4.) end do
write(1,'(4x,a2,e9.2)') "r=",r close(1)
return
end subroutine trapezoid
!///////////复化simpson subroutine simpson(m) implicit none integer :: i,j,k,m
real*8 :: x(2*m+1),u(2*m+1) real*8 :: sum,sum1,sum2,g,r,h real*8 :: e=1.0e-10
h=2./(2.*m) do i=1,2*m+1 x(i)=-1.+(i-1)*h end do
u=0.02 do k=1,50
do i=1,2*m+1 sum1=0.
sum2=0.
g=dexp(x(i)*4.)+(dexp(x(i)+4.)-dexp(-4.-x(i)))/(x(i)+4.) do j=1,m
sum1=sum1+dexp(x(i)*x(2*j))*u(2*j) end do do j=1,m-1
sum2=sum2+dexp(x(i)*x(2*j+1))*u(2*j+1)
北航数值分析B第三次大作业
sum=h/3.*(dexp(x(i)*-1.)*u(1)+dexp(x(i)*1.)*u(2*m+1)+4*sum1+2*sum2) u(i)=g-sum end do
r=h/3.*((dexp(x(1)*4)-u(1))**2+(dexp(x(2*m+1)*4)-u(2*m+1))**2) do i=1,m
r=r+4.*h/3.*(dexp(x(2*i)*4)-u(2*i))**2 end do do i=1,m-1
r=r+2.*h/3.*(dexp(x(2*i+1)*4)-u(2*i+1))**2 end do
if(dabs(r)<=e) exit end do
write(*,*) k
open(2,file="simpson.txt") do i=1,2*m+1
write(2,'(3(f18.12))') x(i),u(i),dexp(x(i)*4.) end do
write(2,'(4x,a2,e9.2)') "r=",r close(2)
return
end subroutine simpson
!///////////Gauss_Legendre法 subroutine Gauss implicit none
integer,parameter :: m=8 integer :: i,j,k
real*8 :: x(m),u(m),a(m) real*8 :: sum,g,r real*8 :: e=1.0e-10
data x /-0.9602898565,-0.7966664774,-0.5255324099,-0.1834346425,& 0.1834346425,0.5255324099,0.7966664774,0.9602898565/
data a /0.1012285363,0.2223810345,0.3137066459,0.3626837834,& 0.3626837834,0.3137066459,0.2223810345,0.1012285363/
u=0.02 do k=1,50 do i=1,m
北航数值分析B第三次大作业
g=dexp(x(i)*4.)+(dexp(x(i)+4.)-dexp(-4.-x(i)))/(x(i)+4.) do j=1,m
sum=sum+dexp(x(i)*x(j))*u(j)*a(j) end do u(i)=g-sum end do r=0. do i=1,m
r=r+a(i)*(dexp(x(i)*4)-u(i))**2 end do
if(dabs(r)<=e) exit end do
write(*,*) k
open(3,file="Gauss.txt") do i=1,m
write(3,'(3(f18.12))') x(i),u(i),dexp(x(i)*4.) end do
write(3,'(4x,a2,e9.2)') "r=",r close(3)
return
end subroutine Gauss
end module
!//////////主程序 program main use integral implicit none integer :: code1=2600 integer :: code2=41
call trapezoid(code1) call simpson(code2) call Gauss
end program
3. 各种积分方法的节点和数值解(由于数据太多,在打印时用了较计算时少的有效数字)
北航数值分析B第三次大作业
复化梯形法
北航数值分析B第三次大作业
-0.8708 -0.87 -0.8692 -0.8685 -0.8677 -0.8669 -0.8662 -0.8654 -0.8646 -0.8638 -0.8631 -0.8623 -0.8615 -0.8608 -0.86 -0.8592 -0.8585 -0.8577 -0.8569 -0.8562 -0.8554 -0.8546 -0.8538 -0.8531 -0.8523 -0.8515 -0.8508 -0.85 -0.8492 -0.8485 -0.8477 -0.8469 -0.8462 -0.8454 -0.8446 -0.8438 -0.8431 -0.8423 -0.8415 -0.8408 -0.84 -0.8392 -0.8385
0.03071 0.03081 0.0309 0.031 0.03109 0.03119 0.03129 0.03138 0.03148 0.03158 0.03167 0.03177 0.03187 0.03197 0.03207 0.03216 0.03226 0.03236 0.03246 0.03256 0.03266 0.03276 0.03286 0.03297 0.03307 0.03317 0.03327 0.03337 0.03348 0.03358 0.03368 0.03379 0.03389 0.034 0.0341 0.03421 0.03431 0.03442 0.03452 0.03463 0.03474 0.03484 0.03495
-0.8377 -0.8369 -0.8362 -0.8354 -0.8346 -0.8338 -0.8331 -0.8323 -0.8315 -0.8308 -0.83 -0.8292 -0.8285 -0.8277 -0.8269 -0.8262 -0.8254 -0.8246 -0.8238 -0.8231 -0.8223 -0.8215 -0.8208 -0.82 -0.8192 -0.8185 -0.8177 -0.8169 -0.8162 -0.8154 -0.8146 -0.8138 -0.8131 -0.8123 -0.8115 -0.8108 -0.81 -0.8092 -0.8085 -0.8077 -0.8069 -0.8062 -0.8054
0.03506 0.03517 0.03527 0.03538 0.03549 0.0356 0.03571 0.03582 0.03593 0.03604 0.03615 0.03626 0.03638 0.03649 0.0366 0.03671 0.03683 0.03694 0.03705 0.03717 0.03728 0.0374 0.03751 0.03763 0.03774 0.03786 0.03798 0.03809 0.03821 0.03833 0.03845 0.03857 0.03869 0.0388 0.03892 0.03904 0.03916 0.03928 0.03941 0.03953 0.03965 0.03977 0.03989
-0.8046 -0.8038 -0.8031 -0.8023 -0.8015 -0.8008 -0.8 -0.7992 -0.7985 -0.7977 -0.7969 -0.7962 -0.7954 -0.7946 -0.7938 -0.7931 -0.7923 -0.7915 -0.7908 -0.79 -0.7892 -0.7885 -0.7877 -0.7869 -0.7862 -0.7854 -0.7846 -0.7838 -0.78 …… 此处隐藏:30914字,全部文档内容请下载后查看。喜欢就下载吧 ……