Разработка программного продукта для решения балансовой модели
Продуктивность модели Леонтьева. Построение неотрицательного решения в модели Леонтьева методом простой итерации. Обоснование программного обеспечения. Разработка алгоритма решения балансовой модели методом итерации. Примеры использования программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 26.07.2018 |
Размер файла | 1,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
ПРИЛОЖЕНИЕ
Листинг программы «ВМ»
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
Open1: TMenuItem;
Save1: TMenuItem;
Exit1: TMenuItem;
Tascs: TMenuItem;
Zad1: TMenuItem;
Solve: TMenuItem;
View1: TMenuItem;
ClSolv: TMenuItem;
SaveSolv: TMenuItem;
Memo1: TMemo;
FontDialog1: TFontDialog;
procedure Open1Click(Sender: TObject);
procedure Save1Click(Sender: TObject);
procedure Zad1Click(Sender: TObject);
procedure View1Click(Sender: TObject);
procedure ClSolvClick(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure Font1Click(Sender: TObject);
procedure OpenHelp1Click(Sender: TObject);
procedure CloseHelp1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Const
nn = 50;
Type
Mat = array[0..nn,0..nn] of extended;
Vek = Array[0..nn] of Extended;
Var
F1, F2: TextFile;
Fname1, Fname2 : String;
Function UmMatVek(a: mat; x : vek; n: integer):vek;
var d : vek;
c : extended ;
i, j : integer;
begin
For i := 1 to n do
begin
c := 0.0;
For j := 1 To n do
c := c + a[i,j]*x[j];
d[i] := c;
end;
Result := d;
end;
Function SumVek(a,b : vek; n : integer):vek;
var i : Integer;
d : vek;
begin
for i := 1 to n do
d[i] := a[i]+ b[i];
Result := D;
end;
procedure TForm1.Open1Click(Sender: TObject);
begin
Memo1.Lines.Clear;
Memo1.Lines.LoadFromFile('Task.txt');
Memo1.Visible := True;
end;
procedure TForm1.Save1Click(Sender: TObject);
begin
Memo1.Lines.SaveToFile('Task.txt');
Memo1.Lines.Clear;
Memo1.Visible := False;
end;
procedure TForm1.Zad1Click(Sender: TObject);
Label 1;
Var n : integer;
a : mat;
x, b, y : vek;
i, j : integer;
eps: extended;
begin
Fname1 := 'Task.txt';
AssignFile(F1,Fname1);
Read(F1,x[j]);
Readln(F1,x[n]);
Readln(f1,Eps);
CloseFile(f1);
Fname2 := 'Solve.txt';
AssignFile(f2,Fname2);
Rewrite(F2);
Writeln(f2,'Решение модели Леонтьева вида:');
Writeln(f2,' X = AX + B ');
Writeln(f2,' методом итераций. ');
Writeln(f2,'Размер задачи N = '+ IntTostr(n));
Writeln(f2,'Матрица A : ');
For i := 1 to n do
Begin
For j := 1 to n-1 do
Write(F2,FloatTostr(A[i,j])+' ');
Writeln(F2,FloatTostr(A[i,n]));
end;
Writeln(f2,'Вектор В : ');
For j := 1 to n-1 do
Write(F2,FloatTostr(b[j])+' ');
Writeln(F2,FloatTostr(b[n]))
end; Writeln(f2,' Ответ : ');
For i := 1 to n-1 do
Write(f2,FloatTostr(y[i])+' ');
Writeln(f2,floatTostr(y[n]));
CloseFile(f2);
ShowMessage('Решение задачи завершено!');
end;
procedure TForm1.View1Click(Sender: TObject);
begin
Memo1.Lines.Clear;
Memo1.Lines.LoadFromFile('Solve.txt');
Memo1.Visible := True;
end;
procedure TForm1.ClSolvClick(Sender: TObject);
begin
Memo1.Lines.SaveToFile('Solve.txt');
Memo1.Lines.Clear;
Memo1.Visible := False;
end;
procedure TForm1.Exit1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Font1Click(Sender: TObject);
begin
If Memo1.Visible then
if FontDialog1.Execute Then
Memo1.Font := FontDialog1.Font;
end;
procedure TForm1.OpenHelp1Click(Sender: TObject);
begin
Memo1.Lines.Clear;
Memo1.Lines.LoadFromFile('Help.txt');
Memo1.visible := True;
end;
procedure TForm1.CloseHelp1Click(Sender: TObject);
begin
Memo1.Lines.SaveToFile('Help.txt');
Memo1.Lines.Clear;
Memo1.Visible := False;
end;
end.
Листинг программы «ВМR»
Unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
Open1: TMenuItem;
Save1: TMenuItem;
Exit1: TMenuItem;
Tascs: TMenuItem;
Zad1: TMenuItem;
Solve: TMenuItem;
View1: TMenuItem;
ClSolv: TMenuItem;
SaveSolv: TMenuItem;
Memo1: TMemo;
FontDialog1: TFontDialog;
procedure Open1Click(Sender: TObject);
procedure Save1Click(Sender: TObject);
procedure Zad1Click(Sender: TObject);
procedure View1Click(Sender: TObject);
procedure ClSolvClick(Sender: TObject);
procedure Exit1Click(Sender: TObject);
procedure Font1Click(Sender: TObject);
procedure OpenHelp1Click(Sender: TObject);
procedure CloseHelp1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Const
n = 50;
Type
Mat = array[0..n,0..n] of extended;
Vek = Array[0..n] of Extended;
Var
F1, F2: TextFile;
Fname1, Fname2 : String;
Procedure TForm1.Open1Click(Sender: TObject);
begin
Memo1.Lines.Clear;
Memo1.Lines.LoadFromFile('Task.txt');
Memo1.Visible := True;
end;
procedure TForm1.Save1Click(Sender: TObject);
begin
Memo1.Lines.SaveToFile('Task.txt');
Memo1.Lines.Clear;
Memo1.Visible := False;
end;
procedure TForm1.View1Click(Sender: TObject);
begin
Memo1.Lines.Clear;
Memo1.Lines.LoadFromFile('Solve.txt');
Memo1.Visible := True;
end;
procedure TForm1.ClSolvClick(Sender: TObject);
begin
Memo1.Lines.SaveToFile('Solve.txt');
Memo1.Lines.Clear;
Memo1.Visible := False;
end;
procedure TForm1.Exit1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Font1Click(Sender: TObject);
begin
If Memo1.Visible then
if FontDialog1.Execute Then
Memo1.Font := FontDialog1.Font;
end;
procedure TForm1.OpenHelp1Click(Sender: TObject);
begin
Memo1.Lines.Clear;
Memo1.Lines.LoadFromFile('Help.txt');
Memo1.visible := True;
end;
procedure TForm1.CloseHelp1Click(Sender: TObject);
begin
Memo1.Lines.SaveToFile('Help.txt');
Memo1.Lines.Clear;
Memo1.Visible := False;
end;
*****
procedure TForm1.Zad1Click(Sender: TObject);
Label 1;
const mm=1000;
Var
a , aa, cc, ed: mat;
f,x: vek;
i,j,k,n:integer;
alf, ss, s, bb: extended;
result: boolean;
begin
Fname1 := 'Task.txt';
AssignFile(F1,Fname1);
Reset(f1);
Readln(F1,n);
Readln(F1,alf);
For i := 1 to n do
begin
For j := 1 to n-1 do
//begin
Read(f1, A[i,j]);
Readln(f1,A[i,n]);
//end;
end;
For J := 1 to n-1 do
Read(F1,f[j]);
Readln(F1,f[n]);
CloseFile(f1);
Fname2 := 'Solve.txt';
AssignFile(f2,Fname2);
Rewrite(F2);
Writeln(f2,'Решение системы линейных уравнений модели Леонтьева');
Writeln(f2,' методом регуляризации. ');
Writeln(f2,'Размер задачи N = '+ IntTostr(n));
Writeln(f2,'Значение альфа = '+ FloatTostr(alf));
****
Writeln(f2,'Матрица transponir : ');
For i := 1 to n do
begin
For j := 1 to n-1 do
Write(F2,FloatTostr(aa[i,j])+' ');
Writeln(F2,FloatTostr(aa[i,n]));
end; ;
For k :=1 to n do
begin
******
writeln(f2,'Ответ:');
For i:=1 to n-1 do
write(f2,floattostr(x[i])+' ');
writeln(f2,floattostr(x[n]));
closefile(f2);
end;
end.
Размещено на Allbest.ru
Подобные документы
Изучение способов решения линейных и квадратных уравнений методом простой итерации: доказательство теоремы о сходимости и геометрическая интерпретация. Анализ математического решения задачи, ее функциональной модели, блок-схемы и программной реализации.
реферат [411,5 K], добавлен 25.01.2010Методы решения нелинейных уравнений: прямые и итерационные. Методы решения трансцендентных, алгебраических уравнений. Метод деления отрезка пополам, Ньютона, простой итерации. Поиск корня уравнения методом простой итерации с помощью электронных таблиц.
контрольная работа [2,4 M], добавлен 16.12.2011Преобразование матрицы системы линейных алгебраических уравнений (СЛАУ) с помощью алгоритма Гаусса. Решение задачи методом простой итерации. Создание блок-схемы и текста программы для решения СЛАУ, реализованной на языке программирования Turbo Pascal.
курсовая работа [1,2 M], добавлен 15.06.2013Использование повторяющегося процесса. Нахождение решения за определенное количество шагов. Применение метода хорд и метода простой итерации. Методы нахождения приближенного корня уравнения и их применение. Построение последовательного приближения.
курсовая работа [849,1 K], добавлен 15.06.2013Изучение численных методов решения нелинейных уравнений, используемых в прикладных задачах. Нахождение корня уравнения методом простой итерации и методом касательных (на примере уравнения). Отделение корней графически. Программная реализация, алгоритм.
курсовая работа [1,7 M], добавлен 15.06.2013Краткий обзор решения транспортных задач. Экономическая интерпретация поставленной задачи. Разработка и описание алгоритма решения задачи. Построение математической модели. Решение задачи вручную и с помощью ЭВМ. Анализ модели на чувствительность.
курсовая работа [844,3 K], добавлен 16.06.2011Особенности решения транспортной задачи распределительным методом и анализ результатов. Построение математической модели, алгоритма. Создание программы для решения транспортной задачи распределительным методом в программной среде Borland Delphi 7.
курсовая работа [1000,7 K], добавлен 23.06.2012Постановка задачи. Математические и алгоритмические основы решения. Функциональные модели и блок-схемы решения. Программная реализация решения. Пример выполнения программы. Методы, использующие исключение отрезков. Учет информации о значениях функции.
курсовая работа [527,0 K], добавлен 15.01.2010Решение нелинейного уравнения шаговым методом, методом половинного деления, методом Ньютона и простой итерации с помощью программы Mathcad. Разбиение промежутка на число n интервалов. Условия сходимости корня. Составление программы для решения на С++.
лабораторная работа [207,5 K], добавлен 10.05.2012Разработка стратегии и выбор способа автоматизации задачи снабжения для предприятия. Построение функциональной модели бизнес-процессов предметной области. Создание программного средства "1С: Конфигурация ОМТС" для оптимального решения задач снабжения.
дипломная работа [7,2 M], добавлен 12.04.2012