#1. Plot the graph of the function f(x) using a tool such as gnuplot.f(x) = e^(0.5x)+5x-5#2. Tabulate the change of errors obtained from the three methods.#3. Plot the graph showing the decrease of error with iteration and discuss the convergence rate.C언어를 이용하여 소스코드를 작성해 다음과 같은 결과를 얻었다.위와 같은 결과로 우리는 Newton-Raphson방법이 가장 먼저 해에 수렴하였고, Bisection방법이 가장 늦게 수렴하는 것을 확인할 수 있다.이러한 결과의 원인으로는 가장먼저 Bisection의 단점인 구간을 무조건 반으로 나누면서 생기는 문제점을 지적할 수 있다. 이는 근의 치우침에 따라 구간을 이롭게 설정하지 못하기 때문에 수렴속도가 현저히 느리다. 이에 반하여 Newton-Raphson의 경우는 Taylor급수 전개를 이용하여 유도되는 방법이기 때문에 오차: Ei+1 = O(Ei^(2))가 이전오차의 제곱에 비례하기 때문에 가장먼저 수렴한다 말할 수 있다.Secant Method의 경우, Newton-Raphson의 변형으로 f(x)의 도함수를 모를 때, 후진차분을 이용하여 f(x)의 도함수를 구하기 때문에 Newton-Raphson방법에 비해 수렴속도가 느리다고 말할 수 있다.#4. You should submit your source code written in C or Fortran as well.① the Bisection. ( By C )#include #include double f_x(double);double g_x(double);int main(){double x_l = 0;double x_u = 2;int i = 0;double err_d = 100;double x_r=0;double prex_r=0;printf("n");while(err_d>0.00005){x_r = (x_l+x_u)/2;i=i+1;err_d = fabs((((x_r-prex_r)/x_r))*100.0);if(i=0){err_d=100;}prex_r=x_r;printf("x_r는 %.10lf, x_l는 %.10lf,x_u는 %.10lf, i는 %d, err_d는 %.10lf 입니다n",x_r, x_l, x_u, i, err_d);*((f_x(x_r)*f_x(x_l)>0)? &x_l:&x_u) = x_r;}return 0;}double f_x(double x){double ans;ans = pow(exp(1.0),x/2)+5*x-5;return ans;}② the Newton-Raphson. ( By C )#include #include double f_x(double);double g_x(double);int main(){double x_old = 0.7;int i = 0;double err_d = 100;double x_new=0;printf("n");while(err_d>0.00005){x_new = x_old - f_x(x_old)/g_x(x_old);i=i+1;err_d = fabs((((x_new-x_old)/x_new))*100.0);printf("x_new는 %.10lf, x_old는 %.10lf, i는 %d, err_d는 %.10lf 입니다n",x_new, x_old, i, err_d);x_old=x_new;}return 0;}double f_x(double x){double ans;ans = pow(exp(1.0),x/2)+5*x-5;return ans;}double g_x(double x){double ans;ans = pow(exp(1.0),x/2)*0.5+5;return ans;}③ the Secant Methods. ( By C )#include #include double f_x(double);double g_x(double);int main(){double old_x = 0;double now_x = 2;int i = 0;double err_d = 100;double new_x=0;printf("n");while(err_d>0.00005){new_x = now_x-f_x(now_x)*(now_x-old_x)/(f_x(now_x)-f_x(old_x));i=i+1;err_d = fabs((((new_x-now_x)/new_x))*100.0);if(i=0){err_d=100;}printf("new_x는 %.10lf, now_x는 %.10lf,old_x는 %.10lf, i는 %d, err_d는 %.10lf 입니다n",new_x, now_x, old_x, i, err_d);old_x = now_x;now_x = new_x;}return 0;}double f_x(double x){double ans;ans = pow(exp(1.0),x/2)+5*x-5;return ans;}