我在fortran中编写以下代码并且函数definintion出错
program bisection_method
implicit none
real:: a=2.5,b=4.5,c,f
if (f(a)*f(b).gt.0) then
write(*,*) "error"
else
do while ((b-a)/2.0>0.0001)
c = (a+b)/2.0
if (f(a)*f(c).lt.0) then
c = a
else
c = b
endif
enddo
endif
write(*,*)"the root is ",c
end program
function f(x)
implicit none
real::f,x
f=(16*(x^3)-385*(x^2)+6000*(x)-3125)
end function f
并出现以下错误
fbisection.f90:24:9:
f=(16*(x^3)-385*(x^2)+6000*(x)-3125)
1
Error: Expected a right parenthesis in expression at (1)
知道为什么会这样吗? 感谢
答案 0 :(得分:1)
您将^
与**
混淆,后者是取幂运算符(^
字符不是fortran中的运算符。)
只需用以下代码替换所述行:
f=(16*(x**3)-385*(x**2)+6000*(x)-3125)