Интерпретация и анализ результатов решения

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

По предмету: «Технология разработки программных продуктов»

На тему: «Численное решение алгебраических уравнений методом касательных»

Автор:

Студент 4 курса, гр.ПМ-4-1 (10) Н.К. Гараев

Руководитель: С.Г. Смирнов

Миасс

Содержание

Аннотация   Введение   1. Общая часть 1.1 Постановка задачи 1.2 Описание математической модели 1.3 Обоснование и описание метода реализации   2. Специальная часть 2.1 Описание алгоритма 2.2 Описание программы 2.3 Руководство системного программиста 2.4 Руководство программиста 2.5 Руководство оператора 2.6 Интерпретация и анализ результатов   Заключение   Список используемой литературы   Приложения   1. Листинг программы 2. Результаты решения программы 3. Контрольный пример    

Аннотация

В данной курсовой работе рассмотрен принцип численное решение алгебраических уравнений, комбинированным методом хорд и касательных, а также в среде Delphi 7 была разработана программа, реализующая алгоритм решение уравнения комбинирование методом хорда и касательных. В пояснительной записке приводится описание как самого метода решения, выдача ответа пользователю, так и самой программы.

Введение

Метод Ньютона, алгоритм Ньютона (также известный как метод касательных) — это итерационный численный метод нахождения корня (нуля) заданной функции. Метод был впервые предложен английским физиком, математиком и астрономом Исааком Ньютоном (1643—1727). Поиск решения осуществляется путём построения последовательных приближений и основан на принципах простой итерации. Метод обладает квадратичной сходимостью. Улучшением метода является метод хорд и касательных. Также метод Ньютона может быть использован для решения задач оптимизации, в которых требуется определить нуль первой производной либо градиента в случае многомерного пространства.

Общая часть

Постановка задачи

Написать программу выполняющую численное решение алгебраических уравнений, комбинированным методом хорд и касательных. Результат работы программы должен выводиться на экран.

В программе реализовать следующее меню:

1) Ввести данные с клавиатуры.

2) Осуществить проверку на введённые данные в уравнение.

3) Вывести ответ на экран.

4) Выход.

Описание математической модели

Обоснование и описание метода реализации

В курсовом проекте реализована программа решение уравнений в соответствии с заданием к курсовому проекту.

При решении поставленной задачи оптимально использовать язык Delphi, который является языком высокого уровня и позволяет быстро и эффективно создавать приложения, обладающие удобным графическим пользовательским интерфейсом, предоставляет наиболее широкие возможности для программирования приложений ОС Windows.

Специальная часть

Описание алгоритма

 
  Интерпретация и анализ результатов решения - student2.ru

 
2.2 Описание программы

При запуске программа появляется форма выбора метода решение уравнения. Уравнение заноситься вручную, если какое-то значение лишнее просто поставьте ноль перед ним, так же вручную заноситься интервал и точность. Если забыли вести значение вылезет предупреждение. Так же существует кнопка очистить, очищает веденые значение и таблицу.

Руководство системного программиста

Для работы программы необходим файл Project.exe. Вывод результата будет производиться непосредственно в самой программе.

Минимальные системные требования для работы данной программы:

1. Процессор с частотой 800 Мгц;

2. Оперативная память – 64 мб;

3. 640 кб свободного места на жестком диске;

4. Операционная система Windows.

Руководство программиста

Программа предназначена для численного решение алгебраических уравнений, комбинированным методом хорд и касательных.

В программе содержится поля для ввода данных, поля для вывода данных, таблица и две кнопки решение, очистить.

Если не заполнить хоть одно значение, вылезет предупреждение.

После запуска программы будет происходить:

1) Выбор пункта меню.

2) Переход к основной части программы.

3) Ввод данных запроса

4) Обработка запроса

5) Выдача результатов решения на экран

6) Выход

Руководство оператора

Программа «Численное решение алгебраических уравнений. Комбинирование метод хорд и касательных» предназначена для автоматизированного решения комбинированным методом хорд и касательных, и выдача ответа пользователю.

При запуске программы выводится форма, в которой осуществляется выбор метода численного решение алгебраических уравнений, имеющая следующий вид: Интерпретация и анализ результатов решения - student2.ru

При выборе метода выводится форма имеющая следующий вид:

Интерпретация и анализ результатов решения - student2.ru

Форма содержит семь полей для ввода данных выделено оваломи, и одно поле для вывода ответа выдилено прямоугольником

Интерпретация и анализ результатов решения - student2.ru

Если не вести хоть одно поля для ввода данных и нажать на решение появиться предупреждение, имеющий следующий вид:

Интерпретация и анализ результатов решения - student2.ru

При нажатии на кнопку “ОК” программа автоматически переходит обратно.

Когда ведены все значение нужна нажать кнопку решить.

Расчеты сводиться в таблицу и выводиться ответ:

Интерпретация и анализ результатов решения - student2.ru

Так же есть кнопка очистить поля для набора значений.

Интерпретация и анализ результатов решения

Все результаты работы программы выводятся в той же форме в которой заводились значения, на которой расположено три панели, в которых выводятся введённые пользователем вводимые данные, ответ,и таблица, содержащие расчеты по запросу пользователя.

Заключение

Программа предназначена для оперативного решение комбинированным методом хорд и касательных по запросам конечных пользователей системы.

Применять этот программный продукт можно в целях упрощения процесса решение комбинированным методом хорд и касательных.

