Untitled
unknown
plain_text
a year ago
3.3 kB
0
Indexable
Never
import matplotlib.pyplot as plt import numpy as np def value_of_fx(x): return x**3-x-1 print(" n | a | f(a) | b | f(b) | c | Approximation Error | Relative Approximation Error") print(" ") a=50 b=-50 i=1 x0=1 iter_nmbr=[] approximation_err=[] rel_apprx=[] while abs(value_of_fx(x0))>= 10 ** -5 or i==1: x0=(a+b)/2 if(value_of_fx(x0)*value_of_fx(a)<0): apprxmtn=abs(x0-b) b=x0 else: apprxmtn=abs(x0-a) a=x0; rel_apprxmtn=(apprxmtn*100) if(x0== 0): rel_apprxmtn=100 else: rel_apprxmtn=rel_apprxmtn/x0 print(f" {i:10.6f} {a:10.6f} {value_of_fx(a):15.6f} {b:10.6f} {value_of_fx(b):15.6f} {x0:15.6f} {apprxmtn:19.6f} {rel_apprxmtn:20.4f}% ") i=i+1 iter_nmbr.append(i) approximation_err.append(apprxmtn) rel_apprx.append(rel_apprxmtn) x_bapp = np.array(iter_nmbr) y_bapp = np.array(approximation_err) plt.bar(x_bapp,y_bapp) plt.xlabel("Iteration Number") plt.ylabel("Approximation error") plt.title("Bisection Method") plt.show() y_brl=np.array(rel_apprx) plt.bar(x_bapp,y_brl) plt.xlabel("Iteration Number") plt.ylabel("Relative Approximation error") plt.title("Bisection Method") plt.show() print(" n | X0 | f(x0) | x1 | f(x1) | x2 | Approximation Error | Relative Approximation Error") print(" ") x0=50 x1=-50 i=1 x2=1 F_iter_nmbr=[] F_approximation_err=[] F_rel_apprx=[] while abs(value_of_fx(x2))>= 10 ** -2 or i==1: x2=(x0*value_of_fx(x1))-(x1*value_of_fx(x0)) x2/=(value_of_fx(x1) - value_of_fx(x0)) if(value_of_fx(x2)*value_of_fx(x1)<0): apprxmtn=abs(x2-x0) x0=x2 else: apprxmtn=abs(x2-x1) x1=x2 rel_apprxmtn=(apprxmtn*100) if(x2== 0): rel_apprxmtn=100 else: rel_apprxmtn=rel_apprxmtn/x2 print(f" {i:10.6f} {x0:10.6f} {value_of_fx(x0):15.6f} {x1:10.6f} {value_of_fx(x1):15.6f} {x2:15.6f} {apprxmtn:19.6f} {rel_apprxmtn:20.4f}% ") i=i+1 F_iter_nmbr.append(i) F_approximation_err.append(apprxmtn) if(rel_apprx> 10 ** -3) : F_rel_apprx.append(rel_apprxmtn) x_fapp = np.array(F_iter_nmbr) y_fpp = np.array(F_approximation_err) y_frl=np.array(F_rel_apprx) plt.bar(x_fapp,y_fpp) plt.xlabel("Iteration Number") plt.ylabel("Approximation error") plt.title("False Position Method") plt.show() plt.bar(x_fapp,y_frl) plt.xlabel("Iteration Number") plt.ylabel("Relative Approximation error") plt.title("False Position Method") plt.show() plt.bar(x_bapp,y_bapp,label="Bisection Method") plt.bar(x_fapp,y_fpp,label="False Position Method") plt.xlabel("Iteration Number") plt.ylabel("Approximation error") plt.title("Bisection Method vs False Position Method") plt.legend() plt.show() plt.bar(x_bapp,y_brl,label="Bisection Method") plt.bar(x_fapp,y_frl,label="False Position Method") plt.xlabel("Iteration Number") plt.ylabel("Relative Approximation error") plt.title("Bisection Method vs False Position Method") plt.legend() plt.show()