Численное решение алгебраических уравнений. Методом половинного деления

Автор работы: Пользователь скрыл имя, 26 Декабря 2013 в 18:08, курсовая работа

Краткое описание

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

Содержание

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






Прикрепленные файлы: 1 файл

Kursovaya_rabota.docx

— 1.01 Мб (Скачать документ)

Министерство науки  и образования ЧЕЛЯБИНСКОЙ ОБЛОСТИ

 

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ  УЧРЕЖДЕНИЕ СРЕДНЕГО ПРОФЕССИОНАЛЬНОГО  ОБРАЗОВАНИЯ

 «Миасский Геологоразведочный  колледж»

 

 

 

 

 

 

 

 

Специальность 230105.51: «Программное обеспечение вычислительной техники и

автоматизированных  систем»

 

 

 

 

 

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

 

 

 

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

 

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

 

 

 

 

 

 

Автор:

Студент 4 курса, гр.ПМ-4-1 (10)                                            Д.А.Горбунов

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Миасс

2013

Содержание

 

 

Аннотация

 

Введение

 

  1. Общая часть
    1. Постановка задачи
    2. Описание математической модели
    3. Обоснование и описание метода реализации

 

  1. Специальная часть
    1. Описание алгоритма
    2. Описание программы
    3. Руководство системного программиста
    4. Руководство программиста
    5. Руководство оператора
    6. Интерпретация и анализ результатов

 

Заключение

 

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

 

Приложения

 

  1. Листинг программы
  2. Результаты решения программы
  3. Контрольный пример

 

 

 

 

 

 

 

 

 

 

 


 

 

 

Аннотация

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение

Методод половинного  деления, даёт приближения корня с разных сторон. Поэтому их часто применяют в сочетании друг с другом, тогда уточнение корня происходит быстрее.

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

Программа предназначен для автоматизированного решения методом половинного деления,  

1 Общая часть

 

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

 

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

 

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

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

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

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

4) Выход.

 

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

Пусть требуется найти действительный корень уравнения f (x)= 0, изолированный на отрезке [a,b]. Предполагается, что f (a) и f (b) имеют равные знаки, а каждая из производных сохраняет определенный знак на отрезке изоляции. Возьмем на отрезке [a,b] такую точку xo, что f (xo) и f” (xo) (при x, принадлежащем промежутку изоляции) имеют одинаковые знаки.

 

Воспользуемся формулами методов  хорд и касательных:

X11=Xo- f (xo) / f1(xo); X12 = a – (b –  a ) f (a) / f (b) – f (a).

Величины X11 и X12 принадлежат промежутку изоляции, причем f (X11) и f (X12) имеют разные знаки.

X21=X11- f (x11) / f1(x11); X22=X11-(X12-X11) f (X11) / f (X12) – f (X11).

Точки X21 и X22 на числовой оси расположены  между точками X11 и X12, причем f (X21) и f (X22) имеют разные знаки.

 

Вычислим теперь значения

X31=X21- f (x21) / f1(x21); X32=X21-(X22-X21) f (X21) / f (X22) – f (X21). 

 

Каждая из последовательностей X11, X21, X31,... Xn1, …; X12, X22, X32, …, Xn2, …стремится к искомому корню, причем одна из последовательностей  монотонно возрастает, а другая –  монотонно убывает. Пусть, например, Xn1 < X< Xn2, тогда 0 < X- Xn-1 < Xn2- Xn2 – Xn1. Задав заранее достаточно малое   мы можем, увеличивая n, добиться выполнения неравенства Xn2 – Xn1 < ; следовательно, при этом же значении n будет выполняться неравенство

X – Xn1 < . Таким образом, Xn1 является  приближенным значением корня  X, вычисленным с погрешностью, не  превышающей .

Так, например, для нахождения приближенного  значения X с точностью до 0,001 нужно  определить n таким образом, чтобы  значения Xn1 и Xn2, вычисленные с точностью  до 0,001, совпадали.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

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

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

 

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

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

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

 

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

 

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

 

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

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

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

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

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

 

 

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

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

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

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

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

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

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

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

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

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

6)   Выход

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

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

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

 

 

 

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

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

 

 

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

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

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

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

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

 

 

 

 

 

 

 

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

 

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

 

Заключение

 

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

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

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

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

 

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

 

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

 

Приложения

Приложение 1

  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;

procedureFormCreate(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;

 

procedureThorcas.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);

vara,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);

Информация о работе Численное решение алгебраических уравнений. Методом половинного деления