Умножение матрицы на вектор

 

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

Кафедра вычислительной математики и информатики








КУРСОВАЯ РАБОТА

Умножение матрицы на вектор


Работу выполнил _____________________________ Е.И. Сухан

Факультет математики и компьютерных наук, группа 26В

Специальность 010200.62 Математика и компьютерные науки

Научный руководитель ________________________________ Г.Г. Кравченко









Краснодар 2013


ВВЕДЕНИЕ

- свободная среда разработки программного обеспечения для компилятора Free Pascal (часто используется сокращение FPC- свободно распространяемый компилятор языка программирования Pascal) на языке Object Pascal. Интегрированная среда разработки предоставляет возможность кроссплатформенной разработки приложений в Delphi-подобном окружении. На данный момент является единственным инструментом быстрой разработки приложений (RAD), позволяющим Delphi-программистам создавать приложения с графическим интерфейсом для Linux (и других не-Windows) систем.

Позволяет достаточно несложно переносить Delphi-программы с графическим интерфейсом в различные операционные системы: Linux, FreeBSD, Mac OS X, Microsoft Windows.

Функции:

Основан на библиотеке визуальных компонентов Lazarus Component Library (LCL). В настоящее время практически полностью поддерживает виджеты Win32, GTK1, GTK2, Carbon, Qt. В разработке находятся виджеты WinCE.

·Поддерживает преобразование проектов Delphi

·Реализован основной набор элементов управления

·Редактор форм и инспектор объектов максимально приближены к Delphi

·Интерфейс отладки (используется внешний отладчик GDB)

·Простой переход для Delphi программистов благодаря близости LCL к VCL

·Полностью юникодный (UTF-8) интерфейс и редактор и поэтому отсутствие проблем с портированием кода, содержащего национальные символы

·Мощный редактор кода, включающий систему подсказок, гипертекстовую навигацию по исходным текстам, автозавершение кода и рефакторинг

·Форматирование кода «из коробки», используя механизмы Jedi Code Format

·Поддержка двух стилей ассемблера: Intel и AT&T (поддерживаются со стороны компилятора)

·Поддержка множества типов синтаксиса Pascal: Object Pascal, Turbo Pascal, Mac Pascal, Delphi (поддерживаются со стороны компилятора)

·Имеет собственный формат управления пакетами

·Авто сборка самого себя (под новую библиотеку виджетов) нажатием одной кнопки

·Поддерживаемые для компиляции ОС: Linux, Microsoft Windows (Win32, Win64), Mac OS

Недостатки:

·Нет полной совместимости с Delphi (хотя в отличие от Delphi предоставляет возможность создавать более кроссплатформенные приложения)

·Получаемые бинарные файлы могут иметь достаточно большой размер из-за того, что включают в себя отладочную информацию для использования в отладчикe gdb (GNU Debugger). Компилятор имеет настройку для удаления отладочной информации из исполняемого файла (-Xs), но из-за ошибки в компиляторе FPC до версии 2.0.4 она работала некорректно. Для удаления отладочной информации также можно воспользоваться утилитой «strip», входящей в пакет Lazarus

·Разные кодировки строк в Windows и Lazarus (UTF-16 и UTF-8) создают трудности для Windows - пользователей, так как им придется вручную следить за преобразованием строк


ПОСТАВЛЕННАЯ ЗАДАЧА


Найти произведение матрицы A на вектор b


АЛГОРИТМ ПРОГРАММЫ


.Ввести размерность матрицы A и вектора b

.Заполнить числами матрицу A и вектор b

.Умножить матрицу A на вектор b

программный матрица вектор умножение

ОПИСАНИЕ ВХОДНЫХ И ВЫХОДНЫХ ДАННЫХ


Ввод исходных данных осуществляется с клавиатуры. Тип переменных: REAL.

Type

A = array[1..10, 1..10] of real;= array[1..10] of real;

Вывод результатов работы программы осуществляется на экран.


ИСХОДНЫЙ КОД

