Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void integrate(double function[], double integratedFunction[], int size = 101)
- {
- double integralMatrix[size][size+1];
- for(int i = 0; i < size+1; i++)
- for(int j = 0; j < size; j++)
- integralMatrix[j][i] = 0;
- for(int i = 0; i < size; i++)
- integralMatrix[i][i+1] = (double)1/(i+1);
- for(int i = 0; i < size+1; i++)
- for(int j = 0; j < size; j++)
- integratedFunction[i] += function[j] * integralMatrix[j][i];
- }
- double integrateFrom0to1(double functionn[])
- {
- double integratedFunction[102];
- for(int i = 0; i < 102; i++)
- integratedFunction[i] = 0;
- integrate(functionn, integratedFunction);
- // cout << "I AM INTEGRATING\n";
- // cout << functionn[0] << " " << functionn[1] << " " << functionn[2] << " \n\n";
- // for(int i=0;i<102;i++)
- // cout << integratedFunction[i] << " ";
- // cout<<endl;
- double answer = 0;
- for(int i = 0; i < 102; i++)
- answer += integratedFunction[i];
- // cout << endl << answer << "integralas\n";
- return answer;
- }
- void multiply(double function1[], double function2[], double multipliedFunction[])
- {
- double answer[102];
- for(int i = 0; i < 102; i++)
- answer[i] = 0;
- for(int i = 0; i < 102; i++)
- for(int j = 0; j < 102; j++)
- {
- answer[i+j] += function1[i] * function2[j];
- }
- // cout << "daugyba \n";
- for(int i = 0; i < 102; i++)
- {
- multipliedFunction[i] = answer[i];
- // cout << multipliedFunction[i] << " ";
- }
- // cout<<endl;
- }
- void subtraction(double function1[],double function2[],double (&subFunction)[102])
- {
- for(int i = 0; i < 102; i++)
- {
- subFunction[i] = function1[i] - function2[i];
- }
- }
- int main()
- {
- // double functionn[101], functionn2[101], answer[101];
- // for(int i = 0; i < 101; i++)
- // {
- // answer[i] = 0;
- // functionn[i] = 0;
- // functionn2[i] = 0;
- // }
- // functionn2[1] = 2;//2x
- // functionn[0] = 5;
- // functionn[2] = 3;//3x^2+5 {5,0,3,0,0,0,...,0}->{0,5,0,3/3,0,0,...,0}
- // subtraction(functionn2, functionn, answer);//2x-(3x^2+5)=-3x^2+2x-5 {-5, 2, -3, 0, ... , 0}
- // //multiply(functionn, functionn2, answer);//2x*(3x^2+5) = 6x^3 + 10x {0, 10, 0, 6, 0...0}
- // cout << answer[2];
- double v[101][102],v1[101][102];
- for(int i = 0; i < 101; i++)//1, x, x^2, ..., x^100
- for(int j = 0; j < 101; j++)//1, x, x^2, ..., x^100
- {
- v[i][j] = 0;
- v1[i][j] = 0;
- }
- for(int i = 0; i < 101; i++)
- {
- v[i][i] = 1;
- v1[i][i] = 1;
- }
- double temp[102], temp2[102];
- double skaitiklis, vardiklis;
- // for(int i = 0; i < 102; i++)
- // temp2[i] = 0;
- //
- // //u0 = v0 v[0] daryt nk nereik
- //
- // //u1
- //
- // multiply(v[0],v[1], temp);
- // skaitiklis = integrateFrom0to1(temp);
- // multiply(v[0],v[0],temp);
- // vardiklis = integrateFrom0to1(temp);
- // temp2[0] = skaitiklis/vardiklis;
- // multiply(v[0],temp2,temp2);
- // subtraction(v[1],temp2,v[1]);
- // for(int i = 0; i < 102; i++)
- // temp2[i] = 0;
- // //u2
- //
- // multiply(v1[2],v[0], temp);
- // skaitiklis = integrateFrom0to1(temp);
- // multiply(v[0],v[0],temp);
- // vardiklis = integrateFrom0to1(temp);
- // temp2[0] = skaitiklis/vardiklis;
- // multiply(v[0],temp2,temp2);
- // subtraction(v[2],temp2,v[2]);
- // for(int i = 0; i < 102; i++)
- // temp2[i] = 0;
- //
- //
- // multiply(v1[2],v[1], temp);
- // skaitiklis = integrateFrom0to1(temp);
- // multiply(v[1],v[1],temp);
- // vardiklis = integrateFrom0to1(temp);
- // temp2[0] = skaitiklis/vardiklis;
- // multiply(v[1],temp2,temp2);
- // subtraction(v[2],temp2,v[2]);
- //
- // cout << v[2][0] << " " << v[2][1]<< " " << v[2][2]<< " " << v[2][3]<< " " << v[2][4] << endl;
- //
- // for(int i = 0; i < 102; i++)
- // temp2[i] = 0;
- // //u3
- //
- // multiply(v1[3],v[0], temp);
- // skaitiklis = integrateFrom0to1(temp);
- // vardiklis = integrateFrom0to1(v[0]);
- // temp2[0] = skaitiklis/vardiklis;
- // subtraction(v[3],temp2,v[3]);
- //
- // cout << "aaaaaa";
- // cout << v[3][0] << " " << v[3][1]<< " " << v[3][2]<< " " << v[3][3]<< " " << v[3][4];
- //
- //
- // multiply(v1[3],v[1], temp);
- // skaitiklis = integrateFrom0to1(temp);
- // multiply(v[1],v[1],temp);
- // vardiklis = integrateFrom0to1(temp);
- // temp2[0] = skaitiklis/vardiklis;
- // multiply(v[1],temp2,temp2);
- // subtraction(v[3],temp2,v[3]);
- // for(int i = 0; i < 102; i++)
- // temp2[i] = 0;
- //
- // multiply(v1[3],v[2], temp);
- // skaitiklis = integrateFrom0to1(temp);
- // multiply(v[2],v[2],temp);
- // vardiklis = integrateFrom0to1(temp);
- // temp2[0] = skaitiklis/vardiklis;
- // multiply(v[2],temp2,temp2);
- // subtraction(v[3],temp2,v[3]);
- // for(int i = 0; i < 102; i++)
- // temp2[i] = 0;
- //
- // cout << v[3][0] << " " << v[3][1]<< " " << v[3][2]<< " " << v[3][3]<< " " << v[3][4];
- //
- // cout << "penis\n";
- for(int i = 0; i <94; i++)
- {
- for(int j=0; j<i; j++)
- {
- multiply(v1[i],v[j], temp);
- skaitiklis = integrateFrom0to1(temp);
- multiply(v[j],v[j],temp);
- vardiklis = integrateFrom0to1(temp);
- temp2[0] = skaitiklis/vardiklis;
- multiply(v[j],temp2,temp2);
- subtraction(v[i],temp2,v[i]);
- for(int k = 0; k < 102; k++)
- temp2[k] = 0;
- }
- cout << v[i][0] << " "<< v[i][1] << " "<< v[i][2] << " "<< v[i][3] << " "<< v[i][4] << " "<< v[i][5] << "\n";
- }
- //cout << integrateFrom0to1(functionn);
- // double integratedFunction[101];
- // for(int i = 0; i < 101; i++)
- // integratedFunction[i] = 0;
- // integrate(functionn, integratedFunction);
- //
- // for(int i = 0; i < 100; i ++)
- // if(integratedFunction[i] != 0)
- // cout << integratedFunction[i] << "x^" << i << "+";
- // cout << '\b';
- // cout << ' ';
- //
- //
- // double functions[100][100];
- // double integratedFunctions[100][101];
- // for(int i = 0; i < 100; i++)
- // {
- // functions[i][i] = i;
- // for(int j = 0; j < 101; j++)
- // integratedFunctions[i][j] = 0;
- // }
- //
- // for(int i = 0; i < 101; i++)
- // {
- // for(int j = 0; j < 100; j++)
- // if(integratedFunctions[j][i] != 0)
- // cout << integratedFunctions[j][i] << "x" << "^" << i << "+";
- // cout << '\b';
- // cout << " ";
- // cout << endl;
- // }
- // return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement