44419

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

Курсовая

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

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

Русский

2013-11-12

3.16 MB

69 чел.

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

Начало


 

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

73792. Система основных направлений деятельности практического психолога и их общая характеристика 15.12 KB
  В результате формируется концепция в которой отражаются представления психологов о наиболее существенных особенностях людей определенного типа и исходя из этого понимания обосновываются способы психологической помощи им. С какой бы позиции помощи содействия поддержки или сопровождения ни рассматривать деятельность практического психолога в любом случае можно говорить о пяти основных направлениях этой деятельности...
73793. Психологическое просвещение, как одно из направлений деятельности практического психолога 16.31 KB
  Важнейшая задача психологического просвещения – расширение психологических знаний и повышение психологической культуры людей. Первая задача психологического просвещения направлена на то чтобы обеспечить людям возможность пользоваться психологическими знаниями и технологиями: сформировать у них соответствующие желания и понимание того чем им может помочь психология готовность работать над собой и своим поведением с помощью психологических методик и техник. Вторая задача – информирование по вопросам психологических знаний. Иногда знания...
73794. Психологическая диагностика, как одно из направлений деятельности практического психолога 17.3 KB
  Психодиагностика осуществляется на основе: объективных показателей деятельности реальной или моделируемой в эксперименте тесте; субъективных показателей сведений сообщаемых о себе самом человеком Инструментом для оценивания в работе психолога-диагноста являются его профессиональные психологические наблюдения беседы психологические тесты...
73795. Психологическое консультирование, как одно из направлений деятельности практического психолога 17.88 KB
  Оно включает в себя и профконсультирование и педагогическое и промышленное консультирование и консультирование руководителей и многое другое. Групповое консультирование может проводиться с семьей производственной группой или группой людей не связанных друг с другом в повседневной жизни но имеющих общие проблемы. Наиболее частыми вариантами работы при групповом консультировании являются семейное консультирование работа по разрешению межличностных конфликтов и проблемных ситуаций в коллективах.
73796. Психотерапия как одно из направлений деятельности практического психолога 17.42 KB
  Обычно такая психологическая помощь обозначается понятием психотерапия. Психотерапия это комплексное лечебное вербальное и невербальное воздействие на эмоции суждения самосознание человека при психических нервных и психосоматических заболеваниях. Чаще всего психотерапия обращена к личностным проблемам ставящим человека на грань психических нарушений или даже переводящим за эту грань с чем связаны тягостные переживания нарушения социального поведения изменения сознания и самосознания и пр.
73797. Психопрофилактика, как одно из направлений деятельности практического психолога 17.39 KB
  Врачи часто недооценивают значение работы медицинских психологов в клинике и активно ее не принимают. Проявляется взаимное непонимание врачей и психологов. Заключения психологов строятся на использовании методов несопоставимых по своей точности с диагностическими медицинскими исследованиями. Сейчас большинство медицинских психологов работает в области психиатрии.
73798. Психокоррекционная и развивающая работа, как одно из направлений деятельности практического психолога 18.96 KB
  Термин коррекция психического развития как обозначение определенной формы психологической деятельности впервые возник в дефектологии применительно к вариантам аномального развития. В психологии психокоррекция стала трактоваться как совокупность мер психологического воздействия направленных на доформирование отсутствующих психических...
73799. Программирование разветвлений 524 KB
  Блок-схема алгоритма Условные операторы Для программирования разветвляющейся структуры на Фортране предусмотрено несколько видов условных операторов: условный логический оператор условный блочный оператор условный структурный оператор. В записи алгоритма эти операторы заменяют шаг ЕСЛИ в блокс-хемах. В этих операторах условие записывается в виде логического выражения которое может принимать лишь два значения...
73800. Философия Нового Времени 94.5 KB
  Развитие принципов научного познания в европейской философии XVII века Философия нового времени. Гоббс: единство эмпирических и рациональных методов познания. Развитие принципов научного познания в европейской философии XVII века Философия нового времени Общественный прогресс определяемый глубокими экономическими причинами все в большей степени выявляет необходимость развития научного познания и науки в целом. Именно в это время создаются первые системы научного познания всесторонне обсуждаются возможности человеческого разума...