北航数值分析大作业3

时间: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字,全部文档内容请下载后查看。喜欢就下载吧 ……

北航数值分析大作业3.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219