Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
6
Добавлен:
18.08.2022
Размер:
2.98 Кб
Скачать
//#include <iostream>
//
//using namespace std;
//
//int main() {
//    setlocale(LC_ALL, "RUS");
//    double tmp, d;
//    cout << "Введите размер массива: ";
//    int n;
//    cin >> n;
//    double** a = new double* [n];
//
//    for (int i = 0; i < n; i++)
//        a[i] = new double[n];
//
//    cout << "Введите саму матрица\n" << endl;
//    for (int i = 0; i < n; i++) {
//        for (int j = 0; j < n; j++) {
//            cout << "Введите [" << i << "][" << j << "]: ";
//            cin >> a[i][j];
//        }
//        cout << endl;
//    }
//
//    for (int k = 0; k < n - 1; k++)
//        for (int i = k + 1; i < n; i++) {
//            tmp = -a[i][k] / a[k][k];
//
//            for (int j = 0; j < n; j++)
//                a[i][j] += a[k][j] * tmp;
//        }
//
//    cout << "\nМатрица методом Гаусса:\n\n";
//    cout.precision(2);
//    for (int i = 0; i < n; i++) {
//        for (int j = 0; j < n; j++) {
//            cout.width(8);
//            cout << fixed << a[i][j] << " ";
//        }
//        cout << "\n";
//    }
//
//    d = 1;
//    for (int i = 0; i < n; i++)
//        d *= a[i][i];
//
//    cout << fixed << "\nОпределитель матрицы: " << d << "\n";
//    for (int i = 0; i < n; i++)
//        delete[] a[i];
//
//    system("pause");
//    return 0;
//}
//
//	e = 0.000001
//	n = 4
//	sol = np.zeros(n)
//	beta = np.zeros(n)
//	z = np.zeros(n)
//	old = np.zeros(n)
//	 alpha = np.zeros((n, n))
//	 m = 1
//	variant = 25
//	 v = []
//	 a = np.zeros((n, n), dtype = float)
//	 for i in range(n) :
//		 for j in range(n) :
//		if i == j :
//		 a[i][j] = variant + i + j
//		v.append(a[i][j])
//		 for i in range(n) :
//		for j in range(n) :
//		if i != j :
//		 a[i][j] = a[i][i] / 100
//		 b = a.dot(v)
//		print("\nИсходная матрица А\n", a, sep = '\n')
//		 print("\nВектор слобец b\n", b, sep = '\n')
//		 for i in range(n) :
//		 for j in range(n) :
//		if i == j : alpha[i][j] = 0
//		 else : alpha[i, j] = -a[i][j] / a[i][i]
//		 for i in range(n) :
//		 beta[i] = b[i] / a[i][i]
//		for j in range(n) :
//		 for i in range(n) :
//		 z[j] += abs(alpha[i][j])
//		 m = z[0]
//		for i in range(n) :
//		if z[i] > m: m = z[i]
//		 if m >= 1 : print("Метод простых итераций не сходится")
//		 else :
//		 old = beta
//		 for i in range(n) :
//		 for j in range(n) :
//		sol[i] = sol[i] + alpha[i][j] * old[i]
//		 sol[i] += beta[i]
//		 while e > 0:
//	 old = sol
//	 for i in range(n) : sol[i] = 0
//	 for i in range(n) :
//		 for j in range(n) :
//		 sol[i] += alpha[i][j] * old[i]
//		 sol[i] += beta[i]
//		 if Uslovie(sol, old) :
//		 print("\nВектор x:\n", sol)
//		Break
//	def Uslovie(a, b) :
//		flag = True
//		 norma = 0
//		jin = np.zeros(n)
//		 for i in range(n) :
//		 jin[i] = a[i] - b[i]
//		 for i in range(n) :
//		norma += abs(jin[i])
//		if norma > e * (1 - m) / m: flag = False
//		 return flag
Соседние файлы в папке методы вычислений Поплавский