Численное решение и программная реализация задачи о провисании цепи

Автор работы: Пользователь скрыл имя, 10 Января 2013 в 10:46, курсовая работа

Краткое описание

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

Содержание

Введение
1.Численные методы решений систем нелинейных уравнений
1.Решение систем нелинейных уравнений
2.Метод Ньютона–Рафсона
3Метод спуска
4.Метод простой итерации и метод Зейделя
2.Задача о провисании цепи
1.Постановка задачи
2.Вывод уравнения цепной линии
3.Вычисление длины плоской линии
3 Программная реализация решений задач
3.1 Программная реализация решения задачи о провисании цепи
3.1.1 Описание программы
3.1.2 Тестирование программы
3.2 Программная реализация метода Ньютона – Рафсона
3.2.1 Описание программы
3.2.2 Тестирование программы
Заключение
Список использованных источников и литературы
Приложение А Листинг программы «Задача о провисании цепи»
Приложение Б Листинг программы «Метод Ньютона – Рафсона»

Вложенные файлы: 1 файл

Габдрахимова М41.docx

— 410.50 Кб (Скачать файл)

 

- антиградиент функции . Таким образом, из семейства методов (1.3.2) выделяем градиентный метод

 

                                     .                          (1.3.4)

 

Оптимальный шаг в направлении  антиградиента - это такой шаг, при котором значение - наименьшее среди всех других значений Ф(х,у) в этом фиксированном направлении, т.е. когда точка является точкой условного минимума. Следовательно, можно рассчитывать на наиболее быструю сходимость метода (1.3.4). Если полагать в нем

 

            .          (1.3.5) 

   

Такой выбор шагового множителя, называемый исчерпывающим спуском, вместе с формулой (1.3.4) определяет метод наискорейшего спуска.

Геометрическая интерпретация  этого метода хорошо видна из рисунков (1.3.1), (1.3.2). Характерны девяностоградусные изломы траектории наискорейшего спуска, что объясняется исчерпываемостью спуска и свойством градиента (а значит, и антиградиента) быть перпендикулярным к линии уровня в соответствующей точке.

Наиболее типичной является ситуация, когда найти точно (аналитическими методами) оптимальное значение не удается. Следовательно, приходится делать ставку на применение каких - либо численных методов одномерной минимизации и находить  в (1.3.3) лишь приближенно.

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

Зачастую успешной является такая стратегия градиентного метода, при которой шаговый множитель  в (1.3.3) берется либо сразу достаточно малым постоянным, либо предусматривается его уменьшение, например, делением пополам для удовлетворения условию релаксации на очередном шаге. Хотя каждый отдельный шаг градиентного метода при этом, вообще говоря, далек от оптимального, такой процесс по числу вычислений функции может оказаться более эффективным, чем метод наискорейшего спуска.

 

1.4 Метод простой итерации и метод Зейделя

 

При использовании метода простой итерации система уравнений (1.1) приводится к эквивалентной системе специального вида

 

 

Если выбрано некоторое  начальное приближение  последующие приближения в методе простой итерации находятся по формулам11:

    (1.4.1)

 

Если последовательность векторов сходится, то она сходится к решению

Достаточное условие сходимости итерационного процесса (1.4.1) формулируется следующим образом:

Теорема.12 Пусть вектор – функция непрерывна, вместе со своей производной

 

,

 

в ограниченной выпуклой замкнутой  области и 

 

 

где q – постоянная. Если и все последовательные приближения также содержатся в G, то процесс итерации (1.4.1) сходится к единственному решению уравнения в области G и справедливы оценки погрешности (∀k ∈N):

 

 

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

 

 

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

 

 

 

 

 

 

2 ЗАДАЧА О ПРОВИСАНИИ ЦЕПИ

 

2.1 Постановка задачи

 

Имеется цепь (однородная, гибкая, нерастяжимая, тяжелая нить) фиксированной длинны S подвешенная на двух «столбах» высотою  и  отстоящих друг от друга на расстоянии (пролет) – рисунок 1. Необходимо определить величину   – минимальное расстояние («зазор») цепи от земли и величину – "отстояние" этого зазора от первого столба, на котором у нас будет зафиксирована ось y. Ось х «лежит на земле».

 

 

Рисунок 2.1 – Схема задачи о провисании цепи

 

Если принять, что оси декартового  графика, отображающего формулу цепной линии, пересекаются в самой нижней точке, то формула цепной линии будет имеет такой общий вид:

 

.

 

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

2.2 Вывод уравнения цепной  линии

 

Цепная линия – плоская  трансцендентная кривая, форму которой  принимает под действием силы тяжести однородная, гибкая, не растяжимая, тяжелая нить (цепь) с закрепленными концами.

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

 

 

Рисунок 2.2 – Проекция на оси Оx и Oy

 

В точке А на нить действует  натяжение , направленное по касательной к кривой. Обозначим через  и его составляющие по осям координат. Соответственно в точке В имеется натяжение  с составляющими и . Кроме того, на элемент АВ действует сила тяжести  направленная вертикально вниз и равная по абсолютной величине , где – дифференциал дуги АВ, а – вес единицы длины нити. Для того, чтобы система сил находилась в равновесии, необходимо и достаточно, чтобы сумма проекций на каждую ось всех действующих сил была равна нулю. Приравнивая к нулю проекцию сил на ось Ох, получим:

 

 или 

 

т.е. горизонтальная составляющая натяжения нити есть величина постоянная.

Проецируя силы на ось Оу, получим:

 

.

 

С другой стороны, обозначив через «» угол, образованный касательной к кривой в точке А с осью Ох, получим:

 

 

 

Продифференцируем последнее  равенство по , учитывая, что :

 

 

 

Учитывая, что  и , получим следующее дифференциальное уравнение:

 

 

 

где обозначено .  Найдем общее решение данного уравнения. Для этого производим замену: . Тогда  и уравнение примет вид: Интегрируя последнее равенство по , получим:  . Следовательно   и окончательно:

 

 

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

, получим искомое  уравнение линии провисания нити.13

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

 

 

 

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

 

 

 

Если принять за начало координат нижнюю точку цепной линии, то и окончательно уравнение цепной линии примет вид:

 

 

 

Если мы будем применять формулу  цепной линии к нашей задаче (рисунок 2.2), где оси декартового графика пересекаются не в нижней точке цепи, а у основания левого столба и тем самым сдвинуты на величины   (по горизонтали) и  (по вертикали), то формула цепной линии примет вид:

 

 

 

 

 С этой формулой мы и будем дальше работать.

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

 

2.3 Вычисление длины плоской  линии

 

Пусть линия  представляет собой график функции , рассматриваемый при   Будем предполагать, что функция  имеет на  непрерывную производную. Наша цель  найти длину линии .

Рассмотрим разбиение   отрезка    точками   и отметим соответствующие точки   на графике. На каждом отрезке разбиения приближённо заменим дугу графика   на хорду .

 

 

Рисунок 2.3.1 – Разбиение отрезка    

 
Длина этой хорды по теореме Пифагора равняется, которая изображена на рисунке (2.3.2) и вычисляется по формуле:

 

.

 

 

Рисунок 2.3.2 – Определение хорды 

Преобразуем это выражение к виду

 

(

 

По теореме Лагранжа, на интервале ( найдётся такая точка , что

 

.

 

Поэтому получаем

 

(

 

Рассмотрим теперь точки , , как отмеченные точки и получим размеченное разбиение. Соответствующая этому разбиению суммарная длина ломаной  равна:

 

 

Будем считать эту длину приближённым значением длины линии , а предел этой величины при неограниченном измельчении разбиения  по определению равным длине линии :

 

 

 

Заметим теперь, что величина:

 

 

 

 

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

 

.

 

  1. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ РЕШЕНИЙ ЗАДАЧ
    1. Программная реализация решения задачи о провисании цепи

 

3.1.1 Описание программы

 

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

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

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

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

:= Единственный оператор присвоения

Условные операторы IF. . THEN – позволяет определить выполняются ли некоторые условия и в зависимости выполнить тот или иной код.

IF –> выражение –> THEN –>  оператор –> ELSE –> оператор  –> END.

 

3.1.2 Тестирование программы

 

Данные значения:

  • высота первого столба – ;
  • высота второго столба – ;
  • расстояние от до ; (пролет) – ;
  • длина цепи подвешенной на двух столбах и – .

Цепь провисает под  действием тяжести, но величины свободного падения в формуле провисания цепи нет. Это значит, что любая цепь одинаково провисает (тяжелая стальная и тонкая нитка). Поэтому задача о провисании цепи сводится к поиску значений констант Для нахождения сотавим систему трех нелинейных алгебраических уравнений:

 

(3.1.1)

 

Подставив наши данные в систему (3.1.1) получим новую систему уравнений:

 

(3.1.2)

 

В системе (3.1.2) вычислив интеграл:

 

,

 

получаем  или , т.е.  .

Система (3.1.2) приводится к виду:

 

(3.1.3)

Подставляя  уравнение в первое и второе уравнение системы (3.1.3) вместо получаем:

 

 

 

Теперь подставим значение во второе уравнение системы:

 

 

 

отсюда  =­29.

Подставив значение в первое и второе уравнение системы получаем:

 

, .

 

На рисунке (3.1) представлены вычисления системы нелинейного уравнения.

 

Рисунок 3.1 – Решение системы нелинейного уравнения

 

    1. Программная реализация метода Ньютона – Рафсона

 

3.2.1 Описание программы

 

 

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

Информация о работе Численное решение и программная реализация задачи о провисании цепи