program r_f
implicit none
real :: p,q,eps,x,x1,fp,fq,fx
integer :: choice,i,max_i
print*,"Enter a, b, epscilon, max_iteration"
read*, p, q, eps, max_i
print*,"Choose : 1 =Bisection, 2 = Newton, 3=Iteration, 4= Regula Falsi"
read*, choice
select case(choice)
case(1)
do i=1,max_i
x = (p+q)/2.0
fp = f(p); fq=f(q); fx=f(x)
if(abs(fx)<eps) exit
if(fp*fx<0) then
q=x
else
p=x
end if
end do
print*,"Root(Using Bisection) = ", x
case(2)
x = (p+q)/2.0
do i=1,max_i
x1 = x - f(x)/df(x)
if(abs(x1-x)<eps) exit
x = x1
end do
print*,"Root(Using Newton Raphson) = ", x
case(3)
x = (p+q)/2.0
do i=1,max_i
x1 = g(x)
if(abs(x1-x)<eps) exit
x = x1
end do
print*,"Root(Using Iteration) = ", x
case(4)
fp=f(p);fq=f(q)
do i=1,max_i
x = (p*fq-q*fp)/(fq-fp)
fx=f(x)
if(abs(x1-x)<eps) exit
if(fp*fx<0) then
q = x ; fq=fx
else
p = x
fp=fx
end if
end do
print*,"Root(Using Regula Falsi) = ", x
end select
contains
real function f(x)
real, intent(in) :: x
f = x*x - 4.0
end function
real function df(x)
real, intent(in) :: x
df = x*2.0
end function
real function g(x)
real, intent(in) :: x
g = sqrt(4.0)
end function
end program r_f
cHJvZ3JhbSByX2YKICAgIGltcGxpY2l0IG5vbmUKICAgIHJlYWwgOjogcCxxLGVwcyx4LHgxLGZwLGZxLGZ4CiAgICBpbnRlZ2VyIDo6IGNob2ljZSxpLG1heF9pCgogICAgcHJpbnQqLCJFbnRlciBhLCBiLCBlcHNjaWxvbiwgbWF4X2l0ZXJhdGlvbiIKICAgIHJlYWQqLCBwLCBxLCBlcHMsIG1heF9pCiAgICBwcmludCosIkNob29zZSA6IDEgPUJpc2VjdGlvbiwgMiA9IE5ld3RvbiwgMz1JdGVyYXRpb24sIDQ9IFJlZ3VsYSBGYWxzaSIKICAgIHJlYWQqLCBjaG9pY2UKICAgIHNlbGVjdCBjYXNlKGNob2ljZSkKICAgICAgICBjYXNlKDEpCiAgICAgICAgICAgIGRvIGk9MSxtYXhfaQogICAgICAgICAgICAgICAgeCA9IChwK3EpLzIuMAogICAgICAgICAgICAgICAgZnAgPSBmKHApOyBmcT1mKHEpOyBmeD1mKHgpCiAgICAgICAgICAgICAgICBpZihhYnMoZngpPGVwcykgZXhpdAogICAgICAgICAgICAgICAgaWYoZnAqZng8MCkgdGhlbgogICAgICAgICAgICAgICAgICAgIHE9eAogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHA9eAogICAgICAgICAgICAgICAgZW5kIGlmCiAgICAgICAgICAgIGVuZCBkbwogICAgICAgICAgICBwcmludCosIlJvb3QoVXNpbmcgQmlzZWN0aW9uKSA9ICIsIHgKICAgICAgICAKICAgICAgICBjYXNlKDIpCiAgICAgICAgICAgIHggPSAocCtxKS8yLjAKICAgICAgICAgICAgZG8gaT0xLG1heF9pCiAgICAgICAgICAgICAgICB4MSA9IHggLSBmKHgpL2RmKHgpCiAgICAgICAgICAgICAgICBpZihhYnMoeDEteCk8ZXBzKSBleGl0CiAgICAgICAgICAgICAgICB4ID0geDEKICAgICAgICAgICAgZW5kIGRvCiAgICAgICAgICAgIHByaW50KiwiUm9vdChVc2luZyBOZXd0b24gUmFwaHNvbikgPSAiLCB4CiAgICAgICAgCiAgICAgICAgY2FzZSgzKQogICAgICAgICAgICB4ID0gKHArcSkvMi4wCiAgICAgICAgICAgIGRvIGk9MSxtYXhfaQogICAgICAgICAgICAgICAgeDEgPSBnKHgpCiAgICAgICAgICAgICAgICBpZihhYnMoeDEteCk8ZXBzKSBleGl0CiAgICAgICAgICAgICAgICB4ID0geDEKICAgICAgICAgICAgZW5kIGRvCiAgICAgICAgICAgIHByaW50KiwiUm9vdChVc2luZyBJdGVyYXRpb24pID0gIiwgeAogICAgICAgIAogICAgICAgIGNhc2UoNCkKICAgICAgICAgICAgZnA9ZihwKTtmcT1mKHEpCiAgICAgICAgICAgIGRvIGk9MSxtYXhfaQogICAgICAgICAgICAgICAgeCA9IChwKmZxLXEqZnApLyhmcS1mcCkKICAgICAgICAgICAgICAgIGZ4PWYoeCkKICAgICAgICAgICAgICAgIGlmKGFicyh4MS14KTxlcHMpIGV4aXQKICAgICAgICAgICAgICAgIGlmKGZwKmZ4PDApIHRoZW4KICAgICAgICAgICAgICAgICAgICBxID0geCA7IGZxPWZ4CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgcCA9IHgKICAgICAgICAgICAgICAgICAgICBmcD1meAogICAgICAgICAgICAgICAgZW5kIGlmCiAgICAgICAgICAgIGVuZCBkbwogICAgICAgICAgICBwcmludCosIlJvb3QoVXNpbmcgUmVndWxhIEZhbHNpKSA9ICIsIHgKICAgIGVuZCBzZWxlY3QKY29udGFpbnMKICAgIHJlYWwgZnVuY3Rpb24gZih4KQogICAgICAgIHJlYWwsIGludGVudChpbikgOjogeAogICAgICAgIGYgPSB4KnggLSA0LjAKICAgIGVuZCBmdW5jdGlvbgoKICAgIHJlYWwgZnVuY3Rpb24gZGYoeCkKICAgICAgICByZWFsLCBpbnRlbnQoaW4pIDo6IHgKICAgICAgICBkZiA9IHgqMi4wCiAgICBlbmQgZnVuY3Rpb24KICAgICAgICAKICAgIHJlYWwgZnVuY3Rpb24gZyh4KQogICAgICAgIHJlYWwsIGludGVudChpbikgOjogeAogICAgICAgIGcgPSBzcXJ0KDQuMCkKICAgIGVuZCBmdW5jdGlvbgplbmQgcHJvZ3JhbSByX2Yg