Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Выделите форму, щелкнув на ней левой кнопкой мыши, и в свойство caption(надпись) впишите алгебра и формирование матриц.






4. На форме размещены 12 меток Label (страница Стандарт), в свойство Caption (надпись) которых вписаны значения размеры, диапазон чисел, число строк, число столбцов, макс значение, мин значение; 4 кнопки Button (страница Стандарт), с надписями целочисленная матрица, матрица из вещественных чисел, произведение матриц, конец. Во всех перечисленных компонентах свойство Font имеет размер 10.Кроме того, на форме размещены три таблицы - компоненты StringGrid1, 2, 3 (страница Дополнительно). Заданы следующие значения свойств всех компонентов StringGrid: ColCount – 5, DefaultColWidth -48, FixedCols – 0, FixedRows – 0, Font – черный, обычный, размер 8, RowCount – 5. Раскрыв свойство Options в компонентах StringGrid1, 2, установите значение подсвойства goEditingtrue, что даст возможность редактировать таблицы в StringGrid1, 2. Далее, на форме размещены 8 компонентов ввода целых чисел – CSpinEdit (страница Примеры). Во всех компонентах шрифт – обычный, размер – 8. У компонентов, расположенных под метками размеры, занесите: в свойство MaxValue – 10, MinValue – 1, Value - 3. У компонентов, расположенных под метками диапазон чисел и напротив меток макс значение занесите в свойство MaxValue – 100, MinValue – 0, Value 5,

Рис.3.6 – форма по окончании проектирования

Рис.3.7 – результат выполнения задания

с параметрами матриц по умолчанию

 

Рис.3.8 - результат выполнения задания

с измененными параметрами матриц

 

а напротив меток мин значение - занесите в свойство MaxValue – 0, MinValue – -100, Value -5. И, наконец, внизу формы размещен компонент StatusBar1 (страница Win32) – представляет собой ряд панелей, отображающих полосу состояния. Поскольку в нашем случае достаточно одной панели (для одного сообщения), то установите свойство SimplePanel = true. Свойство SimpleText представляет собой текст, который задается во время проектирования или программно (в нашем случае программно).

5. Файл LR3.cpp содержит обработчики событий - щелчков на кнопках: Button1 с надписью целочисленная матрица, Button2 с надписью матрица из вещественных чисел, Button3 с надписью произведение матриц, Button4 с надписью конец.

/---------------------------------------------------------------------------

#include < vcl.h>

#pragma hdrstop

 

#include " LR3.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma link " CSPIN"

#pragma resource " *.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1:: TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1:: Button1Click(TObject *Sender)

{

StatusBar1-> SimpleText=" ";

StringGrid3-> RowCount=0;

StringGrid3-> ColCount=0;

StringGrid3-> Cells[0][0]=" ";

StringGrid1-> RowCount=CSpinEdit1-> Value;

StringGrid1-> ColCount=CSpinEdit2-> Value;

for(int i=0; i< StringGrid1-> RowCount; i++)

for(int j=0; j< StringGrid1-> ColCount; j++)

StringGrid1-> Cells[j][i]=IntToStr(

random(CSpinEdit3-> Value-CSpinEdit4-> Value+1)

+CSpinEdit4-> Value);

}

//---------------------------------------------------------------------------

void __fastcall TForm1:: Button2Click(TObject *Sender)

{

StatusBar1-> SimpleText=" ";

StringGrid3-> RowCount=0;

StringGrid3-> ColCount=0;

StringGrid3-> Cells[0][0]=" ";

StringGrid2-> RowCount=CSpinEdit5-> Value;

StringGrid2-> ColCount=CSpinEdit6-> Value;

for(int i=0; i< StringGrid2-> RowCount; i++)

for(int j=0; j< StringGrid2-> ColCount; j++){

float z=random(CSpinEdit7-> Value-CSpinEdit8-> Value+1)

+CSpinEdit8-> Value

+(float)random(CSpinEdit7-> Value-CSpinEdit8-> Value+1)

/(CSpinEdit7-> Value-CSpinEdit8-> Value)-0.5;

if(z> CSpinEdit7-> Value)z=CSpinEdit7-> Value;

if(z< CSpinEdit8-> Value)z=CSpinEdit8-> Value;

StringGrid2-> Cells[j][i]=FloatToStrF(z, ffGeneral, 5, 5); }

}