Unit1;

{$mode objfpc}{$H+}, Messages, Classes, SysUtils, FileUtil, Forms, Controls,, Dialogs, StdCtrls, Grids;

{ TForm1 }= class(TForm): TButton;: TButton;: TEdit;: TLabel;: TLabel;: TStringGrid;: TStringGrid;: TStringGrid;Button1Click(Sender: TObject);Button2Click(Sender: TObject);FormCreate(Sender: TObject);

{ private declarations }

{ public declarations };= array[1..10, 1..10] of real;= array[1..10] of real;: TForm1;: Matr;, y: Vct;, i, j: integer;

{$R *.lfm}

{ TForm1 }TForm1.FormCreate(Sender: TObject);:= 3;.Text := FloatToStr(n);.ColCount := n + 1;.RowCount := n + 1;.RowCount := n + 1;.RowCount := n + 1;.Cells[0,0] := 'Матрица A:';.Cells[0,0] := 'Вектор B:';.Cells[0,0] := 'Вектор Y:';i := 1 to n do.Cells[0,i] := 'i=' + IntToStr(i);.Cells[i,0] := 'j=' + IntToStr(i);;;TForm1.Button1Click(Sender: TObject);:= StrToInt(Edit1.Text);.ColCount := n + 1;.RowCount := n + 1;.RowCount := n + 1;.RowCount := n + 1;i := 1 to n do.Cells[0,i] := 'i=' + IntToStr(i);.Cells[i,0] := 'j=' + IntToStr(i);;;TForm1.Button2Click(Sender: TObject);i := 1 to n doj := 1 to n do[i,j] := StrToFloat (StringGrid1.Cells[j,i]);i := 1 to n do[i] := StrToFloat (StringGrid2.Cells[0,i]);i := 1 to n do[i] := 0;j := 1 to n do y[i] := y[i] + A[i,j] * b[j];.Cells[0,i] := FloatToStrF(y[i], fffixed,6,2);;

end;

end.


ПРИМЕРЫ


Пример №1.

Размерность матрицы A и вектора b: 2.

A(1,1) := 1; A(1,2) := 2; B(1) := 1;

A(2,1) := 3; A(2,2) := 4; B(2) := 2;

Полученный ответ:

Y(1) = 5;

Y(2) = 11;

Пример №2.

Размерность матрицы A и вектора b: 3.

A(1,1) := 1; A(1,2) := 2; A(1,3) := 3; B(1) := 5;(2,1) := 0; A(2,2) := -1; A(2,3) := 5; B(2) := 2;(3,1) := -4; A(3,2) := 3; A(3,3) := -2; B(3) := -3;

Полученный ответ:

Y(1) = 0;

Y(2) = -17;

Y(3) = -8;

Пример №3.

Размерность матрицы A и вектора b: 4.

A(1,1) := 4; A(1,2) := 2; A(1,3) := 1; A(1,4) := -1; B(1) := 2;(2,1) := 3; A(2,2) := -2; A(2,3) := 0; A(2,4) := -2; B(2) := 2;(3,1) := 0; A(3,2) := 4; A(3,3) := 5; A(3,4) := 7; B(3) := 1;(4,1) := -4; A(4,2) := 3; A(4,3) := -3; A(4,4) := 1; B(4) := -4;

Полученный ответ:

Y(1) = 17;

Y(2) = 10;

Y(3) = -23;

Y(4) = -9;



СПИСОК ЛИТЕРАТУРЫ


1.Алексеев Е.Р., Чеснокова О.В., Кучер Т.В. Самоучитель по программированию на Free Pascal и Lazarus. - ДонНТУ УНИТЕХ, 2011.

2.Алексеев Е.Р., Чеснокова О.В., Кучер Т.В. Free Pascal и Lazarus: Учебник по программированию. - ALT Linux; ДМК-пресс, 2010.

3.Мансуров К.Т. Основы программирования в среде Lazarus. - 2010.


МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образован

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