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

Начало


 

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

43100. Построить стационарные характеристики (АЧХ и ФЧХ) и переходную характеристику цепи 566.5 KB
  Для нахождения стационарных и переходных характеристик цепи целесообразно рассчитать операторную передаточную функцию цепи К(р), т. е. передаточную функцию в зависимости от обобщенной частоты
43101. Проектирование самолёта транспортного класса 3.89 MB
  Задача проектирования состоит в разработке конструкции нового самолета и его составляющих элементов. На начальной стадии проектирования была произведена разработка общего вида самолета. Для этого проведено ознакомление с основными тактико-техническими требованиями (ТТТ), предъявленными к самолету, летно-техническими характеристиками (ЛТХ), схемами, основными параметрами, общим устройством самолетов и агрегатов, силовой установкой (СУ), увязкой основных элементов агрегатов самолета, правилами выполнения чертежей общего вида самолета и общего устройства его агрегатов.
43102. Проект системы кондиционирования офиса 961.5 KB
  Период года теплый холодный Параметры А: температура воздуха удельная энтальпия скорость ветра Параметры Б: температура воздуха удельная энтальпия скорость ветра Экстремальные температуры Таблица 1. Оптимальные и допустимые нормы температуры относительной влажности и скорости движения воздуха по ГОСТ 3049496 Период года Температура воздуха Относительная влажность Скорость движения оптимальная допустимая оптимальная допустимая не более...
43103. Розробка программи реалізації оптимізації виробництва 312.5 KB
  Симплексметод один з основних методів розвязання задач оптимізації. Крім того на основі цього методу будуються і інші підходи методів оптимізації такі як: модифікований симплексметод двоїстий симплекс метод та інші. В даному курсовому проекті розвязання та перевірка симплексметоду буде розглянута на прикладі задачи максимізації виробництва продукції.4 Формулювання алгоритму методу Симплексметод розвязання задачі лінійного програмування заснований на переході від одного опорного плану до іншого при якому значення цільової функції...
43104. Расчёт электропривода системы Г-Д 1.29 MB
  Номер варианта Закон изменения момента сопротивления рабочей машины Мсм Нм Момент инерции рабочей машины Jм в долях от момента инерции двигателя кгм2 Тип двигателя и способ его питания 5 250060  40 Постоянного тока от тиристорного преобразователя Примечание: Характер момента сопротивления реактивный. Предварительная мощность двигателя Предварительная мощность двигателя рассчитывается по нагрузочной диаграмме и тахограмме рабочей машины. При этом можно использовать формулу: кВт где коэффициенты учитывающие...
43105. Разработка печатного узла 2.69 MB
  Монтаж на поверхность это крепление и монтаж компонентов специальной конструкции непосредственно на поверхность печатной платы. Взамен их для присоединения к плате используются металлизированные торцы корпусов компонентов или настолько миниатюрные выводы что они в незначительной мере увеличивают площадь платы для монтажа такого компонента. В общем виде проектирование конструкции печатного узла и технологии его изготовления в данной курсовой работе состоит из следующих глав: анализ технического задания; разработка конструкции узла;...
43106. Моделирование современной котельной установки 328.5 KB
  При выборе модели необходимо учитывать: модель должна наиболее полно отражать характер потоков вещества и энергии при одновременно достаточно простом математическом описании; параметры модели могут быть определены экспериментальным или другим способом; следует принимать во внимание что с изменением гидродинамического режима системы могут изменяться виды моделей; тип математической модели существенно влияет на вид уравнений используемых для построения математического описания. При составлении математической модели: устанавливаются...
43107. Электрический привод системы “генератор-двигатель” 1.02 MB
  Необходимый диапазон регулирования скорости вращения рабочей машины. Плавный пуск, торможение и реверс рабочей машины. Заданное быстродействие. Минимум потерь энергии в переходных процессах. Возможность изменения направления вращения механизма. Режим рекуперативного торможения...