Advertisement
sashachca

Untitled

Nov 24th, 2017
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <cmath>
  4. using namespace std;
  5.  
  6. int main() {
  7.  
  8. int const N = 4;
  9.  
  10. float xI[5] = { 0.1, 0.5, 0.9, 1.3, 1.7 };
  11. float yI[5] = { -2.3026, -0.69315, -0.10536, 0.26236, 0.53063 };
  12. float hI[N + 1], lI[N + 1], dT[N + 1], lD[N + 1], cI[N + 1], bI[N + 1], dI[N + 1] = { 0 };
  13. float xZ = 0.8;
  14. float p=0.9;
  15.  
  16. cI[0] = 0.0;
  17. cI[N] = 0.0;
  18.  
  19. for (int i = 1; i <= N; i++) {
  20. hI[i] = xI[i] - xI[i - 1];
  21. lI[i] = (yI[i] - yI[i - 1]) / hI[i];
  22. }
  23.  
  24. dT[1] = (-hI[2]) / (2*(hI[1] + hI[2]));
  25. lD[1] = (3 * (lI[2] - lI[1])) / (2 * (hI[1] + hI[2]));
  26.  
  27. for (int i = 3; i <= N; i++) {
  28. dT[i - 1] = (-hI[i]) / (2 * hI[i - 1] + 2 * hI[i] + hI[i - 1] * dT[i - 2]);
  29. 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]);
  30. }
  31.  
  32. for (int i = N; i >= 2; i--) {
  33. cI[i - 1] = dT[i - 1] * cI[i] + lD[i - 1];
  34. }
  35.  
  36. for (int i = 1; i <= N; i++) {
  37. bI[i] = lI[i] + ((2 * cI[i] * hI[i] + hI[i] * cI[i - 1]) / 3);
  38. dI[i] = (cI[i] - cI[i - 1]) / (3 * hI[i]);
  39. }
  40. cout.setf(ios::fixed);
  41. for (int k = 1; k <= N; k++) {
  42.  
  43. cout << "a -->" << setw(10) << yI[k-1] << " b -->" << setw(10) << bI[k] << " c -->" << setw(10) << cI[k] << " d -->" << setw(10) << dI[k] << endl;
  44. }
  45.  
  46. // Fk(x) = ak + bk(x-xk) + ck(x-xk)2 + dk(x-xk)3
  47.  
  48. float Fx[N + 1] = { 0.0 };
  49. float FxF = 0.0;
  50. int j= ; //j= номер того отрезка которому принадлежит x* (НАДО УДАЛИТЬ ЭТОТ КОММЕНТ ПЕРЕД СДАЧЕЙ ПРЕПОДУ)
  51.  
  52. Fx[j] = yI[j] + bI[j]*(xZ - xI[j]) + cI[j]*pow((xZ - xI[j]), 2) + dI[j] * pow((xZ - xI[2]), 3);
  53. FxF+=Fx[j];
  54. cout<<"summa = "<< FxF<<endl;
  55.  
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement