Re: [問題] 如何用辛普森積分法解這題?
※ 引述《DrStein (交換關聯)》之銘言:
: ※ 引述《sawwas (saw)》之銘言:
: : Q: 將 e^(-x^2) 用辛普森積分法從 0 積到 3
: : ( 限定用Fortran語法編譯 )
: : 因為我從來沒學過Fortran 所以只好來此求助
: : 拜託各位大大了
不同版本
Implicit none
real*8 xmin,xmax,result1,a_inc,a_leng,aa,a1,a2,f,result2,eps
!辛普生法
integer*8 iseg,i
write(*,*)"輸入積分下限,輸入積分下限,收斂值"
read(*,*)xmin,xmax,eps
result1=0.0 ;result2=0.0 ;iseg=0.0
do
result2=result1
iseg=iseg+1
a_inc=(xmax-xmin)/iseg
a_leng=a_inc/2.0
aa=a_leng/3.0
a1=xmin
a2=a1+a_inc
result1=result1+(f(a1)+1.0*f(a1+a_leng)+f(a2))*aa
a1=a2
if (abs(result1-result2)<eps) exit
!write(*,*)abs(result1-result2)
end do
write(*,*)"積分下限值",xmin
write(*,*)"積分上限值",xmax
write(*,*)"收斂值",eps
write(*,*)"積分之面積",result1
write(*,*)"共分",iseg,"段"
write(*,*)"至收斂值的差值",abs(result1-result2)
pause
End
real*8 function f(x)
Implicit none
real*8 x
f=exp(-x^2)
return
end
依需求在自己改吧........作業!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.170.122.2
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章