47719 (Нахождение корней уравнения методом простой итерации (ЛИСП-реализация))

2016-07-31СтудИзба

Описание файла

Документ из архива "Нахождение корней уравнения методом простой итерации (ЛИСП-реализация)", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "47719"

Текст из документа "47719"

СОДЕРЖАНИЕ

Введение

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

2. Математические и алгоритмические основы решения задачи

2.1 Описание метода

2.2 Геометрическая интерпретация

3. Функциональные модели и блок-схемы решения задачи

4. Программная реализация решения задачи

5. Пример выполнения программы

Заключение

Список использованных источников и литературы

                  1. ВВЕДЕНИЕ

Методы решения линейных и квадратных уравнений были известны еще древним грекам. Решение уравнений третьей и четвертой степеней были получены усилиями итальянских математиков Ш. Ферро, Н. Тартальи, Дж. Картано, Л. Феррари в эпоху Возрождения. Затем наступила пора поиска формул для нахождения корней уравнений пятой и более высоких степеней. Настойчивые, но безрезультатные попытки продолжались около 300 лет и завершились благодаря работам норвежского математика Н. Абеля. Он доказал, что общее уравне6ие пятой и более высоких степеней неразрешимы в радикалах. Решение общего уравнения n-ой степени

a0xn+a1xn-1+…+an-1x+an=0, a00

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

Для неалгебраических уравнений типа

х–cos(x)=0

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

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

Если записать уравнение в виде

f(x) =0,

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

Это итерационный численный метод нахождения корня (нуля) заданной функции.

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

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

Дано уравнение:

.

Требуется решить это уравнение, точнее, найти один из его корней (предполагается, что корень существует). Предполагается, что F(X) непрерывна на отрезке [A;B].

Входным параметром алгоритма, кроме функции F(X), является также начальное приближение - некоторое X0, от которого алгоритм начинает идти.

Пример.

Найдем корень уравнения

.

Рисунок 1. Функция

Будем искать простой корень уравнения, находящийся на отрезке локализации [-0.4,0].

Приведем уравнение к виду x=f(x), где

.

Проверим условие сходимости:

.

Рисунок 2. График производной

Максимальное по модулю значение производной итерационной функции достигается в левом конце отрезка

.

.

Выполним 3 итерации по расчетной формуле

x= (x),

1 итерация .

2 итерация .

3 итерация .

2. Математические и алгоритмические основы решения задачи

2.1 Описание метода простых итераций

Рассмотрим уравнение

f(x)=0 (2.1)

с отделенным корнем X[a, b]. Для решения уравнения (2.1) методом простой итерации приведем его к равносильному виду:

x=φ(x). (2.2)

Это всегда можно сделать, причем многими способами. Например:

x=g(x) · f(x) + x ≡ φ(x),

где g(x) - произвольная непрерывная функция, не имеющая корней на отрезке [a,b].

Пусть x(0) - полученное каким-либо способом приближение к корню x (в простейшем случае x(0)=(a+b)/2). Метод простой итерации заключается в последовательном вычислении членов итерационной последовательности:

x(k+1)=φ(x(k)), k=0, 1, 2, ... (2.3)

начиная с приближения x(0).

УТВЕРЖДЕНИЕ: 1 Если последовательность {x(k)} метода простой итерации сходится и функция φ непрерывна, то предел последовательности является корнем уравнения x=φ(x)

ДОКАЗАТЕЛЬСТВО: Пусть

. (2.4)

Перейдем к пределу в равенстве x(k+1)=φ(x(k)) Получим с одной стороны по (2.4), что а с другой стороны в силу непрерывности функции φ и (2.4)

.

В результате получаем x*=φ(x*). Следовательно, x* - корень уравнения (2.2), т.е. X=x*.

Чтобы пользоваться этим утверждением нужна сходимость последовательности {x(k)}. Достаточное условие сходимости дает:

ТЕОРЕМА 2.1: (о сходимости) Пусть уравнение x=φ(x) имеет единственный корень на отрезке [a,b] и выполнены условия:

1) φ(x) C1[a,b];

2) φ(x) [a,b] " x [a,b];

3) существует константа q > 0: | φ '(x) | ≤ q < 1 x [a,b]. Tогда итерационная последовательность {x(k)}, заданная формулой x(k+1) = φ(x(k)), k=0, 1, ... сходится при любом начальном приближении x(0) [a,b].

ДОКАЗАТЕЛЬСТВО: Рассмотрим два соседних члена последовательности {x(k)}: x(k) = φ(x(k-1)) и x(k+1) = φ(x(k)) Tак как по условию 2) x(k) и x(k+1) лежат внутри отрезка [a,b], то используя теорему Лагранжа о средних значениях получаем:

x (k+1) - x (k) = φ(x (k)) - φ(x (k-1)) = φ '(c k )(x (k) - x (k-1)),

где c k (x (k-1), x (k)).

Отсюда получаем:

| x (k+1) - x (k) | = | φ '(c k ) | · | x (k) - x (k-1) | ≤ q | x (k) - x (k-1)| ≤

≤ q ( q | x (k-1) - x (k-2) | ) = q 2 | x (k-1) - x (k-2) | ≤ ... ≤ q k | x (1) - x (0) |. (2.5)

Рассмотрим ряд

S = x (0) + ( x (1) - x (0) ) + ... + ( x (k+1) - x (k) ) + ... . (2.6)

Если мы докажем, что этот ряд сходится, то значит сходится и последовательность его частичных сумм

Sk = x (0) + ( x (1) - x (0) ) + ... + ( x (k) - x (k-1) ).

Но нетрудно вычислить, что

Sk = x (k)). (2.7)

Следовательно, мы тем самым докажем и сходимость итерационной последовательности {x(k)}.

Для доказательства сходимости pяда (2.6) сравним его почленно (без первого слагаемого x(0)) с рядом

q 0 | x (1) - x (0) | + q 1 |x (1) - x (0)| + ... + |x (1) - x (0)| + ..., (2.8)

который сходится как бесконечно убывающая геометрическая прогрессия (так как по условию q < 1). В силу неравенства (2.5) абсолютные величины ряда (2.6) не превосходят соответствующих членов сходящегося ряда (2.8) (то есть ряд (2.8) мажорирует ряд (2.6). Следовательно ряд (2.6) также сходится. Tем самым сходится последовательность {x(0)}.

Получим формулу, дающую способ оценки погрешности

|X - x (k+1)|

метода простой итерации.

Имеем

X - x(k+1) = X - Sk+1 = S- Sk+1 = (x(k+2) - (k+1) ) + (x(k+3) - x(k+2) ) + ... .

Следовательно

|X - x(k+1)| ≤ |x(k+2) - (k+1) | + |x(k+3) - x(k+2) | + ... ≤ qk+1 |x(1) - x(0) | + qk+2 |x(1) - x(0) | + ... = qk+1|x(1) - x(0) | / (1-q).

В результате получаем формулу

|X - x(k+1)| ≤ qk+1|x(1) - x(0) | / (1-q). (2.9)

Взяв за x(0) значение x(k), за x(1) - значение x(k+1) (так как при выполнении условий теоремы такой выбор возможен) и учитывая, что при имеет место неравенство qk+1 ≤ q выводим:

|X - x(k+1)| ≤ qk+1|x(k+1) - x(k) | / (1-q) ≤ q|x(k+1) - x(k) | / (1-q).

Итак, окончательно получаем:

|X - x(k+1)| ≤ q|x(k+1) - x(k) | / (1-q). (2.10)

Используем эту формулу для вывода критерия окончания итерационной последовательности. Пусть уравнение x=φ(x) решается методом простой итерации, причем ответ должен быть найден с точностью ε, то есть

|X - x(k+1)| ≤ ε.

С учетом (2.10) получаем, что точность ε будет достигнута, если выполнено неравенство

|x(k+1)-x(k)| ≤ (1-q)/q. (2.11)

Таким образом, для нахождения корней уравнения x=φ(x) методом простой итерации с точностью нужно продолжать итерации до тех пор, пока модуль разности между последними соседними приближениями остается больше числа ε(1-q)/q.

ЗАМЕЧАНИЕ 2.2: В качестве константы q обычно берут оценку сверху для величины

.

2.2 Геометрическая интерпретация

Рассмотрим график функции . Это означает, что решение уравнения и - это точка пересечения с прямой :

Рисунок 3.

И следующая итерация - это координата x пересечения горизонтальной прямой точки с прямой .

Рисунок 4.

Из рисунка наглядно видно требование сходимости . Чем ближе производная к 0, тем быстрее сходится алгоритм. В зависимости от знака производной вблизи решения приближения могут строится по разному. Если , то каждое следующее приближение строится с другой стороны от корня:

Рисунок 5.

3. Функциональные модели и блок-схемы решения задачи

Функциональные модели и блок-схемы решения задачи представлены на рисунке 6, 7.

Используемые обозначения:

  • FN, F – уравнение для поиска корня;

  • X, START – начальное значение;

  • E, PRECISION – точность вычисления;

  • N, COUNT_ITER –количество итераций.

Рисунок 6 – Функциональная модель решения задачи для функции SIMPLE_ITER

Рисунок 7 – Функциональная модель решения задачи для поиска корня уравнения методом простой итерации

4. Программная реализация решения задачи

Файл SIMPLE_ITER.txt

;ФУНКЦИЯ, РЕАЛИЗУЮЩАЯ МЕТОД ПРОСТЫХ ИТЕРАЦИЙ

(DEFUN SIMPLE_ITER (N E X FN)

(COND

((AND ( (ABS (- (FUNCALL FN X) X)) (* E (FUNCALL FN X)))) X)

(T (SIMPLE_ITER (- N 1) E (FUNCALL FN X) FN))

)

)

;ПОДГРУЖАЕМ УРАВНЕНИЕ

(LOAD "D:\\FUNCTION.TXT")

;РАССЧИТЫВАЕМ НАЧАЛЬНОЕ ПРИБЛИЖЕНИЕ К КОРНЮ

(SETQ START (/ (- (CADR INTERVAL) (CAR INTERVAL)) 2))

;ВЫЧИСЛЯЕМ КОРЕНЬ

(SETQ ROOT (SIMPLE_ITER COUNT_ITER PRECISION START (FUNCTION F)))

;ОТКРЫВЕМ ФАЙЛ ДЛЯ ЗАПИСИ

(SETQ OUTPUT_STREAM (OPEN "D:\\ROOT.TXT" :DIRECTION :OUTPUT))

;ПЕЧАТАЕМ В ФАЙЛ КОРЕНЬ

(PRINT 'ROOT OUTPUT_STREAM)

(PRINT ROOT OUTPUT_STREAM)

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее