Fortran Coder

标题: 龙贝格数值计算的问题 [打印本页]

作者: 长安Fortraner    时间: 2017-12-8 10:09
标题: 龙贝格数值计算的问题
求助,只能求出f(0;k)再往下算就出现错误
我的代码如下
[Fortran] 纯文本查看 复制代码
program romberg
integer k,m
real h,i,n,a,b,e
real T(0:5,0:5),c(0:5,0:5)
a=0.0
b=1.0

do k=0,5
h=(b-a)/2**k
n=2**k
T(0,k)=0.0
do i=1,n-1
   x=a+i*h
   f=sqrt(x**3)
   T(0,k)=T(0,k)+f
end do
T(0,k)=2*T(0,k)+1.0
T(0,k)=T(0,k)*h/2
write(*,*) T(0,k)
end do

do m=1,5
do j=1,m
   T(j,m)=(4.0**m)/(4.0**m-1)*T(j,m-1)-1.0/(4.0**m-1)*T(j-1,m-1)
   write(*,*) T(j,m)
end do
end do



end

作者: li913    时间: 2017-12-8 10:51
因为你前半截只计算了 t(0,1)...t(0,5)
作者: 长安Fortraner    时间: 2017-12-8 11:23
li913 发表于 2017-12-8 10:51
因为你前半截只计算了 t(0,1)...t(0,5)

是的呀,但是往后推就出了错请问怎么办呢
作者: li913    时间: 2017-12-8 17:16
本帖最后由 li913 于 2017-12-8 17:19 编辑

L7 得给它赋初值,否则结果不可预计。

111.png (32.99 KB, 下载次数: 298)

111.png

作者: 长安Fortraner    时间: 2017-12-9 17:14
li913 发表于 2017-12-8 17:16
L7 得给它赋初值,否则结果不可预计。

谢谢,但我还是不太明白您说的t和c的赋初值。
作者: li913    时间: 2017-12-12 20:30
初始条件
作者: 长安Fortraner    时间: 2017-12-17 12:36
li913 发表于 2017-12-12 20:30
初始条件

谢谢您,我已经改好了




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2