//---------------------------------------------------------------------------

void __fastcall TForm1:: Button3Click(TObject *Sender)

{

if(StringGrid1-> ColCount! =StringGrid2-> RowCount){

StatusBar1-> SimpleText=

" Число столбцов матрицы с ЦЧ не равно числу строк матрицы с ВЧ! ";

CSpinEdit2-> SetFocus(); return; }

StringGrid3-> RowCount=CSpinEdit1-> Value;

StringGrid3-> ColCount=CSpinEdit6-> Value;

for(int i=0; i< StringGrid1-> RowCount; i++)

for(int j=0; j< StringGrid2-> ColCount; j++){

float z=0;

for(int k=0; k< StringGrid1-> ColCount; k++)

z+=StrToInt(StringGrid1-> Cells[k][i])*

StrToFloat(StringGrid2-> Cells[j][k]);

StringGrid3-> Cells[j][i]=FloatToStrF(z, ffGeneral, 5, 5); }

}

//---------------------------------------------------------------------------

void __fastcall TForm1:: Button4Click(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

6. Сохранив все, запустите приложение на выполнение с заданными во время проектирования параметрами матриц. Результат представлен на рис.3.7. Чтобы убедиться в правильном перемножении матриц, сделайте одну из матриц единичной.

7. Измените параметры матриц подобно тому, как это сделано на рис.3.8, и получите сообщение в строке состояния. Щелчком на кнопке конец перейдите из режима выполнения в режим проектирования приложения.

 

Содержание отчета

1. Задание.

2. Формулы с пояснениями.

3. Результат выполнения задания в Mathcad’ е.

4. Тест для разработки алгоритма.

5. Блок-схема алгоритма с таблицей идентификаторов.

6. Исходный код.

7. Входные и выходные данные программы.

8. Библиографический список.

 


 

Контрольные вопросы

1. Как сформировать нижнюю и верхнюю треугольные матрицы?

2. Как сформировать неособенную и особенную квадратные матрицы?

3. Как сформировать неособенную квадратную матрицу с диагональным преобладанием для случаев:

1)

2)

4. Приведите алгоритмы для вычисления норм матрицы.

5. Как определить ранг матрицы?

6. Приведите алгоритмы формирования вектора-строки и вектора-столбца.

7. Каким свойством обладает обратная матрица? Ответ подтвердите примером.

8. Как оцениваются точность и временные затраты обращения матрицы?

9. Как получить обратную матрицу?

10. Приведите алгоритм разбиения матрицы на клетки.

11. Как сформировать квазидиагональную матрицу?

12. Приведите алгоритм окаймления матрицы.

13. Приведите алгоритм формирования ленточной матрицы.

14. Как сформировать положительно определенную матрицу?

15. Как сформировать разреженную матрицу?

16. Как сформировать ортогональную матрицу?

17. Приведите алгоритм формирования вектора транспозиции.

18. Приведите примеры алгоритмов получения эквивалентных матриц.

19. Как разложить неособенную квадратную матрицу в произведение двух матриц? Каких матриц? Когда разложение будет единственно возможным?

20. Как можно разложить в произведение матриц положительно определенную матрицу?

21. Как можно разложить в произведение матриц ленточную положительно определенную матрицу?

22. Объясните обращение матриц методом окаймления.

23. Объясните обращение матриц методом Ершова.

24. Объясните обращение матриц методом Фаддеева.


 

МЕТОДЫ РЕШЕНИЙ СИСТЕМ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСКИХ УРАВНЕНИЙ (СЛАУ)

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.