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

Описание математической модели. Обоснование метода реализации. Вид алгоритма и программы. Руководство системного программиста, оператора. Комбинирование метод хорд и касательных. Интерпретация и анализ результатов. Листинг программы, контрольный пример.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 12.01.2014
Размер файла 3,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

[Введите текст]

МИНИСТЕРСТВО НАУКИ И ОБРАЗОВАНИЯ ЧЕЛЯБИНСКОЙ ОБЛОСТИ

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

«МИАССКИЙ ГЕОЛОГОРАЗВЕДОЧНЫЙ КОЛЛЕДЖ»

Курсовая работа

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

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

Миасс

2013

Аннотация

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

Введение

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

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

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

1. Общая часть

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 Описание алгоритма

Рис. 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

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

Рис. 3

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

Рис. 4

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

Рис. 5

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

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

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

Рис. 6

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

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

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

Результат решения программы

Результаты решение программы при уравнение x^3-2x^2-4*x+7при интервале [-2:-3], точность Е=0,001 ответ: Корень = -1,935.

Приложение 3

Контрольный пример

Дано уравнение: x3 - 2х2 - 4х + 7 = 0. Уточнить корень с погрешностью e < 0,001.

Решение

Проведя процедуру отделения корней, получим, что уравнение имеет три действительных корня: х1О[-2, -1]; x2О[1, 2]; хзО[2, 3].

Находим первую производную: f'(х) = 3х2 - 4x - 4.

Находим вторую производную: f"(х) = 6х - 4.

Для примера рассмотрим уточнение корня х1. Учитывая, что f(-2) < 0; f(-1)>0; f"(x)=6х - 4 и при -2 Ј х Ј -1 - f"(x)<0, для расчетов примем следующие формулы:

; (1.1) (1.2)

Где хлi и xпi - соответственно значение корня по недостатку (слева) и избытку (справа); хлi = -2, xпi = -1.

Все промежуточные результаты вычислений сведем в табл. 1.

Таблица 1 - Результаты расчетов по комбинированному методу

i

xлi

xпi

xпi - xлi

f(xлi)

F(xпi)

0

-2

-1

1

-1

8

1

-1,9400

-1,8900

0,0500

-0,0686

0,6645

2

-1,9355

-1,9353

0,0002

-0,0011

0,0020

Ответ: x1= -1,935.

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.