44419

Программирование и исследование алгоритмов решения нелинейных уравнений. Метод итераций

Курсовая

Информатика, кибернетика и программирование

Данный проект разработан для вычисления корней нелинейного уравнения методом итераций. Теоретическая часть теория описывающая правила вычисления корней нелинейного уравнения методом итераций а также блоксхема метода. Визуализация метода последовательный показ работы проекта на вычисление корней уравнения методом итераций. Решение уравнения вида разбивается на два этапа: 1 отделение корней т.

Русский

2013-11-12

3.16 MB

70 чел.

                                   Уразаев Вагиз Хафизович    МАС-101д    Вариант21

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

ФИЛИАЛ В ГОРОДЕ СТЕРЛИТАМАК

КАФЕДРА ЕСТЕСТВЕННО-НАУЧНЫХ И ОБЩЕПРОФЕССИОНАЛЬНЫХ ДИСЦИПЛИН

100

2

3

4

5

6

7

8

9

10

11

12

90

80

70

60

50

40

30

20

10

 

Программирование и исследование алгоритмов решения нелинейных уравнений.

Метод итераций.

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

к курсовой работе по ИНФОРМАТИКЕ

2403.302321.000ПЗ

Группа МАС-101д

Фамилия, и.о.

Подпись

Дата

Оценка

Студент

Уразаев В.Х.

Консультант

Карасева Л.М.

Проверил

Стерлитамак 2012 г.


Содержание

[1]
Содержание

[2]
1. Теоретическая часть

[3] Математическое моделирование. Метод итераций.

[4] 1.2 Блок-схема программы

[5]
2. Практическая реализация

[5.1] 2.1 Проектирование интерфейса

[5.1.0.1] Рисунок 2 - Меню

[5.1.0.2]                                          Рисунок 3 - Ввод данных

[5.2] 2.2 Программирование вычисления

[5.3] 2.3 Визуализация метода

[5.4] 2.4 Вычислительный эксперимент

[6]
3.Заключение

[7]           В процессе выполнения курсовой работы были закреплены практические навыки по разработке пользовательских приложений при помощи объектно-ориентированного языка программирования Lazarus и современных компьютерных технологий обработки информации, а также навыки в составлении текстовой документации.
4.Литература


Введение

Данный проект разработан для вычисления корней нелинейного уравнения методом итераций. Программа написана на языке высокого уровня Lazarus.

Пояснительная записка состоит из следующих разделов:

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

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

2.1 Проектирование интерфейса – создание и описание элементов (частей) из которых состоит данная программа.

2.2 Программирование вычисления – конечный результат работы.

2.3 Визуализация метода – последовательный показ работы проекта на вычисление корней уравнения методом итераций.

2.4 Вычислительный эксперимент – сравнение результатов программы с решением в математическом пакете Maxima.

3. Заключение о проделанной работе.

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


1. Теоретическая часть

Часто приходится находить корни уравнений вида , где функция f(x) определена и непрерывна на некотором интервале.

Если f(x) представляет собой многочлен, то уравнение  - алгебраическое, если в функцию входят функции типа: тригонометрических, логарифмических, показательных и т.п., то уравнение называется трансцендентным или нелинейным.

Решение уравнения вида  разбивается на два этапа:

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

   2) вычисление выделенного корня с заданной точностью.

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

Для вычисления выделенного корня существует множество методов, например:

-  метод итераций;

-  метод половинного деления;

-  метод Ньютона.

Подробнее остановимся на первом методе.

  1.  Математическое моделирование. Метод итераций.

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

     f(x)=0.  (1)

где f(x) – непрерывная функция, и требуется определить его вещественные корни. Заменим уравнение (1) равносильным уравнением

x=j (x).  (2)

Выберем каким-либо способом грубо приближенное значение корня x0 и подставим его в правую часть уравнения (2). Тогда получим некоторое число

x1=j (x0).  (3)

Подставляя теперь в правую часть равенства (3) вместо x0 число x1 получим новое число x2=j (x1). Повторяя этот процесс, будем иметь последовательность чисел

xn=j (xn-1) (n=1, 2,...).    (4)

Достаточным условием сходимости будет условие:  |φ' (x)|<1.

