Розв'язування системи лінійних алгебраїчних рівнянь методом Гауса
Мета роботи: навчитись розв'язувати систему лінійних алгебраїчних рівнянь методом Гауса.
Нехай задана система п лінійних рівнянь із п невідомими, яка в матричному записі має вигляд
- (1) - шуканий вектор - розв'язок із відповідними компонентами.
Метод Гауса полягає в зведенні квадратної системи (1) до трикутного вигляду з використанням алгоритму послідовного виключення невідомих.
Алгоритм методу Гауса складається з двох етапів:
- 1. Триангуляція матриці 2. Обчислення розв'язку
Наступну СЛАР розв'язати методом Гауса
Текст програми
Лінійний алгебраїчний рівняння гаус
//---------------------------------------------------------------------------
#include <vcl. h>
#pragma hdrstop
#include "SLAU. h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "CSPIN"
#pragma link "XPManifest"
#pragma resource "*.dfm"
TForm1 *Form1;
Int k_z=4;
Float A_mas[100][100]=[1],
A[100][100]=[1],
X_mas[100]={0};
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
Void __fastcall TForm1::StGrPaint ()
{
Int i, j;
K_z=StrToInt(CSpinEdit1->Text);
StringGrid1->RowCount=k_z;
StringGrid1->ColCount=k_z;
StringGrid3->RowCount=k_z;
For (i=0; i<k_z; i++)
{
For (j=0; j<k_z; j++)
{
StringGrid1->Cells[j][i]=FloatToStrF(A[i][j],ffFixed,6,2);
}
StringGrid2->Cells[0][i]=FloatToStrF(x_mas[i],ffFixed,6,2);
StringGrid3->Cells[0][i]=FloatToStrF(A[i][k_z],ffFixed,6,2);
}
}
//---------------------------------------------------------------------------
Void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
Int ARow, TRect &;Rect, TGridDrawState State)
{
Int H;
AnsiString str;
PChar s;
Cardinal Flag;
((TStringGrid*)Sender)->Canvas->FillRect(Rect);
Str = ((TStringGrid*)Sender)->Cells[ACol][ARow];
S = str. c_str();
Flag = DT_CENTER;
Flag = Flag | DT_WORDBREAK;
Rect. Left+=3;
Rect. Right+=3;
H = DrawTextA(((TStringGrid*)Sender)->Canvas->Handle, s,strlen(s),&;Rect, Flag);
If (H > ((TStringGrid*)Sender)->RowHeights[ARow])
((TStringGrid*)Sender)->RowHeights[ARow] = H;
}
//---------------------------------------------------------------------------
Void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, int ACol,
Int ARow, bool &;CanSelect)
{
StGrPaint ();
}
//---------------------------------------------------------------------------
Void __fastcall TForm1::FormCreate(TObject *Sender)
{
StringGrid2->RowCount=-1;
StringGrid2->ColCount=-1;
StGrPaint ();
}
//---------------------------------------------------------------------------
Void __fastcall TForm1::StringGrid1KeyPress(TObject *Sender, char &;Key)
{
If ((Key < '0' || Key > '9') &;&; Key!= 8 &;&; Key!= ',' &;&; Key!= '-') Key= 0;
}
//---------------------------------------------------------------------------
Void __fastcall TForm1::StringGrid1SetEditText(TObject *Sender, int ACol,
Int ARow, const AnsiString Value)
{
If(Value!="")
{
AnsiString AS = Value;
If (AS. Pos(",")) AS. Delete(AS. Pos(","),1);
If (AS. Pos("-")==1) AS. Delete(AS. Pos("-"),1);
If ((AS. Pos(",")==0)&;&;(AS. Pos("-")==0)&;&;(Value!="-")&;&;(Sender==StringGrid1)) A[ARow][ACol]=StrToFloat(Value);
If ((AS. Pos(",")==0)&;&;(AS. Pos("-")==0)&;&;(Value!="-")&;&;(Sender==StringGrid3)) A[ARow][k_z]=StrToFloat(Value);
}
}
//---------------------------------------------------------------------------
Void __fastcall TForm1::Button1Click(TObject *Sender)
{
Int k, i,j;
StringGrid2->RowCount=k_z;
For (i=0; i<k_z; i++)
For (j=0; j<=k_z; j++)
A_mas[i][j]=A[i][j];
For(k=0; k<k_z-1; k++)
For(i=k+1; i<k_z; i++)
For(j=k_z; j>=k; j--)
A_mas[i][j]=A_mas[i][j]*A_mas[k][k]-A_mas[k][j]*A_mas[i][k];
For(i=k_z-1; i>=0; i--)
{
Float sum=0;
For(j=k_z-1; j>i; j--)
Sum += A_mas[i][j]*x_mas[j];
X_mas[i]=(A_mas[i][k_z]-sum)/A_mas[i][i];
}
StGrPaint ();
}
//---------------------------------------------------------------------------
Void __fastcall TForm1::CSpinEdit1Change(TObject *Sender)
{
StGrPaint ();
}
//---------------------------------------------------------------------------
Результат виконання програми
Висновок
Похожие статьи
-
Блок-схема алгоритма - Основные типы графических редакторов
РЕАЛИЗАЦИЯ Для реализации приложения был использован языка программирования C++. Код получившейся программы представлен ниже: Код в файле Unit1.h:...
-
Проверка программы на примере задачи. Для работы с программой запускаем файл TabSimMethod. exe рис.1. Рис.1 Файл TabSimMethod. exe Запустится программа...
-
Visual component library graphics Цель работы: изучение графических возможностей стандартной библиотеки визуальных компонентов VCL, функций и процедур...
-
Литература, Текст программы - Разработка визуального редактора
1. Методические указания по выполнению курсовых и дипломных проектов. Специальность: 2-40 02 01 "Программное обеспечение информационных технологий"; 2....
-
Описание разработанных модулей В разработанной программе имеется 5 модулей. Главный модуль "Program. cs" предназначен для запуска главного окна...
-
Выходные данные просматриваются во входной форме. Выходится отчет "Карточка ребенка" или общая статистика дошкольного учреждения. Методы В разработанном...
-
Прямое использование предсказания позволяет воспроизводить звук, но с плохим качеством. Поэтому этот метод имеет много различных разновидностей,...
-
Шестой метод - построение суффиксных деревьев. Среди большого количества методов анализа текста метод аннотированного суффиксного дерева выделяется тем,...
-
Обоснование выбранного метода При дизайне системы согласно требованиям или при оптимизации существующей необходимо ввести модель, позволяющую не только...
-
В ходе разработки программы было использовано программное обеспечение Microsoft® Windows® "Подключение к удаленному рабочему столу" для извлечения...
-
Для реализации поставленной задачи методом конечных элементов будут использованы следующие программные обеспечения (ПО): - MATLAB - ПО и одноименный язык...
-
Теоретические аспекты поставленной задачи В этой части проекта будут объяснены этапы применения МКЭ для плоской фермы. В первой главе было рассмотрено...
-
Наиболее распространенной реализацией МКЭ является метод прямой жесткости, применяемый для компьютерного моделирования сложных структур. Это матричный...
-
Ферменная конструкция представляет собой стержневую систему. При замене жестких узлов шарнирами, она остается геометрически неизменяемой и удовлетворяет...
-
Метод конечных элементов является численным методом для нахождения приближенных решений физических задач. В основе этого метода лежит разделение...
-
Метод конечных элементов (МКЭ) жесткости возник в аэрокосмической отрасли. Исследователи рассматривали различные подходы к анализу сложных частей...
-
Использование программы StudyProgram для усвоения учебного материала по кодированию информации методом четности и методом Хэмминга Программа StudyProgram...
-
Трассировка лучей и метод фотонных карт - 3D моделирование
Пожалуй, один из самых распространенных методов для построения реалистических изображений является трассировка лучей. При построении изображения луч...
-
ВВЕДЕНИЕ - Методы доступа к передающей среде в ЛВС
На сегодняшний день более 80 % всех компьютеров мира объединено в различные информационно-вычислительные сети. Появление компьютерных сетей было вызвано...
-
Метод парольной защиты - Защита информации
Законность запроса пользователя определяется по паролю, представляющему собой, как правило, строку знаков. Метод паролей считается достаточно слабым, так...
-
Основные требования к комплексной системе защиты информ: Разработка на основе положений и требований существующих законов, стандартов и нормативно -...
-
Задание 1 Разработать программу, которая на отрезке [-1,1] по формуле функции f(x) строит интерполяционную таблицу размерности n +1 с неравномерным шагом...
-
При рассмотрении вопросов защиты АС целесообразно использовать четырехуровневую градацию доступа к хранимой, обрабатываемой и защищаемой АС информации....
-
Онлайн исследования в социологии: новые методы анализа данных - Распространение новостной информации
На сегодняшний день анализ социальных сетей и медиа, Интернет-сообществ, пользователей в целом используется в основном в маркетинге. Компания может...
-
Они во многом объединяют или дополняют два вышеперечисленных метода :автоматический и неавтоматический. Это контент-анализ, Интернет-опросы и...
-
Для построения эффективной системы мониторинга необходимо определить объекты наблюдения, отслеживаемые показатели и сроки их представления, программные...
-
Метод определения погрешности - Поверка и калибровка информационно измерительных систем
Метод определения погрешности аналоговых и цифро-аналоговых ИК для случая пренебрежимо малой случайной составляющей погрешности Если проверяемая точка...
-
Комплектной называют поверку, при которой определяются MX СИ, присущие ему как единому целому. Поэлементной называют поверку, при которой значения MX СИ...
-
Теоретическая основа линейного программирования, Симплекс метод - Линейное программирование
Симплекс метод Симплекс метод - метод линейного программирования, который реализует рациональный перебор базисных допустимых решений, в виде конечного...
-
Автоматизированные методы - Распространение новостной информации
Мониторинг социальных сетей На данный момент используется преимущественно в сфере маркетинга и PR, однако, по прогнозам специалистов, этот метод в скором...
-
Вступ, Етапи розв'язання статистичної задачі - Статистичне оброблення медичної інформації
Статистичний програма excel програма Мета: Ознайомити студентів з прикладними програмами Microsoft Office, з медичними документами, їх створенням та...
-
Методы внедрения системы. - Примение информационных технологий в управлении
Компания, собирающаяся внедрить компьютерную систему управления, как правило, дает следующую установку: система должна начать действовать как можно...
-
При проектировании упражнения встал вопрос о его реализации. Было необходимо найти такой метод, который не только соответствовал основным требованиям...
-
На сегодняшний день доступно достаточно много различных теоретических источников о разработке KPI, однако сложно признать какой-либо метод универсальным...
-
Принцип метода линейного предсказания - Вокодеры с линейным предсказанием
Вокодер информация кодирование синтезатор В вокодерах с линейным предсказанием при анализе речевого сигнала в передающем устройстве определяются...
-
Для решения трехмерной задачи упругости с помощью метода конечных элементов были заданы следующие основные параметры: [1]. Количество секций. [2]....
-
Для решения поставленных задач используются следующие методы: 1) Иерархия пользователей будет определена при помощи построения UML диаграммы, для...
-
Рассмотрим особенности программирования под Android. Класс Activity - самый важный класс, из которого строится приложение Android. Этот класс...
-
Кроме сетевых систем обнаружения имеются и другие методы выявления попыток вторжения. Один из них - искать признаки вторжения в самой системе. Если...
-
Конечно-элементный анализ широко применяется при решении задач механики деформируемого твердого тела, теплообмена, гидро - и газодинамики, электро - и...
Розв'язування системи лінійних алгебраїчних рівнянь методом Гауса