#include <iostream>
#include "math.h"
using namespace std;
int main()
{
double h=0.01, A=-2.5/(h*h),B=-2.5/(h*h), F, P=3.14, C;
int N=1/h;
double *xi=new double [N+1];
double *vi=new double [N+1];
xi[0]=1;
vi[0]=0;
for(int i=1; i<=N; i++)
{
double x=i*h;
C=-5/(h*h)-sin(3*x);
F=sin(P*x)/2;
xi[i]=B/(C-A*xi[i-1]);
vi[i]=(A*vi[i-1]-F)/(C-A*vi[i-1]);
}
double *zi=new double [N+1];
zi[N]=2;
zi[N-1]=xi[N]*zi[N]+vi[N];
for(int i=N-2; 0<i; i--)
zi[i]=xi[i]*zi[i+1]+vi[i];
for(int i=0; i<N; i++)
{
cout <<"z["<<i<<"]="<<zi[i]<<endl;
}
return 0;
}
DCNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgIm1hdGguaCIKIAp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCmludCBtYWluKCkKewogICBkb3VibGUgaD0wLjAxLCBBPS0yLjUvKGgqaCksQj0tMi41LyhoKmgpLCBGLCBQPTMuMTQsIEM7CiAgIGludCBOPTEvaDsKIAogICBkb3VibGUgKnhpPW5ldyBkb3VibGUgW04rMV07CiAgIGRvdWJsZSAqdmk9bmV3IGRvdWJsZSBbTisxXTsKIAogICB4aVswXT0xOwogICB2aVswXT0wOwogCiAKICAgZm9yKGludCBpPTE7IGk8PU47IGkrKykKICAgewogICAgICAgZG91YmxlIHg9aSpoOwogICAgICAgQz0tNS8oaCpoKS1zaW4oMyp4KTsKICAgICAgIEY9c2luKFAqeCkvMjsKICAgICAgIHhpW2ldPUIvKEMtQSp4aVtpLTFdKTsKICAgICAgIHZpW2ldPShBKnZpW2ktMV0tRikvKEMtQSp2aVtpLTFdKTsKICAgfQogICBkb3VibGUgKnppPW5ldyBkb3VibGUgW04rMV07CiAKICAgemlbTl09MjsKICAgemlbTi0xXT14aVtOXSp6aVtOXSt2aVtOXTsKIAogICBmb3IoaW50IGk9Ti0yOyAwPGk7IGktLSkKICAgICAgIHppW2ldPXhpW2ldKnppW2krMV0rdmlbaV07CiAKICAgZm9yKGludCBpPTA7IGk8TjsgaSsrKQogICB7CiAgICAgICBjb3V0IDw8InpbIjw8aTw8Il09Ijw8emlbaV08PGVuZGw7CiAgIH0KIAogICByZXR1cm4gMDsKfQo=