Автор работы: Пользователь скрыл имя, 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. Контрольный пример
Министерство науки и образования ЧЕЛЯБИНСКОЙ ОБЛОСТИ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ СРЕДНЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«Миасский Геологоразведочный колледж»
Специальность 230105.51: «Программное обеспечение вычислительной техники и
автоматизированных систем»
КУРСОВАЯ РАБОТА
По предмету: «Технология разработки программных продуктов»
На тему: «Численное решение алгебраических уравнений. Методом половинного деления»
Автор:
Студент 4 курса, гр.ПМ-4-1 (10) Д.А.Горбунов
Руководитель:
Миасс
2013
Содержание
Аннотация
Введение
Заключение
Список используемой литературы
Приложения
|
|
Аннотация
В данной курсовой работе рассмотрен принцип численное решение алгебраических уравнений, методом половинного деления, а также в среде Delphi 7 была разработана программа, реализующая алгоритм решение уравнения методом половинного деления,. В пояснительной записке приводится описание как самого методарешения, выдачаответа пользователю, так и самой программы.
Введение
Методод половинного деления, даёт приближения корня с разных сторон. Поэтому их часто применяют в сочетании друг с другом, тогда уточнение корня происходит быстрее.
В рамках этой программы реализован алгоритмрешение и выдачаответа по запросам пользователя.
Программа предназначен для
автоматизированного решения методом половинного деления,
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.3 Руководство системного программиста
Для работы программы необходим файлProject.exe.Вывод результата будет производиться непосредственно в самой программе.
Минимальные системные требования для работы данной программы:
1. Процессор с частотой 800 Мгц;
2. Оперативная память – 64мб;
3. 640кб свободного места на жестком диске;
4. Операционная система Windows.
2.4 Руководство программиста
Программа предназначена для численного решение алгебраических уравнений, комбинированным методом хорд и касательных.
В программе содержится поля для ввода данных, поля для вывода данных, таблица и две кнопки решение, очистить.
Если не заполнить хоть одно значение, вылезет предупреждение.
После запуска программы будет происходить:
1)Выбор пункта меню.
2)Переход к основной части программы.
3) Ввод данных запроса
4) Обработка запроса
5) Выдача результатов решения на экран
6) Выход
2.5 Руководство оператора
Программа «Численное решение алгебраических уравнений. Комбинирование метод хорд и касательных» предназначена для автоматизированного решения комбинированным методом хорд и касательных, и выдача ответа пользователю.
При запуске программы выводится форма, в которой осуществляется выбор метода численного решение алгебраических уравнений, имеющая следующий вид:
При выборе метода выводится форма имеющая следующий вид:
Форма содержит семь полей для ввода данных выделено оваломи, и одно поле для вывода ответа выдилено прямоугольником
Если не вести хоть одно
поля для ввода данных и нажать
на решение появиться
При нажатии на кнопку “ОК” программа автоматически переходит обратно.
Когда ведены все значение нужна нажать кнопку решить.
Расчеты сводиться в таблицу и выводиться ответ:
Так же есть кнопка очистить поля для набора значений.
2.6 Интерпретация и анализ результатов решения
Все результаты работы программы выводятся в той же форме в которой заводились значения, на которой расположено три панели, в которых выводятся введённые пользователем вводимые данные, ответ,итаблица, содержащие расчеты по запросу пользователя.
Заключение
Программа предназначена для оперативного решение комбинированным методом хорд и касательныхпо запросам конечных пользователей системы.
Применять этот программный продукт можно в целях упрощения процесса решение комбинированным методом хорд и касательных.
Достоинство заключается в том, что программа имеет удобный и простой пользовательский интерфейс, принципы работы с которым может освоить любой пользователь, не имеющий опыта и навыков работы с ПК, знаний и умений в области программирования, а так же в вышей математике .
Недостатки: не находит сама интервал.
Список используемой литературы
Лекции по предметам«Базы Данных» и «ТРПП», «Численные методы»
Приложения
Приложение 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\
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(
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('Для
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]:=
StringGrid1.Cells[1,k+1]:=
StringGrid1.Cells[2,k+1]:=
StringGrid1.Cells[3,k+1]:=
StringGrid1.Cells[4,k+1]:=
StringGrid1.Cells[5,k+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(
a:=x2;
end
else
begin
x1:=b-(f(b)*(b-a))/(f(b)-f(a))
x2:=x1-f(x1)*(x1-a)/(f(x1)-f(
b:=x2;
end;
StringGrid1.RowCount:=
StringGrid1.Cells[0,k]:=
StringGrid1.Cells[1,k]:=
StringGrid1.Cells[2,k]:=
StringGrid1.Cells[3,k]:=
StringGrid1.Cells[4,k]:=
StringGrid1.Cells[5,k]:=
until abs(x2-x1)<=e;
Edit1.Text:='Корень = '+FloatToStrF(x2,ffFixed,7,3);
end;
procedure Thorcas.Button2Click(Sender: TObject);
Информация о работе Численное решение алгебраических уравнений. Методом половинного деления