Re: [問題] 如何用辛普森積分法解這題?

看板Fortran作者 (MoOn)時間15年前 (2009/05/18 23:24), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
※ 引述《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
文章代碼(AID): #1A4Nsr-B (Fortran)
文章代碼(AID): #1A4Nsr-B (Fortran)