Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <iomanip>
- #include <cmath>
- using namespace std;
- int main() {
- int const N = 4;
- float xI[5] = { 0.1, 0.5, 0.9, 1.3, 1.7 };
- float yI[5] = { -2.3026, -0.69315, -0.10536, 0.26236, 0.53063 };
- float hI[N + 1], lI[N + 1], dT[N + 1], lD[N + 1], cI[N + 1], bI[N + 1], dI[N + 1] = { 0 };
- float xZ = 0.8;
- float p=0.9;
- cI[0] = 0.0;
- cI[N] = 0.0;
- for (int i = 1; i <= N; i++) {
- hI[i] = xI[i] - xI[i - 1];
- lI[i] = (yI[i] - yI[i - 1]) / hI[i];
- }
- dT[1] = (-hI[2]) / (2*(hI[1] + hI[2]));
- lD[1] = (3 * (lI[2] - lI[1])) / (2 * (hI[1] + hI[2]));
- for (int i = 3; i <= N; i++) {
- dT[i - 1] = (-hI[i]) / (2 * hI[i - 1] + 2 * hI[i] + hI[i - 1] * dT[i - 2]);
- lD[i - 1] = (3 * lI[i] - 3 * lI[i - 1] - hI[i - 1] * lD[i - 2]) / (2 * hI[i - 1] + 2 * hI[i] + hI[i - 1] * dT[i - 2]);
- }
- for (int i = N; i >= 2; i--) {
- cI[i - 1] = dT[i - 1] * cI[i] + lD[i - 1];
- }
- for (int i = 1; i <= N; i++) {
- bI[i] = lI[i] + ((2 * cI[i] * hI[i] + hI[i] * cI[i - 1]) / 3);
- dI[i] = (cI[i] - cI[i - 1]) / (3 * hI[i]);
- }
- cout.setf(ios::fixed);
- for (int k = 1; k <= N; k++) {
- cout << "a -->" << setw(10) << yI[k-1] << " b -->" << setw(10) << bI[k] << " c -->" << setw(10) << cI[k] << " d -->" << setw(10) << dI[k] << endl;
- }
- // Fk(x) = ak + bk(x-xk) + ck(x-xk)2 + dk(x-xk)3
- float Fx[N + 1] = { 0.0 };
- float FxF = 0.0;
- int j= ; //j= номер того отрезка которому принадлежит x* (НАДО УДАЛИТЬ ЭТОТ КОММЕНТ ПЕРЕД СДАЧЕЙ ПРЕПОДУ)
- Fx[j] = yI[j] + bI[j]*(xZ - xI[j]) + cI[j]*pow((xZ - xI[j]), 2) + dI[j] * pow((xZ - xI[2]), 3);
- FxF+=Fx[j];
- cout<<"summa = "<< FxF<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement