Автоматизация решения алгебраических уравнений. Метод половинного деления
Содержание
Введение
1.Общая часть
1.1
Постановка задачи
1.2
Описание математической
1.3
Обоснование и описание метода
реализации
2.Специальная часть
2.1
Описание алгоритма
2.2
Описание программы
2.3
Руководство системного
2.4
Руководство программиста
2.5
Руководство оператора
2.6
Интерпретация и анализ
Заключение
Список
используемой литературы
Приложение
1.Листинг программы
2.Результат решения
программы
Аннотация
В
данном курсовом проекте будет подробно
рассмотрена автоматизация
Программа написана на языке Borland Delphi 7.0.
Курсовая работа состоит из следующих частей:
1. общей части с постановкой задачи, описанием математической модели, обоснованием и описанием метода реализации.
2. специальной
части с описанием алгоритма,
описанием программы,
В
приложении входят: листинг программы,
результаты решения задачи и контрольный
пример.
Введение
Цель создания данного программного продукта – автоматизировать решения алгебраических уравнений.
Программа
осуществляет наглядный интерфейс
решения уравнений методом
Также в этой программе можно увидеть график функции при задании границ отрезка, при нахождении середины отрезка и точного корня(t).
Программа
выполнена в среде
Общая часть
1.1
Постановка задачи
В курсовой работе необходимо разработать программу «Автоматизация решения алгебраических уравнений. Метод половинного деления».
Поэтому мы реализуем решение кубических уравнений методом половинного деления с точностью Е=0,001.
Для того чтобы найти приближенное значение корня с точностью до Е>0, необходимо остановить процесс половинного деления на таком шаге n, на котором будет иметь длину и вычислить .
Дальше решения производятся при нахождении абсолютной погрешности . И, наконец, выявляется условия окончания итерационного процесса.
Количество шагов приближения зависит от и заданной точности Е.
1.2
Описание математической
модели
Данный
программный продукт
График функции в нашей курсовой работе основан на графических возможностях Delphi.
Графические инструменты
Все функции для работы с графикой находятся в динамической библиотеки GDI.dll . Все GDI функции аппаратно независимы и это означает, что результат вывода графики будет одинаков вне зависимости от графического устройства, установленного в компьютере.
1.3
Обоснование и
описание метода
реализации
Для реализации данного программного продукта выбрана система визуального программирования Delphi 7.0, которая позволяет быстро и удобно разрабатывать эффективные приложения.
В
Delphi достаточно хорошо развиты возможности
по созданию пользовательского интерфейса,
широкий набор функций для решения расчётно-вычислительных
задач.
2.Специальная часть
2.1 Описание алгоритма
Для реализации данного программного продукта необходим алгоритм, состоящий из 5 частей:
- Нахождение количества корней и нахождение отрезков, где содержится корень
- Построение графика
- Проверка отрезка
- Решение
- Создатели
Общая блок схема
*Блок
схема "Метод половинного деления"
2.2 Описание программы
В данной курсовой работе разработана программа «Решение кубических уравнений».
Для работы данной программы необходима операционная система не ниже Windows 2000. Программа написана на языке Borland Delphi 7.0 и предназначена для автоматизации решений алгебраических уравнений.
Разработанная программа может применяться в школах и других учебных учреждениях, где рассчитываются алгебраические уравнения.
Ограничения данного программного продукта состоят в том, что программа решает только кубические уравнения.
В
данной курсовой работе методом реализации
является …
2.3 Руководство системного программиста
Программа используется для нахождение корней кубического уравнения. Для выполнения данной программы используется файл с расширением .ехе Необходимо использовать Windows не ниже 2000 и Microsoft Word.
Программа представляет собой интерфейс который состоит из одной формы.
Программа
запускается через файл с расширением
.ехе. открывается форма. В которой
предусмотрено решения
Проверить
работу программы можно запустив
файл .ехе на исполнение.
2.4 Руководство программиста
Программа используется для вычисления корней кубического уравнения. Для выполнения данной программы необходимо наличие на компьютере файла .ехе. Также необходим объем ОЗУ - 512 Мб, принтер для вывода табеля успеваемости, ОС не ниже Windows 2000.
Программа вычисляет успеваемость в пределах от 10 числа одного месяца до 10 числа следующего месяца. Работа будет происходить, если только введен список студентов и предметов.
Программу можно вызвать с любого носителя и на любом компьютере. Чтобы запускать ее, нужно нажать файл .ехе.
Данная программа используется в рамках Миасского геологоразведочного колледжа.
2.5
Руководство оператора
Для правильной работы программы необходимо выполнить следующие действия:
1.
Запустить программу на
2. Выбрать отрезки (щелкнуть по кнопке «Показать отрезки»);
3.
Выбрать границы отрезка (
4.
Проверить отрезок (щелкнуть
5.
Выбрать метод решения
6. Построить график (щелкнуть по кнопке «График»);
При неправильном вводе данных на экране будут выдаваться «ошибки».
Так
как в нашей программе
2.6
Интерпретация и
анализ результатов
В
результате работы программы на экран
выдаются границы отрезка, погрешность,
количество вещественных корней уравнения,
результат работы программы(t) и количество
шагов. Также строится график функции.
Это можно увидеть в Приложение 2. Результат
решения программы.
Заключение
Программа предназначена для нахождения корней кубического уравнения и может применяться в школах и любых учебных учреждениях. Она позволяет за короткий промежуток времени найти корни кубического уравнения.
Достоинством данной является простой и наглядный интерфейс, интуитивное управление, и пятная цветовая гамма
Список используемой литературы
- Рудаков, А. В. Технология разработки программных продуктов: Учебные пособия для студентов средне профессиональных образований/ А. В. Рудаков: - М.: Академия, 2005. -208 с.
- Гагарина, Л. Г. Основы технологии разработки программных продуктов: Учебные пособия/ Б. Д. Виснадул, А. В. Игошин: – М.: Форум: Инфра-М, 2006. -192 с.
- Стандартизация разработки программных средств: Учебные пособия/ Благодатских, В. А. [и др.]; под ред. О. С. Разумова. - М.: Финансы и статистика, 2005. -288с.
Приложение 1
Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls,
TeEngine, Series, TeeProcs, Chart;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Button1: TButton;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Panel1: TPanel;
Panel2: TPanel;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Panel3: TPanel;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Chart1: TChart;
Series1: TLineSeries;
Series2: TLineSeries;
Series3: TLineSeries;
Edit11: TEdit;
Label10: TLabel;
Button8: TButton;
procedure Button1Click(Sender: TObject);
procedure Panel1Click(Sender: TObject);
procedure Panel2Click(Sender: TObject);
procedure Panel3Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Edit5Click(Sender: TObject);
procedure Edit6Click(Sender: TObject);
procedure Edit7Click(Sender: TObject);
procedure Edit8Click(Sender: TObject);
procedure Edit9Click(Sender: TObject);
procedure Edit10Click(Sender: TObject);
procedure Edit5DblClick(Sender: TObject);
procedure Edit6DblClick(Sender: TObject);
procedure Edit7DblClick(Sender: TObject);
procedure Edit8DblClick(Sender: TObject);
procedure Edit9DblClick(Sender: TObject);
procedure Edit10DblClick(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure Edit3Change(Sender: TObject);
procedure Edit4Change(Sender: TObject);
procedure Button8Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
a,b,c,d: real; //значения функции
p,q: real; //Для Кардано
Q1: Extended; //Для Кардано
x1,x2,y1,y2:real; //Проверка корней
ss:string; //Округление
a1,b1,a11,b11: real; //Границы отрезка
kr1,kr2,kx,kx2,ky,kfx,kfx2 :real; //Для графика
p1,p2,p3:real; //Проверка выбран ли отрезок
bolt,fp11,fp12,fp21,fp22:real;
e: real; //Погрешность
s:integer; //Cчетчик количества шагов
c1,fa,fc: real;//Переменные Метода половинного деления
fb:real;//переменые метода Хорд
x: array [0..99] of real;
fpx2,fpx,fx :real;
x0,fpx0,x11,x12,e1:real;
krr1, krr2:real;
implementation
uses Math;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
label Exit;
label N;
Label Y;
label YY;
label NN;
Label NNN;
Label YYY;
begin
a:=StrToFloat(Edit1.Text);
If a=0 then begin
Application.MessageBox(PChar('
goto Exit;
end;
b:=StrToInt(Edit2.Text);
c:=StrToFloat(Edit3.Text);
d:=StrToFloat(Edit4.Text);
Button6.Enabled:=true;
panel1.Color:=clWindow;
panel2.Color:=clWindow;
panel3.Color:=clWindow;
Edit5.Color:=clWindow;
Edit6.Color:=clWindow;
Edit7.Color:=clWindow;
Edit8.Color:=clWindow;
Edit9.Color:=clWindow;
Edit10.Color:=clWindow;
Series1.Clear;
Series2.Clear;
Series3.Clear;
kr1:=0;
kr2:=0;
kx:=0;
kx2:=0;
ky:=0;
kfx:=0;
kfx2:=0;
p:=-1*((b*b)/(3*a*a))+(c/a);
q:=((2*(b*b*b))/(27*(a*a*a)))-
Q1:=Power(p/3,3)+Power(q/2,2);
Q1:=RoundTo(Q1,-3);
label9.Caption:=FloatToStr(Q1)
if Q1<0 then Label7.Caption:='Уравнение имеет три вещественных корня';
if Q1>0 then Label7.Caption:='Уравнение
имеет один вещественный
if (Q1=0) and (p<>0) then Label7.Caption:='Уравнение имеет два корня';
if (Q1=0) and (p=0) and (q=0) then Label7.Caption:='Уравнение имеет один корень';
x1:=-500;
y1:=a*Power(x1,3)+b*Power(x1,
x2:=x1;
N:
if y1>0 then begin
x2:=x2+0.1;
y2:=a*Power(x2,3)+b*Power(x2,
if y2<=0 then begin
x1:=x2-1;
x1:=RoundTo(x1,-6);
Edit5.Text:=FloatToStr(x1);
x2:=RoundTo(x2,-6);
Edit6.Text:=FloatToStr(x2);
goto Y;
end;
goto N;
end;
if y1<=0 then begin
x2:=x2+0.1;
y2:=a*Power(x2,3)+b*Power(x2,
if y2>=0 then begin
x1:=x2-1;
x1:=RoundTo(x1,-6);
Edit5.Text:=FloatToStr(x1);
x2:=RoundTo(x2,-6);
Edit6.Text:=FloatToStr(x2);
goto Y;
end;
goto N;
end;
Y:
kr1:=x1;
kr2:=x2;
Panel1.Visible:=true;
if (Q1<0) or ((Q1=0) and (p<>0))then begin
x1:=x2;
y1:=a*Power(x1,3)+b*Power(x1,
x2:=x1;
NN:
if y1>0 then begin
x2:=x2+0.1;
y2:=a*Power(x2,3)+b*Power(x2,
if y2<=0 then begin
x1:=RoundTo(x1,-6);
Edit7.Text:=FloatToStr(x1);
x2:=RoundTo(x2,-6);
Edit8.Text:=FloatToStr(x2);
goto YY;
end;
goto NN;
end;
if y1<=0 then begin
x2:=x2+0.1;
y2:=a*Power(x2,3)+b*Power(x2,
if y2>=0 then begin
x1:=RoundTo(x1,-6);
Edit7.Text:=FloatToStr(x1);
x2:=RoundTo(x2,-6);
Edit8.Text:=FloatToStr(x2);
goto YY;
end;
goto NN;
end;
YY:
kr2:=x2;
Panel2.Visible:=true;
End;
if Q1<0 then begin
x1:=x2;
y1:=a*Power(x1,3)+b*Power(x1,
x2:=x1;
NNN:
if y1>0 then begin
x2:=x2+0.1;
y2:=a*Power(x2,3)+b*Power(x2,
if y2<=0 then begin
x1:=RoundTo(x1,-6);
Edit9.Text:=FloatToStr(x1);
x2:=RoundTo(x2,-6);
Edit10.Text:=FloatToStr(x2);
goto YYY;
end;
goto NNN;
end;
if y1<=0 then begin
x2:=x2+0.1;
y2:=a*Power(x2,3)+b*Power(x2,
if y2>=0 then begin
x1:=RoundTo(x1,-6);
Edit9.Text:=FloatToStr(x1);
x2:=RoundTo(x2,-6);
Edit10.Text:=FloatToStr(x2);
goto YYY;
end;
goto NNN;
end;
YYY:
kr2:=x2;

- Автоматизация решения задачи по выявлению путей укрепления финансовой устойчивости ООО ПКФ «Промресурс»
- Автоматизация робота сборочного конвейера автомобилей
- Автоматизация сварочных процессов
- Автоматизация систем канализационной насосной станции
- Автоматизация системы бюджетирования на примере модуля «Управление бюджетом» системы «Галактика ERP»
- Автоматизация системы бюджетирования финансовой службы
- Автоматизация системы ведения учета товара в автосалоне
- Автоматизация регистрации и обработки заказов
- Автоматизация редукционно-охладительной установки
- Автоматизация ректифікаційної установки
- Автоматизация релейно-контактной схемы управления
- Автоматизация рельсового транспорта
- Автоматизация ресторана
- Автоматизация ресторанного бизнеса