Numerical Analysis HW#4-3?Algorithm of CalculationPolynomial interpolation Problem(a)[initialize]Get n,k,mGet XGet z[Iterate]y_1 = sin(z) / (1 + pow(z, 2));Do for j=k to k+mT=y[j]Do for i=k to k+mif(i!=j) then T=T*(z-x[j])/(x[j]-x[i])PofZ_1+PofZ_1+TEndoutput(PofZ_1,y(z))(b)[Iterate]b[0]=0b[5]=0Do for i=1 to 4b[i] = 6 * (d_y[i] - d_y[i ? 1])enda[0][0] = 1 a[0][1] = -1a[5][4] = -1 a[5][5] = 1Do for i=1 to 4Do for j=i+1 to I+1a[i][j] = h[i]endDo for i=1 to 4Do for j=i to Ia[i][j] = h[i]endDo for i=1 to 4Do for j=i-1 to i-1a[i][j] = h[i ? 1]enduse Gauss elimination(backward substitution)output(a,b,s)define.h#define _define_H#include // 출력 형식 조작#include // I/O연산에 필요한 기본적인 기능#include // 파일 입출력 할 수 있게 만드는 라이브러리#include #include #include using namespace std; // 이름의 충돌을 막아주고, 프로그램의 가독성을 높여주는 코드intv.h#include"define.h"class PofZ{int k, m, n;double PofZ_1;double T;double *x, *y, **a, *b, *t, *p, *sig;double **m_1;double z, y_1;double sum;int max_r(int j)//최댓값 행을 찾는 행렬{int mr;double max = abs(a[j][j]);mr = j;for (int i = j; i max)){max = abs(a[i][j]);mr = i;}}return mr;}// max_r()void pv(int mr, int j)//pivot 함수{int max = mr;for (int i = 0; i