Достоинство заключается в том, что программа имеет удобный и простой пользовательский интерфейс, принципы работы с которым может освоить любой пользователь, не имеющий опыта и навыков работы с ПК, знаний и умений в области программирования, а так же в вышей математике .

Недостатки: не находит сама интервал.

Список используемой литературы

Лекции по предметам «Базы Данных» и «ТРПП», «Численные методы»

Приложения

Приложение 1

Листинг программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, jpeg, ExtCtrls,mmsystem;

type

TForm1 = class(TForm)

Image1: TImage;

Image2: TImage;

Image3: TImage;

Image4: TImage;

Image5: TImage;

procedure Image1Click(Sender: TObject);

procedure Image5Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Image1Click(Sender: TObject);

begin

PlaySound('D:\learning\prog\Image\1.wav',0,SND_ASYNC);

end;

procedure TForm1.Image5Click(Sender: TObject);

begin

horcas.show;

end;

end.

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Grids, jpeg, ExtCtrls, ToolWin, ComCtrls;

type

Thorcas = class(TForm)

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Button1: TButton;

Button2: TButton;

StringGrid1: TStringGrid;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit7: TEdit;

Edit1: TEdit;

Label1: TLabel;

Label2: TLabel;

Edit8: TEdit;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

procedure FormCreate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

horcas: Thorcas;

x4,x5,x6,x7:real;

implementation

uses Unit1;

{$R *.dfm}

function f(var x:real):real;

begin

f:= x4*x*x*x+x5*x*x+x6*x+x7;

end;

function f1(var x:real):real;

begin

f1:= 3*x*x-x5*x+x6; {первая производная}

end;

function f2(var x:real):real;{вторая производная}

begin

f2:=6*x-x6;

end;

procedure Thorcas.FormCreate(Sender: TObject);

begin

with Stringgrid1 do

begin

RowCount:=2;

ColCount:=6;

DefaultColWidth:=100;

Width:=630;

Cells[0,0]:='Номер шага';

Cells[1,0]:='Xi левое';

Cells[2,0]:='Xi правое';

Cells[3,0]:='Xiп - Xiл';

Cells[4,0]:='F(Xiл)';

Cells[5,0]:='F(Xiп)';

end;

end;

procedure Thorcas.Button1Click(Sender: TObject);

var a,b:real;

e:real;

x1,x2:real;

k:integer;

begin

if (Edit2.Text='') or (Edit3.Text='') or (Edit4.Text='') or (Edit5.Text='') or (Edit6.Text='') or (Edit7.Text='') or (Edit8.Text='') then

begin

Application.MessageBox('Для решение уравнения должно быть заполнено все значения','Предупреждение',mb_OK);

Exit;

end;

x4:=StrToFloat(Edit4.Text);

x5:=StrToFloat(Edit5.Text);

x6:=StrToFloat(Edit6.Text);

x7:=StrToFloat(Edit7.Text);

a:=StrToFloat(Edit2.Text);

b:=StrToFloat(Edit3.Text);

e:=StrToFloat(Edit8.Text);

k:=0;

StringGrid1.Cells[0,k+1]:=IntToStr(k);

StringGrid1.Cells[1,k+1]:=FloatToStrF(a,ffFixed,4,1);

StringGrid1.Cells[2,k+1]:=FloatToStrF(b,ffFixed,4,1);

StringGrid1.Cells[3,k+1]:=FloatToStrF(b-a,ffFixed,4,1);

StringGrid1.Cells[4,k+1]:=FloatToStrF(F(a),ffFixed,4,1);

StringGrid1.Cells[5,k+1]:=FloatToStrF(F(b),ffFixed,4,1);

repeat

k:=k+1;

if f1(a)*f2(a)>0 then

begin

x1:=a-(f(a)*(b-a))/(f(b)-f(a));

x2:=x1-(f(x1)*(b-x1)/(f(B)-f(x1)));

a:=x2;

end

else

begin

x1:=b-(f(b)*(b-a))/(f(b)-f(a));

x2:=x1-f(x1)*(x1-a)/(f(x1)-f(a));

b:=x2;

end;

StringGrid1.RowCount:=StringGrid1.RowCount+1;

StringGrid1.Cells[0,k]:=IntToStr(k-1);

StringGrid1.Cells[1,k]:=FloatToStrF(x1,ffFixed,7,4);

StringGrid1.Cells[2,k]:=FloatToStrF(x2,ffFixed,7,4);

StringGrid1.Cells[3,k]:=FloatToStrF(x2-x1,ffFixed,7,4);

StringGrid1.Cells[4,k]:=FloatToStrF(F(x1),ffFixed,7,4);

StringGrid1.Cells[5,k]:=FloatToStrF(F(x2),ffFixed,7,4);

until abs(x2-x1)<=e;

Edit1.Text:='Корень = '+FloatToStrF(x2,ffFixed,7,3);

end;

procedure Thorcas.Button2Click(Sender: TObject);

var

i:integer;

begin

Edit1.Text:='';

Edit2.Text:='';

Edit3.Text:='';

Edit4.Text:='';

Edit5.Text:='';

Edit6.Text:='';

Edit7.Text:='';

Edit8.Text:='';

for i:=1 to StringGrid1.RowCount do

StringGrid1.Rows[i].Clear;

end;

end.

Приложение 2

Наши рекомендации