Решение систем нелинейных уравнений методом простой итерации Ключевые слова: система нелинейных уравнений, метод простой итерации, непрерывные частные производные, начальное значение. Объект исследования – процесс решения систем нелинейных уравнений методом простой итерации. Предмет исследования – вычислительный алгоритм метода простой итерации в различных средах. Цель исследования – решить систему нелинейных уравнений методом простой итерации и реализовать данный
метод в различных программных средах. Методы исследования: • теоретический анализ материала по вычислительным методам и компьютерному моделированию; • система программирования Turbo Pascal; • системы символьной математики Mathematica, MathCad, Matlab; • табличный процессор Microsoft Excel. Значимость полученных результатов: Для решения данных систем нелинейных уравнений использовался метод
простой итерации. Этот метод отличается от других тем, что по сравнению с другими методами, он является одним из наиболее простых методов определения корней системы нелинейных уравнений. В процессе создания курсовой был разработан алгоритм решения поставленной задачи. По этому алгоритму на языке Турбо Паскаль составлена и отлажена программа. Также был реализован вычислительный алгоритм метода простой итерации в средах, таких как:
MathCad, Mathematica, Matlab, MS Excel. Анализ результатов показывает, что программы работают правильно и верно находят корни системы нелинейных уравнений. ОГЛАВЛЕНИЕ ВВЕДЕНИЕ 5 ГЛАВА 1 Математические и алгоритмические основы решения задачи 1.1 Решение систем нелинейных уравнений методом простой итерации 1.2 Алгоритм метода простой итерации при решении систем нелинейных уравнений 13
ГЛАВА 2 Программная реализация решения систем нелинейных уравнений методом простой итерации 2.1 Программная реализация решения систем нелинейных уравнений методом простой итерации в Turbo Pascal 2.2 Программная реализация решения систем нелинейных уравнений методом простой итерации в Mathematica 2.3 Программная реализация решения систем нелинейных уравнений методом простой итерации в MathCad 2.4 Программная реализация решения систем нелинейных уравнений методом простой итерации
в MatLab 2.5 Программная реализация решения систем нелинейных уравнений методом простой итерации в Microsoft Excel 23 ЗАКЛЮЧЕНИЕ 25 СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 26 ПРИЛОЖЕНИЯ 27 ВВЕДЕНИЕ Решение систем нелинейных уравнений является в общем случае задачей несравненно более сложной, нежели решение систем линейных уравнений. Не существует методов, которые гарантировали бы успех решения любой такой задачи.
Как и для отдельных уравнений, наибольшую проблему представляет задача отделения решений (корней). Для системы уравнений с п неизвестными необходимо, во-первых, понять, сколько у нее решений, а во-вторых, выделить области n-мерного пространства, в каждой из которых есть одно и только одно решение, лишь после этого можно говорить о нахождении решений с заданной точностью (оцениваемой в соответствии с используемой метрикой). Для отделения корней общих методов, гарантирующих успех, не существует.
Для системы с двумя неизвестными можно пытаться использовать геометрические построения. В реальных задачах, являющихся этапами моделирования, исследователь обычно догадывается, где примерно находятся корни системы (или по крайней мере тот корень, который его интересует из содержательных условий модели). Описанные ниже приемы, явно или неявно, исходят из того, что задача отделения корней решена и имеется достаточно малая часть n-мерного пространства, в которой находится корень, надлежащий уточнению.
Отметим, что уточнение корней ведется почти исключительно итерационными методами. Часто для решения линейных и нелинейных задач алгебры используют приближенные методы, позволяющие найти корни системы с заданной точностью. Эти методы представляют собой сходящийся итерационный процесс. Они не дают точного решения задачи, однако отличаются несколько большим быстродействием и порой из-за ошибок округления даже при использовании чисел с двойной точностью могут дать ответ точнее, нежели
полученный прямыми методами[1]. Цель работы: решить систему нелинейных уравнений методом простой итерации и реализовать данный метод в различных программных средах. Достижение поставленной цели потребовало решение следующих задач: • изучить метод простой итерации, применяемый при решении систем нелинейных уравнений; • разработать вычислительный алгоритм метода простой итерации; • составить программы решения систем нелинейных уравнений методом простой итерации в среде
Turbo Pascal, Mathematica, MathCad, MatLab, Microsoft Excel. ГЛАВА 1 Математические и алгоритмические основы решения задачи 1.1 Решение систем нелинейных уравнений методом простой итерации Система нелинейных уравнений с неизвестными обычно имеет вид где хотя бы одна функция нелинейная. Для решения такой системы в редких случаях можно применить метод последовательного исключения неизвестных,
который приводит решение системы к решению одного нелинейного уравнения с одним неизвестным с последующей подстановкой. Метод простой итерации применим к системам, которые предварительно приведены к виду (1.1) или, в векторной форме, (1.2) Пусть — начальное приближение. Последующие приближения в методе простой итерации находятся по формулам (1.3) или, в векторной форме, (1.4) Если последовательность векторов сходится к вектору , а функции непрерывны, то вектор является
решением системы (1.2). Для получения условий сходимости метода итераций введем в -мерном векторном пространстве какую-либо норму (например, кубическую, октаэдрическую или сферическую). Теорема. Пусть для уравнения (1.2) и начального приближения выполнены условия: 1) для из сферы (1.5) вектор-функция удовлетворяет условию (1.6) где ; 2) Тогда уравнение (1.2) в сфере (1.5) имеет единственное решение , к нему сходится последовательность
(1.4) и погрешность метода оценивается неравенством (1.7) Сходимость метода итераций считается хорошей, если . Приведем достаточное условие, обеспечивающее выполнение неравенства (1.6) в кубической норме. Сфера (1.5) в кубической норме является -мерным кубом с центром в точке : (1.8) Предположим, что в кубе (1.8) функции имеют непрерывные частные производные
Неравенство (1.6) будет выполнено, если удовлетворяют в кубе (1.8)[2]. (1.9) Пример 1. Методом простой итерации решить систему на отрезке с точностью Решение: Выделим и в этой системе: Разделим на 5 и получим: Запишем заданную систему в следующем виде: Проверим сходимость итерационного процесса: ; . Отсюда так как Требование сходимости итерационного процесса выполняется.
В качестве начальных значений выберем . Найдем: Подставим эти значения и получим: Далее: Далее: Так как , имеем окончательное решение x=0.24, y=0.38. Пример 2. Методом простой итерации решить систему на отрезке с точностью Решение: Выделим и в этой системе: Разделим на 6 и получим: Запишем заданную систему в следующем виде: Проверим сходимость итерационного процесса: ; .
Отсюда так как Требование сходимости итерационного процесса выполняется. В качестве начальных значений выберем . Найдем: Далее: Далее: Далее: Так как , имеем окончательное решение x=0.532, y=0.351. 1.2 Алгоритм метода простой итерации при решении систем нелинейных уравнений ГЛАВА 2 Программная реализация решения систем нелинейных уравнений методом простой итерации 2.1
Программная реализация решения систем нелинейных уравнений методом простой итерации в Turbo Pascal Система программирования Турбо Паскаль представляет собой единство двух в известной степени самостоятельных начал: компилятора с языка программирования Паскаль (язык назван в честь выдающегося французского математика и философа Блеза Паскаля (1623-1662)) и некоторой инструментальной программной оболочки, способствующей повышению
эффективности создания программ. Для краткости условимся в дальнейшем называть реализуемый компилятором язык программирования Паскаль - языком Турбо Паскаля, а разнообразные сервисные услуги, представляемые программной оболочкой средой Турбо Паскаля. Среда Турбо Паскаля - это первое, с чем сталкивается любой программист, приступающий к практической работе с системой. Если Вы по каким-либо причинам не собираетесь писать собственные программы, можно пропустить эту главу,
в которой приводятся минимальные сведения об основных приемах работы в среде Турбо Паскаля[7]. Пример 1. Методом простой итерации решить систему на отрезке [-1,1] с точностью Решение в Turbo Pascal см. рис. 2.1 и рис. 2.2. Рис. 2.1 – Метод простой итерации в Turbo Pascal Рис. 2.2 – Метод простой итерации в Turbo Pascal Пример 2. Методом простой итерации решить систему на отрезке [0;1]
с точностью Решение в Turbo Pascal см. рис. 2.3 и рис. 2.4. Рис. 2.3 - Метод простой итерации в Turbo Pascal Рис. 2.4 – Метод простой итерации в Turbo Pascal 2.2 Программная реализация решения систем нелинейных уравнений методом простой итерации в Mathematica Mathematica — система компьютерной алгебры компании
Wolfram Research. Содержит множество функций как для аналитических преобразований, так и для численных расчётов. Кроме того, программа поддерживает работу с графикой и звуком, включая построение двух- и трёхмерных графиков функций, рисование произвольных геометрических фигур, импорт и экспорт изображений и звука[3]. Многие нелинейные уравнения и системы нелинейных уравнений в принципе не имеют аналитических решений. Однако их решение вполне возможно численными методами.
Для численного решения систем нелинейных уравнений используется функция : — пытается численно решить одно уравнение или систему уравнений относительно переменных ; — пытается численно решить уравнения относительно , исключая переменные . С этой функцией используется единственная опция WorkingPrecision, задающая число верных цифр результата — по умолчанию 16. — ищет численное решение уравнения , начиная с [9]. Пример 1. Методом простой итерации решить систему на отрезке [-1,1] с точностью
Решение в Mathematica см. рис. 2.5 Рис. 2.5 – Метод простой итерации в Mathematica Пример 2. Методом простой итерации решить систему на отрезке [0;1] с точностью Решение в Mathematica см. рис. 2.6. Рис. 2.6 – Метод простой итерации в Mathematica 2.3 Программная реализация решения систем нелинейных уравнений методом простой итерации в MathCad Mathcad является интегрированной системой решения математических, инженерно-технических и
научных задач. Он содержит текстовый и формульный редактор, вычислитель, средства научной и деловой графики, а также огромную базу справочной информации, как математической, так и инженерной, оформленной в виде встроенного в Mathcad справочника, комплекта электронных книг и обычных «бумажных» книг, в том числе и на русском языке. Mathcad создает удобную вычислительную среду для самых разнообразных математических расчётов и документирования результатов работы в рамках утверждённых стандартов.
Mathcad позволяет создавать корпоративные и отраслевые средства сертифицированных расчётов в различных отраслях науки и техники, обеспечивающие единую методологию для всех организаций, входящих в корпорацию или отрасль[4]. Возвращает точное решение системы уравнений. Число аргументов должно быть равно числу неизвестных. Ключевое слово Given, уравнения и неравенства, которые следуют за ним, и какое-либо выражение, содержащее
функцию Find, называют блоком решения уравнений. Следующие выражения недопустимы внутри блока решения: Ограничения со знаком . Дискретный аргумент или выражения, содержащие дискретный аргумент в любой форме. Неравенства вида . Блоки решения уравнений не могут быть вложены друг в друга, каждый блок может иметь только одно ключевое слово Given и имя функции Find[8]. Пример 1. Методом простой итерации решить систему на отрезке [-1,1] с точностью
Решение в MathCad см. рис. 2.7. Рис. 2.7 – Метод простой итерации в MathCad Пример 2. Методом простой итерации решить систему на отрезке [0;1] с точностью Решение в MathCad см. рис. 2.8. Рис. 2.8 – Метод простой итерации в MathCad 2.4 Программная реализация решения систем нелинейных уравнений методом простой итерации в MatLab MATLAB (сокращение от англ. «Matrix Laboratory») — термин, относящийся к пакету прикладных программ
для решения задач технических вычислений, а также к используемому в этом пакете языку программирования. MATLAB используют более 1 000 000 инженерных и научных работников, он работает на большинстве современных операционных систем, включая GNU/Linux, Mac OS, Solaris и Microsoft Windows. Язык MATLAB является высокоуровневым интерпретируемым языком программирования, включающим основанные на матрицах структуры данных, широкий спектр функций, интегрированную среду разработки, объектно-
ориентированные возможности и интерфейсы к программам, написанным на других языках программирования. Программы, написанные на MATLAB, бывают двух типов — функции и скрипты. Функции имеют входные и выходные аргументы, а также собственное рабочее пространство для хранения промежуточных результатов вычислений и переменных. Скрипты же используют общее рабочее пространство. Как скрипты, так и функции не компилируются в машинный код и сохраняются в виде текстовых файлов.
Существует также возможность сохранять так называемые pre-parsed программы — функции и скрипты, обработанные в вид, удобный для машинного исполнения. В общем случае такие программы выполняются быстрее обычных, особенно если функция содержит команды построения графиков. Основной особенностью языка MATLAB является его широкие возможности по работе с матрицами, которые создатели языка выразили в лозунге «думай векторно»[5].
Пример 1. Методом простой итерации решить систему на отрезке [-1,1] с точностью Решение в MatLab см. рис. 2.9. Рис. 2.9 – Метод простой итерации в MatLab Пример 2. Методом простой итерации решить систему на отрезке [0;1] с точностью Решение в MatLab см. рис. 2.10. Рис. 2.10 – Метод простой итерации в MatLab 2.5 Программная реализация решения систем нелинейных уравнений методом простой итерации в
Microsoft Excel Microsoft Excel (также иногда называется Microsoft Office Excel) — программа для работы с электронными таблицами, созданная корпорацией Microsoft для Microsoft Windows, Windows NT и Mac OS. Она предоставляет возможности экономико-статистических расчетов, графические инструменты и, за исключением Excel 2008 под Mac OS X, язык макропрограммирования
VBA (Visual Basic для приложений). Microsoft Excel входит в состав Microsoft Office и на сегодняшний день Excel является одним из наиболее популярных приложений в мире[6]. Пример 1. Методом простой итерации решить систему на отрезке [-1,1] с точностью Решение в MS Excel см. на рис. 2.11 и рис. 2.12 Рис. 2.11– Метод простой итерации в Excel Рис. 2.12 – Метод простой итерации в
Excel Пример 2. Методом простой итерации решить систему на отрезке [0;1] с точностью Решение в MS Excel см. на рис. 2.13 и рис. 2.14 Рис.2.13 – Метод простой итерации в Excel Рис. 2.14 – Метод простой итерации в Excel Заключение В процессе создания курсовой работы были решены системы нелинейных уравнений методом простой итерации, а также был реализован данный метод в различных программных средах.
Достижением поставленной цели потребовало решение следующих задач: • изучение метода простой итерации, применяемый при решении систем нелинейных уравнений; • создание вычислительного алгоритма метода простой итерации; • составление программ решения систем нелинейных уравнений методом простой итерации в среде Turbo Pascal, Mathematica, MathCad, MatLab, Microsoft Excel. Этот метод отличается от других тем, что по сравнению с другими методами, он является одним из
наиболее простых методов определения корней системы нелинейных уравнений. Анализ результатов показывает, что программы работают правильно и верно находят корни системы нелинейных уравнений. Список использованных источников 1. Лапчик, М.П. Численные методы: Учеб. пособие для студ. вузов / М.П.Лапчик, М.И.Рагулина, Е.К.Хеннер; Под ред. М.П.
Лапчика. — 2-е изд стер. — М.: Издательский центр «Академия», 2005. — 384 с. 2. Сборник задач по методам вычислений: Учеб. С 23 пособие / Под ред. П. И. Монастырского.—2-е изд. —Мн.: Университетское, 2000.—311 с. 3. Высшая документация – Online документация [электронный ресурс]. Режим доступа: http://ru.wikipedia.org/wiki/Mathematica 4.
Online документация [электронный ресурс]. Режим доступа: http://www.pts-russia.com/products/mathc ad.htm 5. Высшая документация – Online документация [электронный ресурс]. Режим доступа: http://ru.wikipedia.org/wiki/MATLAB 6. Высшая документация – Online документация [электронный ресурс]. Режим доступа: http://ru.wikipedia.org/wiki/XLS 7.
Высшая документация – Online документация [электронный ресурс]. Режим доступа: http://ru.wikipedia.org/wiki/Turbo_Pasca l 8. Ханова, А.А. Численное решение уравнений и систем уравнений [электронный ресурс]. Режим доступа: http://www.exponenta.ru/educat/systemat/ hanova/equation/math.asp 9. Иллюстрированный самоучитель по Mathematica. Online документация [электронный ресурс].
Режим доступа: http://computers.plib.ru/m ath/Book_Matematica/GL4/Index7.htm ПРИЛОЖЕНИЯ Листинг примера 1 Uses crt; Var x,y,xn,yn,d,e,f,g,h,i:real; BEGIN Writeln('Решим систему уравнений методом простой итерации ); Readln; Writeln('Введите начальное значение х'); Readln(x); Writeln( Введите начальное значение y'); Readln(y);
Writeln('Введите точность определения корня'); Readln(e); xn:=x; yn:=y; d:=(2*x)/5; f:=(2*y)/5; g:=(2*x)/5; h:=(-2*y)/5; If (d+f+g+h)<1 then writeln('Требование сходимости итерационного процесса выполняется') else writeln('Требование сходимости итерационного процесса не выполняется '); Readln; Repeat BEGIN x:=xn; y:=yn; xn:=(x*x+y*y)/5+0.200; yn:=(x*x-y*y)/5+0.400; i:=i+1; END; until (ABS(xn-x)<=e) and (ABS(yn-y)<=e); if (d+f+g+h)<1 then writeln('
Мы получили ответ x= xn:0:2 y= yn:0:2, ' на i:0:0 шаге итерации ) else Writeln('Нет решений'); Readln; END. Листинг примера 2 Uses crt; Var x,y,m,n,d,e,f,g,h,i:real; BEGIN Writeln('Решим систему уравнений методом простой итерации ); Readln; Writeln('Введите начальное значение х'); Readln(x); Writeln( Введите начальное значение y');
Readln(y); Writeln('Введите точность определения корня'); Readln(e); m:=x;n:=y; d:=(x*x)/2; f:=(y*y)/2; g:=(x*x)/2; h:=(-y*y)/2; If (d+f+g+h)<1 then writeln('Требование сходимости итерационного процесса выполняется') else writeln('Требование сходимости итерационного процесса не выполняется '); Readln; Repeat BEGIN x:=m;y:=n; m:=(x*x*x+y*y*y)/6+0.500; n:=(x*x*x-y*y*y)/6+0.333; i:=i+1;
END; until (ABS(m-x)<=e) and (ABS(n-y)<=e); If (d+f+g+h)<1 then writeln(' Мы получили ответ x= m:0:3 y= n:0:3, ' на i:0:0, 'шаге итерации ) else Writeln('Нет решений'); Readln; END.
! |
Как писать рефераты Практические рекомендации по написанию студенческих рефератов. |
! | План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом. |
! | Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач. |
! | Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты. |
! | Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ. |
→ | Виды рефератов Какими бывают рефераты по своему назначению и структуре. |