Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using std::vector;
- using std::cout;
- using std::endl;
- // Решаем уравнение Ax = F
- // Где A состоит из трех диагональных лент
- // Три диагональных ленты
- vector<double> A = { 0, -1, -1, -1 };
- vector<double> C = { 2, 2, 2, 2 };
- vector<double> B = { -1, -1, -1, 0 };
- vector<double> F = { 0.08, 0.08, 0.08, 0.08};
- vector<double> alpha(5, 0);
- vector<double> beta(5, 0);
- void main() {
- alpha[1] = -B[0] / C[0];
- beta[1] = F[0] / C[0];
- for (int i = 1; i < A.size(); i++) {
- alpha[i + 1] = -B[i] / (A[i] * alpha[i] + C[i]);
- beta[i + 1] = (F[i] - A[i] * beta[i]) / (A[i] * alpha[i] + C[i]);
- }
- int n = A.size() - 1;
- vector<double> x(6, 0);
- x[n] = (F[n] - A[n] * beta[n]) / (C[n] + A[n] * alpha[n]);
- for (int i = n; i > 0; i--) {
- x[i - 1] = alpha[i] * x[i] + beta[i];
- }
- for (int i = 0; i <= n; i++) {
- cout << x[i] << endl;
- }
- system("pause");
- }
Advertisement