real :: x0, x, tol, f, dfdx ,df_dx
integer :: max_iter, iter
f(x) = x**3-8*x**2+7*x+32 !Equation to solve
dfdx(x) = (f(x + h) - f(x - h)) / (2.0 * h) !Central Difference Method
! Constants:-
tol = 1.0e-6 ! Tolerance for convergence
max_iter = 100 ! Maximum number of iterations
h=0.001 ! Step-size
!Initial Guess x0:-
1 print*,"Enter the inital Guess:-"
read(*,*)x0
! Function and its derivative at x0:-
fx = f(x0)
df_dx = dfdx(x0)
!Checking the validity of the inital guess:-
if(fx > 0.0)then
print*,"Initial guess must be such that f(initial guess) should be close to 0."
goto 1
end if
! Newton-Raphson iteration:-
iter = 0
do while (abs(fx) >= tol .and. iter < max_iter)
x = x0 - fx / df_dx ! Compute next approximation of root
iter = iter + 1
x0 = x
fx = f(x0)
df_dx = dfdx(x0)
end do
! Output the results:-
if (iter == max_iter) then
print *,'Newton-Raphson method did not converge within ', max_iter, ' iterations.'
else
print *,'Root found: ',x0
print *,'Number of iterations: ',iter
end if
end
cmVhbCA6OiB4MCwgeCwgdG9sLCBmLCBkZmR4CSxkZl9keAppbnRlZ2VyIDo6IG1heF9pdGVyLCBpdGVyCiAgICAKZih4KSA9IHgqKjMtOCp4KioyKzcqeCszMiAgIUVxdWF0aW9uIHRvIHNvbHZlCmRmZHgoeCkgPSAoZih4ICsgaCkgLSBmKHggLSBoKSkgLyAoMi4wICogaCkJIUNlbnRyYWwgRGlmZmVyZW5jZSBNZXRob2QKCiEgQ29uc3RhbnRzOi0KdG9sID0gMS4wZS02ICAhIFRvbGVyYW5jZSBmb3IgY29udmVyZ2VuY2UKbWF4X2l0ZXIgPSAxMDAgICEgTWF4aW11bSBudW1iZXIgb2YgaXRlcmF0aW9ucwpoPTAuMDAxICEgU3RlcC1zaXplCgohSW5pdGlhbCBHdWVzcyB4MDotCjEgcHJpbnQqLCJFbnRlciB0aGUgaW5pdGFsIEd1ZXNzOi0iCnJlYWQoKiwqKXgwCgohIEZ1bmN0aW9uIGFuZCBpdHMgZGVyaXZhdGl2ZSBhdCB4MDotCmZ4ID0gZih4MCkKZGZfZHggPSBkZmR4KHgwKQoKIUNoZWNraW5nIHRoZSB2YWxpZGl0eSBvZiB0aGUgaW5pdGFsIGd1ZXNzOi0KaWYoZnggPiAwLjApdGhlbiAKICAgcHJpbnQqLCJJbml0aWFsIGd1ZXNzIG11c3QgYmUgc3VjaCB0aGF0IGYoaW5pdGlhbCBndWVzcykgc2hvdWxkIGJlIGNsb3NlIHRvIDAuIgogICBnb3RvIDEKZW5kIGlmIAoKISBOZXd0b24tUmFwaHNvbiBpdGVyYXRpb246LQppdGVyID0gMApkbyB3aGlsZSAoYWJzKGZ4KSA+PSB0b2wgLmFuZC4gaXRlciA8IG1heF9pdGVyKQogICB4ID0geDAgLSBmeCAvIGRmX2R4ICAhIENvbXB1dGUgbmV4dCBhcHByb3hpbWF0aW9uIG9mIHJvb3QKICAgaXRlciA9IGl0ZXIgKyAxCiAgIHgwID0geAogICBmeCA9IGYoeDApCiAgIGRmX2R4ID0gZGZkeCh4MCkKZW5kIGRvCgohIE91dHB1dCB0aGUgcmVzdWx0czotCmlmIChpdGVyID09IG1heF9pdGVyKSB0aGVuCiAgIHByaW50ICosJ05ld3Rvbi1SYXBoc29uIG1ldGhvZCBkaWQgbm90IGNvbnZlcmdlIHdpdGhpbiAnLCBtYXhfaXRlciwgJyBpdGVyYXRpb25zLicKZWxzZQkgICAgCiAgIHByaW50ICosJ1Jvb3QgZm91bmQ6ICcseDAKICAgcHJpbnQgKiwnTnVtYmVyIG9mIGl0ZXJhdGlvbnM6ICcsaXRlcgplbmQgaWYKCmVuZA==