Геометрический смысл итерационного процесса. Корнем уравнения x=φ(x) является абсцисса точки пересечения кривой y=φ(x) c  прямой y=x.

Если х0 – абсцисса нулевого приближения, то х1=φ(х0). Тогда х1 равно ординате соответствующей точки пересечения M0;φ(х0)) кривой y=φ(x) и прямой x=x0. Аналогично находятся следующие приближения.

Если эта последовательность – сходящаяся, т.е. существует предел, то, переходя к пределу в равенстве (4) и предполагая функцию j (x) непрерывной, найдем:

      С =j (x).                                                                                       (5)

Таким образом, предел x является корнем уравнения (2) и может быть вычислен по формуле (4) с любой степенью точности.

Доказано, что достаточными условиями сходимости итерационного процесса является выполнение условия | j (x)<1 для xΠ[a, ,b].

При этом процесс сходится к единственному корню С

Рисунок 1 – Геометрическая интерпретация метода простой итерации

Рассмотрим нахождение корней уравнения  методом итераций на заданном промежутке [2;3].

Для проверки применимости метода итераций найдем производную заданной функции:

Вычислим значения производной на концах отрезка:

φ'(2)=-0,47;

φ'(3)=0,39.

На заданном отрезке функция монотонно убывает и | φ' (x)|≤1 , отсюда следует, что метод итераций применим.

Вычислим х1 по формуле:

;

Затем вычисляем  хn и  хn+1  до тех пор, пока не выполнится условие:

| хn - хn+1 |<ε (ε=0,01):

Х0

Х1

|х0 – х1| <ε

2

2,388571429

-

2,388571429

2,285714286

-

2,285714286

2,3006285

-

2,3006285

2,29821571

+

    

Таким образом, найден корень уравнения, который равен 2,29821571 (при ε=0,01).

Соответственно описанной выше методике  составим блок–схему решения уравнения методом итераций:

1.2 Блок-схема программы


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

2.1 Проектирование интерфейса

Сначала создадим меню титульного  листа, на котором обозначим назначение программы. Здесь же создадим пять Unit «Ввод, решение, иллюстрация, об авторе, выход ». (Рис.2)

                

Рисунок 2 - Меню

Далее, создадим форму приложения (Рис. 3) для ввода исходных данных. На ней разместим следующие объекты:

-    Edit1, Edit2, Edit3 (для ввода промежутка (a, b)  и точности (ε));

  •  Label1, Label2, Label3 (имена для Edit1, Edit2, Edit3,);
  •  Button1 (кнопка для закрытия формы);
  •  Button2 (кнопка перехода к следующему шагу):

                             

                                         Рисунок 3 - Ввод данных

Создадим следующую форму (рис. 4), для решения данного нелинейного уравнения. На ней будут находиться:

  •  Edit1 (для вывода ответа решения);
  •  Button1 (кнопка для вычисления);
  •  Button2 (кнопка закрытия формы)

                   

                           Рисунок 4 - Решение

Следующая форма 4 предназначена для построения графика (рис 5). Оно включает в себя:

  •  Button1 (кнопка для иллюстрации метода);
  •  Button2 (кнопка закрытия формы);
  •  Сhart1 (иллюстрация);
  •  Edit1(задать шаг):

               

  Рисунок 5 - Иллюстрация

Пятая форма (рис. 6) будет представлять из себя множество Label в которых будет описано назначение программы.

        

  Рисунок 6 – Об авторе

Теперь, после того как мы создали  необходимые формы, можем приступать к созданию программного кода. В этом коде нам необходимо будет:

в Form3 – решить уравнение;

в Form4 – иллюстрировать.

2.2 Программирование вычисления

Для начала опишем переменные и функции, используемые при решении:

var

a, b, e, x0, x1: real;

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

procedure TForm3.Button1Click(Sender: TObject);

begin

a:=strtofloat(form2.edit1.text);

         b:=strtofloat(form2.edit2.text);

e:=strtofloat(form2.edit3.text);

         x1:=a;

         repeat

         x0:=x1;

         x1:=(3.8-3*sin(sqrt(x0)))/0.35;

         Until  abs(x0-x1)<e;

         Form3.Edit1.Text:=FloatToStr(x1);

end;

2.3 Визуализация метода

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

procedure TForm4.Button1Click(Sender: TObject);

var

a, b, h, x:real;

i: integer;

begin

Chart1LineSeries1.clear;

Chart1LineSeries2.clear;

a:=strtofloat(form2.edit1.text);

b:=strtofloat(form2.edit2.text);

h:=strtofloat(form4.edit1.text);

x:=a;

 While x<=b do

 Begin

 Chart1LineSeries1.SeriesColor:=clRed;

 Chart1LineSeries1.Addxy(x,(3*sin(sqrt(x))+0.35*x-3.8));

 Chart1LineSeries1.ShowLines:=True;

 Chart1LineSeries1.ShowPoints:=false;

 x:=x+h;

 end;

 x:=a;

 for i:=1 to 5 do

 Begin

 Chart1LineSeries2.AddXY(x,0);

 x:=(3.8-3*sin(sqrt(x)))/0.35;

 Chart1LineSeries2.ShowPoints:=true;

 Chart1LineSeries2.ShowLines:=false;

 sleep(1000);

 Application.ProcessMessages;

 end;            

end;

Здесь наглядно показывается нахождение корня уравнения методом итераций с определенной точностью. Основой кода построения кривой является блок – схема из теоретической части.

2.4 Вычислительный эксперимент

Запуская программу, появляется главное окно, из которого узнаем о назначении программы (Рис. 7).

               

                       Рисунок 7 - Титульный лист (Меню)

Нажав на кнопку «Ввод», открывается форма приложения (Рис. 8).

                   

                                      Рисунок 8 – Ввод

Вводим соответствующие значения интервалов и точность. Далее нажимаем на кнопку «Далее» и переносятся в форму 3 (Рис. 9) затем нажимаем на кнопку «Решить» и выводится результат:

                      

                                   Рисунок 9 - Решение

Чтобы иллюстрировать функцию, нажмем на кнопку «Иллюстрировать» (Рис. 10):

                  

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

Далее нажимаем на кнопку «Об авторе», мы увидим назначение программы, разработчика и проверяющего консультанта (рис. 11).

                 

Рисунок 11 – Об авторе

Затем нужно сравнить результат моего решения с результатом решения в математическом пакете Maxima (рис. 12), (рис. 13):

                  

Рисунок 12 - Ввод уравнения в математическом пакете Maxima

Рисунок 13 - Результат решения в математическом пакете Maxima

Таким образом, результат решенного мною уравнения совпадает с результатом в математическом пакете Maxima.


3.Заключение

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

В данной курсовой работе был рассмотрен и проверен на практике метод вычисления корней нелинейного уравнения    – метод итераций. Итогом работы является программа, реализованная в IDE Lazarus, с помощью которой вычисляются нелинейные уравнения на заданном пользователем отрезке [a, b], с наглядным графиком функции на этом же отрезке.

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

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

  1.  Акулич И. Л. Математическое программирование в примерах и задачах: Учеб. пособие для студентов эконом. спец. вузов. — М.: Высшая школа, 1986.
  2.  Алексеев В.Е. и др. Вычислительная техника и программирование. Практикум по программированию. - М.: ВШ, 1991.
  3.  Бахвалов, Н. С. Численные методы [Текст] : учеб. пособие для физ.-мат. специальностей вузов / Н. С. Бахвалов, Н. П. Жидков, Г. М. Кобельков ; под общ. ред. Н. И. Тихонова. – 2-е изд. – М. : Физматлит :     Лаб. базовых знаний ; СПб. : Нев. диалект, 2002. – 630 с.
  4.  Вержбицкий В. М. Основы численных методов: Учебник для вузов/ В. М. Вержбицкий. — М.: Высшая школа, 2002, — 840 с.: ил.
  5.  Кулагин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi. BHV 2000.
  6.  Культин Н. Delphi в задачах и примерах. - Изд.: БХВ-Петербург, 2004.- 288 с
  7.  Культин Н.Б. Программирование в Turbo Pascal и Delphi. - СПб.: BHV - Санкт-Петербург, 1998. - 240 с.
  8.  Острейковский В.А. Информатика/ Учебник для вузов. – М.: Высш. шк., 2001. – 511 с.
  9.  Соловов А.В. Проектирование компьютерных систем учебного назначения: Учебное пособие. Самара: СГАУ, 1995.  211 с
  10.  СТО УГАТУ 016-2007

