Решение систем линейных алгебраических уравнений методами Гаусса и Холецкого
Автор: yullya565615 • Январь 15, 2023 • Лабораторная работа • 2,778 Слов (12 Страниц) • 200 Просмотры
Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Поволжский государственный университет телекоммуникаций и информатики»
Факультет Кибербезопасности и управления
Направление
(специальность) Математическое обеспечение и администрирование информационных систем
Кафедра Управления в технических системах
Лабораторная работа №1
«Решение систем линейных алгебраических уравнений методами Гаусса и Холецкого»
Руководитель ст. преподаватель В.А. Осанов
должность инициалы фамилия
Выполнил студент гр. МОИС-01 Ю. М. Сомова
Должность инициалы фамилия
Самара 2022
Лабораторная работа №1.
Обе лабораторные работы исследуют численные методы решения систем линейных алгебраических уравнений.
Графический интерфейс содержит в себе таблицу ввода исходной матрицы 3x3
и таблицу ввода исходного вектора.
Задание на лабораторную работу 1
Решение систем линейных алгебраических уравнений
Цель работы.
Изучить алгоритмы точных методов решения систем линейных алгебраических уравнений и научиться их программировать на одном из языков программирования.
Содержание работы.
[pic 1]
[pic 2]
Метод Гаусса:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace CM1
{
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine("Решение СЛАУ методом Гаусса");
Console.WriteLine();
int RowAm = 3;
double[,] A = new double[RowAm, RowAm];
double[] B = new double[RowAm];
double Multi1, Multi2;
double[] Result = new double[RowAm];
A[0, 0] = 3.72; A[0, 1] = 3.47; A[0, 2] = 3.06; B[0] = 30.74;
A[1, 0] = 4.47; A[1, 1] = 4.10; A[1, 2] = 3.63; B[1] = 36.80;
A[2, 0] = 4.96; A[2, 1] = 4.53; A[2, 2] = 4.01; B[2] = 40.79;
Console.WriteLine("Начальный вид матрицы:");
Console.WriteLine();
for (int i = 0; i < RowAm; i++)
{
for (int j = 0; j < RowAm; j++)
{
Console.Write(A[i, j] + "\t");
}
Console.Write(B[i]);
Console.WriteLine();
}
Console.WriteLine();
Console.WriteLine("Свободные члены матрицы:");
Console.WriteLine();
for (int i = 0; i < RowAm; i++)
{
Console.WriteLine($"B[{i + 1}] = {B[i]}");
}
Console.WriteLine();
for (int k = 0; k < RowAm; k++)
{
for (int j = k + 1; j < RowAm; j++)
{
Multi1 = A[j, k] / A[k, k];
for (int i = k; i < RowAm; i++)
{
A[j, i] = A[j, i] - Multi1 * A[k, i];
}
B[j] = B[j] - Multi1 * B[k];
}
}
for (int k = RowAm - 1; k >= 0; k--)
{
Multi1 = 0;
for (int j = k; j < RowAm; j++)
{
Multi2 = A[k, j] * Result[j];
Multi1 += Multi2;
}
Result[k] = (B[k] - Multi1) / A[k, k];
}
Console.WriteLine("Конечный вид матрицы:");
Console.WriteLine();
for (int i = 0; i < RowAm; i++)
...