44419

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

Курсовая

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

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

Русский

2013-11-12

3.16 MB

68 чел.

                                   Уразаев Вагиз Хафизович    МАС-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

Начало


 

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

42843. Расчет усилителя звуковой частоты на основе интегральной микросхемы TDA 2050 390.69 KB
  При выборе интегральной микросхемы основного усилительного каскада пришлось немного отойти от технического задания в виду возможности обеспечения данной микросхемой верхней граничной частоты 20кГц и нижней граничной частоты 20 Гц, что в свою очередь только улучшит качество воспроизводимого звука.
42844. Усилитель звуковой частоты мощности тембров и громности 419.17 KB
  Схема усилителя Перечень элементов Заключение Список литературы Техническое задание Выходная мощность Pвых 35 Вт Сопротивление нагрузки Rн 4 Ом Входное напряжение Uвх 20мВ Сопротивление источника сигнала Rис 110 Ом...
42845. Технологический проект холодного цеха Столовой при промышленном предприятии на 210 мест 938 KB
  Общественное питание представляет собой отрасль народного хозяйства, основу которой составляют предприятия, характеризующиеся единством форм организации производства и обслуживания потребителей и различающихся по типам специализации.
42846. Разработка базы данных пациентов районной поликлиники 6.88 MB
  Описание таблиц и логической структуры базы данных. Схема данных. 29 Введение: Целью данной курсовой является создание базы данных для работников регистратуры поликлиники.
42847. Г. Маркузе и Франкфуртская социологическая школа 72.11 KB
  Среди центров и школ западной философии, которые на протяжении целых десятилетий сохраняли и до сих пор еще сохраняют заметное влияние на философию, социальную мысль всего мира, надо особо выделить так называемую франкфуртскую школу. Группа талантливых, а в политическом отношении радикально-критически настроенных философов, социологов, экономистов, историков, литераторов объединилась вокруг основанного в 1923 г. при Франкфуртском университете Института социальных исследований.
42848. Габаритний розрахунок монокуляра з вибором оптичної схеми об’єктива і окуляра 880.79 KB
  До таких призм можно віднести призми АкР90 Лемана ВкЛ0 Шмідта ВкР45 Систему двох призм : Аббе Ак0 Пехана Пк0 Порро Іго роду Систему трьох призм : Порро ІІго роду. Призма – оптична деталь що має у своєму складі заломлюючі та відбиваючі поверхні які утворюють між собою двогранні кути Позначають призми двома великими літерами і числом яке вказує на кут відхилення осьового променя. Призми які є відбиваючими характеризуються коефіцієнтом: c = d D d – довжина ходу осьового променя; D – діаметр світлового пучка...
42849. Маркетингове дослідження компанії MTI 592.77 KB
  MTI українська компанія багатопрофільний ІТхолдинг один з найбільших гравців ринку інформаційних технологій України яка була заснована у 1991 році. Фактори макро і мікро середи в якому працює MTI. Компанія MTI є одним з найбільш великих в Україні постачальників комп'ютерної і офісної техніки.
42850. Розробка бізнес-плану діяльності підприємства 228.87 KB
  Організаційний план, планування показників по праці. Розраховані такі показники: середня тривалість щорічної відпустки, баланс робочого часу одного середньооблікового робітника, планова тривалість робочої зміни, корисний фонд робочого часу одного виробничого робітника на плановий рік, чисельність робітників на нормованих роботах та загальну чисельність працівників
42851. Розрахунок та оптиматизація характеристик системи електрозв’язку 117.29 KB
  1Перетворення аналогового сигналу в сигнал ІКМ5 2.3 Кодування сигналу та розробка коректую чого кодуза варіантом.4 Опис маніпуляції сигналу. В таблиці застосовані наступні позначення: Рс потужність сигналу Вт; Рс Рш.