׀x0-x1׀˂E

Конец

X1

X1=φ(X0)

X0=X1

X1, E

Начало


 

А также другие работы, которые могут Вас заинтересовать

84638. Анализ пассивов банка 43.69 KB
  Уставный фонд банка является основной составляющей собственных средств кредитной организации. Ему принадлежит наибольший удельный вес в собственном капитале. Поэтому важным направлением анализа собственного капитала банка является изучение уставного фонда.
84639. Основи місцевого самоврядування 84.5 KB
  Основи місцевого самоврядування Конституційно правові основи місцевого самоврядування в Україні. Матеріальна основа місцевого самоврядування. Фінансова основа місцевого самоврядування. Місцеві бюджети та позабюджетні кошти місцевого самоврядування.
84640. Сучасна система місцевого самоврядування в Україні та її елементи 145 KB
  Сучасна система місцевого самоврядування в Україні та її елементи Поняття і система місцевого самоврядування. Територіальна громада основний елемент системи місцевого самоврядування. Поняття та види органів місцевого самоврядування. Представницькі органи місцевого самоврядування сільські селищні міські ради.
84641. Основное и дополнительное сырье хлебопекарного производства, хранение тарное и бестарное. Виды и сорта муки. Значение химического состава муки в технологическом процессе 31.15 KB
  На всех этапах производственного процесса осуществляется сложный комплекс коллоидных, биохимических, микробиологических процессов, в результате которых мука превращается в хлеб - высококачественный продукт, обладающий вкусовыми свойствами и структурой, обеспечивающей его хорошую усвояемость.
84642. Хлебопекарные дрожжи, их микробиологическая и химическая характеристика. Виды хлебопекарных дрожжей, хранение и подготовка к производству. Сущность активации дрожжей 20.47 KB
  Дрожжи хлебопекарные являются основным видом сырья для производства хлеба и хлебобулочных изделий. Технологическая и функциональная роль дрожжей заключается в биологическом разрыхлении теста диоксидом углерода выделяющимся в процессе спиртового брожения придании тесту определённых реологических...
84643. Жидкие дрожжи и их технологическое значение, микрофлора. Разводочный и производственный циклы приготовления, основные схемы приготовления, их сравнительная оценка. Показатели качества жидких дрожжей 22.62 KB
  Показатели качества жидких дрожжей Понятие о жидких дрожжах и их технологическом значении Жидкие дрожжи используются в отечественном хлебопечении в качестве биологического разрыхлителя при производстве хлеба из пшеничной муки смеси пшеничной и ржаной полностью приготовленного на жидких дрожжах...
84644. Хлебопекарные свойства пшеничной муки и факторы, их характеризующие. Газообразующая способность пшеничной муки и факторы, ее обусловливающие 24.64 KB
  Хлебопекарные свойства пшеничной муки и факторы их характеризующие. Газообразующая способность пшеничной муки и факторы ее обусловливающие. Сила пшеничной муки и факторы ее определяющие. Технологическое значение силы муки.
84645. Хлебопекарные свойства ржаной муки и показатели, их характеризующие. Особенности углеводно-амилазного и белково-протеиназного комплексов ржаной муки. Автолитическая активность ржаной муки и методы ее определения 23.39 KB
  Хлебопекарные свойства ржаной муки и показатели их характеризующие. Особенности углеводно-амилазного и белково-протеиназного комплексов ржаной муки. Автолитическая активность ржаной муки и методы ее определения. Химический состав ржаной муки В хлебопекарном производстве используется ржаная сортовая мука...
84646. Дополнительное сырье хлебопекарного производства. Соотношение и роль в тесте отдельных видов сырья 39.13 KB
  Для технологических и хозяйственных нужд хлебозаводы используют обычно воду из городского питьевого водопровода. Для бесперебойного снабжения водой и создания постоянного напора во внутренней водопроводной сети устанавливают специальные баки с холодной и горячей водой.