Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод дихотомии и простых итераций - Нестерова....docx
Скачиваний:
2
Добавлен:
14.11.2019
Размер:
294.57 Кб
Скачать

Министерство образования и науки РФ

Государственное образовательное учреждение

высшего профессионального образования

САМАРСКИЙ ГОСУДАРСТВЕННЫЙ

АЭРОКОСМИЧЕСКИЙ УНИВЕРСИТЕТ

имени академика С.П. КОРОЛЕВА

(научный исследовательский университет)

СГАУ

Факультет летательных аппаратов

Кафедра летательных аппаратов

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к профессионально-ознакомительной практике

Решение уравнений с одним неизвестным. Дихотомия и метод простых итераций.

Выполнила студент группы 1208

Нестерова Н. А.

Проверил___________________

Оценка_____________________

Самара 2012

­

ЗАДАНИЕ

  1. Разработать вычислительный алгоритм метода «Решение уравнений с одним неизвестным. Дихотомия и метод простых итераций.

  2. Разработать программный модуль в среде DELPHI, реализующий данный алгоритм с графической иллюстрацией.

  3. Разработать интерфейс пользователя (внутри модуля) и подробное описание работы с ним.

  4. Провести тестовый расчёт.

  5. Записать программный продукт на CD.

  6. Оформить пояснительную записку проекта в соответствии с СТП СГАУ.

РЕФЕРАТ

Пояснительная записка 27 с, 9 рисунков, 3 источника, 1 приложение.

DELPHI, ДИХОТОМИЯ, ИТЕРАЦИЯ, ТОЧНОСТЬ, НАЧАЛЬНОЕ ПРИБЛИЖЕНИЕ.

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

Содержание

Y

ВВЕДЕНИЕ 5

1 Математическая постановка задачи 6

1.1 Метод дихотомии 6

1.2 Метод простых итераций 8

2 Практическая реализация 9

2.1 Метод дихотомии 9

2.2 Метод простых итераций 10

Функция задаётся как отдельная функция в модуле Unit1; 10

, где . 10

3 Алгоритм моделирования 12

3.1 Метод дихотомии 12

3.2 Метод простых итераций 13

4 Тестовый расчёт 14

5 Руководство пользователя 15

5.1 Назначение программы 15

5.2 Минимальные системные требования 15

5.3 Сообщение пользователю 15

ЗАКЛЮЧЕНИЕ 19

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ 20

ПРИЛОЖЕНИЕ А 21

ВВЕДЕНИЕ

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

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

1 Математическая постановка задачи

    1. Метод дихотомии

Пусть задана непрерывная функция , промежуток , на котором функция имеет корень и точность вычисления .

Рисунок 1 – Постановка задачи

Метод дихотомии заключается в следующем:

  1. Убедившись, что , поделим отрезок пополам и получим точку и два отрезка и .

  2. Если , то корень найден c заданной точностью; иначе из полученных отрезков надо выбрать один такой, что , то есть

, если или ,если .

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

    1. Метод простых итераций

Пусть имеется функция , требуется найти корень этой функции, при котором . Заменим исходное уравнение на эквивалентное и составим итерации по следующему правилу:

Задавая начальное приближение х0, мы получаем последовательность , которая при стремлении к бесконечности имеет корень , который является корнем уравнения. Итерации продолжаются до тех пор, пока

.

  1. Практическая реализация

Данная программа рассчитывает корень уравнения для функции

;

Исследуемая функция задаётся в модуле Unit1 в строчке №94:

function TForm1.Func(x: real): real;

begin

func:=x*x*x-x-3;

end;

Процедура graphic рисует график заданной функции на компонентах TImage.

    1. Метод дихотомии

Метод дихотомии реализуется в следующей подпрограмме модуля Unit1 в строчке №230:

procedure TForm1.Timer1Timer(Sender: TObject);

begin

img1.Canvas.Pen.Width:=4;

img1.Canvas.Pen.color:=clblue;

x3:=o1+(o2-o1)/2;

img1.Canvas.Ellipse({X1}round( (x3-x1)*img1.Width/abs(x2-x1) ), img1.Height div 2 - round(func(x3)*img1.Height/(2*max)) ,{x2}round((x3-x1)*img1.Width/abs(x2-x1) ) +2, img1.Height div 2 - round(func(x3)*(img1.Height/(2*max)))+2 );

if func(x3)*func(o1)>0 then o1:=x3 else o2:=x3;

i:=i+1;

a[i]:=x3;

if (abs(o1-o2)<=E) or (i>99) then

begin

timer1.enabled:=false;

with mem do

begin

lines.Add('Метод дихотомии. Количество итераций:') ;

lines.Add(floattostr(i));

lines.Add(‘Корень уравнения x= '+ floattostr(x3)) ;

text;

end;

end;

end;

    1. Метод простых итераций

Функция задаётся как отдельная функция в модуле Unit1;

, где .

Метод непосредственно реализуется в последующей процедуре модуля unit1 в строчке №300:

procedure TForm1.Timer2Timer(Sender: TObject);

begin

img2.Canvas.Pen.Width:=4;

img2.Canvas.Pen.color:=clblue;

img2.Canvas.Ellipse({X1}round( (x4-x1)*img1.Width/abs(x2-x1) ), img1.Height div 2 - round(func(x4)*img1.Height/(2*max)) ,{x2}round((x4-x1)*img1.Width/abs(x2-x1) ) +2, img1.Height div 2 - round(func(x4)*(img1.Height/(2*max)))+2 );

K:=k+1;

y:=func1(x4) ;

d:=abs(y-x4);

x4:=y;

if (d<=e) or (x4>=x2) then

begin

timer2.Enabled:=false;

with mem do

begin

lines.Add('Метод простых итераций. Количество итераций:') ;

lines.Add(floattostr(k));

lines.Add('Корень уравнения x= '+ floattostr(x4)) ;

text;

end;

end;

end;

3 Алгоритм моделирования

3.1 Метод дихотомии

Начало

f(a)*f(b)<0

Ввод начальных данных: a, b, e

Задайте другой интервал

нет

да

да нет

Вывод корня, х1

да нет

Конец

Рисунок 2 – Алгоритм метода дихотомии

3.2 Метод простых итераций

Начало

y:= (x0)

d:=|y-x0|

x0:=y

a, b, , x0

Вывод корня, х0

Конец

нет

да

Рисунок 3 – Алгоритм метода простых итераций

  1. Тестовый расчёт

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

Рисунок 4 – График функции в Mathcad

На рисунке отчётливо видно, что корень находится на промежутке ;

Решив уравнение аналитически получаем корень 1,6716, что соответствует числу, полученному программой.

5 Руководство пользователя

5.1 Назначение программы

Данная программа предназначена для моделирования отыскания корня уравнения с одним неизвестным с помощью метода дихотомии и простых итераций.

5.2 Минимальные системные требования

Для запуска программы требуется:

- Операционная система: Microsoft Windows 95/98/Me/XP/Vista/Seven;

- Процессор: Pentium 400 GHz;

- Оперативная память: 16 Mb.

5.3 Сообщение пользователю

При запуске программы появляется окно, показанное на рисунке 5.

Рисунок 5 – Главное окно программы

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

Рисунок 6 – Введение начальных данных

Следующий – построение графика. Для этого пользователю необходимо нажать на кнопку «Нарисовать график». После этого в правой части программы появляются два одинаковых графика, соответственно один для метода простых итераций, другой для дихотомии. График функции можно увидеть на рисунке 7.

Рисунок 7 – График функции

В программе так же имеются четыре кнопки: «Старт», «Сброс», «Пауза», «Выход».

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

Рисунок 8 – Итерационный процесс

При этом в окне вывода появляется информация о количестве итераций и корень уравнения (рисунок 9).

Рисунок 9 – Окно вывода

При нажатии на кнопку «Сброс» окно вывода очищается, а график перерисовывается заново.

При нажатии на кнопку «Пауза» программа прекращает свою работу.

При нажатии кнопки «Выход» главное окно закрывается.