close

Вход

Забыли?

вход по аккаунту

?

ОТЧЕТ (13)

код для вставкиСкачать
СОДЕРЖАНИЕВВЕДЕНИЕ51. МЕТОДЫ РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ61.1. Постановка задачи61.2. Теоретическая часть61.2.1 Математическая модель61.2.2 Алгоритм решения задачи101.3. Разработка программы в среде Delphi101.3.1 Блок-схема алгоритма101.3.2. Тестирование программы131.4. Разработка программы в пакете MathCAD141.4.1 Тестирование программы141.5. Анализ полученных результатов152. АППРОКСИМАЦИЯ ТАБУЛИРОВАННЫХ ФУНКЦИЙ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ162.1. Постановка задачи162.2. Теоретическая часть162.2.1 Математическая модель162.2.2 Алгоритм решения задачи172.3. Разработка программы в среде Delphi182.3.1 Блок-схема алгоритма182.3.2. Тестирование программы202.4. Разработка программы в пакете MathCAD202.4.1 Тестирование программы202.5. Анализ полученных результатов22ЗАКЛЮЧЕНИЕ23СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ24
ВВЕДЕНИЕ Процедура подготовки и решения задачи на ЭВМ достаточно сложный и трудоемкий процесс, состоящий из следующих этапов: 1. Постановка задачи (задача, которую предстоит решать на ЭВМ, формулируется пользователем или получается им в виде задания). 2. Математическая формулировка задачи. 3. Разработка алгоритма решения задачи. 4. Написание программы на языке программирования. 5. Подготовка исходных данных. 6. Ввод программы и исходных данных в ЭВМ. 7. Отладка программы. 8. Тестирование программы. 9. Решение задачи на ЭВМ и обработка результатов. В настоящий момент большинство инженерных расчетов ведется с помощью специальных компьютерных программ: Excel, MatLab, MathCad, Derive, Maple, Mathematica и других. Это значительно повышает точность и качество расчетов. К целям курсовой работы относятся: * закрепление учебного материала, полученного в ходе изучения дисциплины "Информатика"; * освоение математического пакета MathCAD и среды программирования Delphi; * освоение различных методов решения нелинейных уравнений; * применение математических навыков решения нелинейных уравнений при проектировании приложений в среде Delphi и решение всё тех же уравнений методами матемитического пакета MathCAD; * изучение способов нахождения коэффициентов полинома методом наименьших квадратов; * научиться вычислять эти коэффициенты при помощи встроенных функций математического пакета MathCAD; * создание универсального приложения в среде Delphi, способного вычислять коэффициенты полиномов практически любой степени и строить графики по любым экспериментальным данным. Для выполнения задач, поставленных условиями курсовой работы, крайне удобно использование математического пакета MathCad и среды программирования Delphi. Чрезвычайная простота интерфейса MathCad сделала его самым распространенным в студенческой среде математическим пакетом. Он представляет собой обширный набор инструментов для реализации графических, аналитических и численных методов решения математических задач любой сложности на компьютере. Пакет позволяет самостоятельно выполнить громоздкие вычисления и построить графики функций в наименьшем промежутке времени [2]. В среде MathCad более сотни операторов и логических функций, предназначенных для численного и символьного решения технических проблем различной сложности. MathCad содержит: * обширную библиотеку строенных математических функций; * инструменты построения графиков различных типов; * средства создания текстовых комментариев и оформления отчетов; * удобно организованную интерактивную систему получения справки и оперативной подсказки; * средства обмена данными с другими windows-приложениями через механизм OLE (Object Linking and Embedding - связь и внедрение объектов); * средства пересылки готовых рабочих документов по электронной почте или в Интернет точно в таком виде, в каком они представлены на экране [5]. Delphi представляет собой систему программирования. Как и любая другая система, она предназначена для разработки программ и имеет две характерные особенности: создаваемые с ее помощью приложения могут работать не только под управлением Windows OS, а сама она относится к классу инструментальных средств ускоренной обработки программ (Rapid Application Development, RAD), то есть имеет высокую скорость расчетов, что экономит много времени и ресурсов компьютера. Визуальное конструирование форм избавляет программиста от многих аспектов разработки интерфейса программы, так как Delphi автоматически готовит необходимые программные заготовки и соответствующий файловый ресурс. [4] Целью работы является разработка алгоритмов решения нелинейных уравнений методами деления отрезка пополам, касательных, хорд.
1. МЕТОДЫ РЕШЕНИЯ НЕЛИНЕЙНЫХ УРАВНЕНИЙ 1.1. Постановка задачи Для удобства представим все исходные данные в виде таблицы 1.1.Таблица 1.1 - Исходные данные курсовой работы№ варианта Исходные данные 2 Для полного и качественного выполнения курсовой работы, необходимо выполнить приведенные ниже пункты:* Графически отделить корни уравнения. Параметр а задать самостоятельно путём подбора, так, чтобы уравнение имело не менее 3-х корней. Определить при каких значениях параметра а уравнение имеет 1, 2 и 3 корня. Если уравнение не имеет указанного количества корней (1, 2, 3), объяснить почему.* Разработать алгоритмы уточнения корней уравнения.* На языке программирования Delphi создать программу для уточнения корней уравнения указанными методами, реализующую разработанные алгоритмы. * Решить задачу средствами MathCad. Построить график функции F(x,a) от x для параметра а, использовавшегося при отделении и уточнении корней. 1.2. Теоретическая часть 1.2.1 Математическая модель Очень часто при инженерных расчетах возникает необходимость решения нелинейного уравнения на некотором участке, где функция определена и непрерывна. На практике встречаются уравнения с приближенными коэффициентами и для их решения применяют численные методы. Эти методы гораздо более мощные, нежели аналитические. Они тоже не всемогущие, но в умелых руках численные методы позволяют получать решения множества уравнений, совершенно недоступных для аналитических методов. Численные методы позволяют получать корни уравнения на заданном отрезке с заданной точностью . Процесс решения нелинейных уравнений состоит из двух этапов: 1) отделение корней, то есть отыскание отрезков, внутри которых содержится только один корень данного уравнения. Для этого применяют численный или графический методы. В последнем случае строится график функции, и корни уравнения будут находиться в точках пересечения графика с осью абсцисс. При численном исследовании составляют таблицу значений функции. Если она меняет знак на противоположный, то на этом участке существует корень. Причём необходимо найти производную функции и проверить её на монотонность и экстремум. Функция имеет единственный корень на данном участке, если её производная сохраняет свой знак; 2) уточнение значения отделённых корней до некоторой заданной степени точности. Метод хорд Реализуя метод касательных, при каждой итерации необходимо вычислять значение не только функции, но и ее производной. Однако есть вариант метода Ньютона, в котором можно ограничиться вычислением только значений функции, что иногда упрощает вычислительный алгоритм. Если положить в формуле (1.1) где - корень уравнения; - один из концов промежутка вычислений. а в качестве взять тот конец промежутка, на котором , то приходим к итерационному методу, называемому методом хорд или методом секущих: (1.2) где - k-ое приближение; - предыдущее приближение. В качестве в этом случае следует принять тот конец промежутка , который остался после выбора . Далее последовательность строится по формуле. Оценка степени приближения к корню возможна при помощи неравенства Геометрический смысл метода (благодаря которому он и получил название) проиллюстрирован на рисунке 1.1. Этот метод имеет квадратичную сходимость. Этапы решения уравнения методом хорд:* нахождение приближения ;* проверка достижения заданной точности;* нахождение следующего приближения ;* если требуемая точность достигнута, задача решена. Рисунок 1.1 - Геометрический смысл метода хорд Метод касательных Сущность метода заключается в следующем: 1) Выбирается начальное приближение корня из отрезка 2) Проводится касательная к графику до пересечения с осью . Эту точку (y=0) обозначим , которая и будет являться следующим приближением корня: (1.3)где - результат предыдущего вычисления; - функция от результата предыдущего вычисления; - производная функции от результата предыдущего вычисления; Итерационный процесс продолжается до тех пор, пока , (1.4) где - заданная погрешность вычислений. - точность вычисления; Начальное приближение выбирается при выполнении следующего условия . Рисунок 1.2 - Геометрический смысл метода касательных Если условие выполняется, то гарантируется сходимость метода. Чаще всего в качестве начального приближения выбирается координата конца того отрезка, для которого выполняется условие. Скорость сходимости метода Ньютона имеет квадратичную зависимость. В особых случаях, когда сложно выбрать начальное приближение, то уравнение решается методом деления отрезка пополам и полученное значение уточняется с помощью метода Ньютона. Метод деления отрезка пополам Для применения этого метода функция должна быть непрерывна и ограничена на отрезке AB, внутри которого имеется корень. Значения функции на концах отрезка при этом должны имеют разные знаки . Сущность метода заключается в следующем. В качестве начального приближения выбирается: (1.4)где , - координаты концов отрезка. Затем проверяются знаки функции в точках: (1.5) Интервал (или) вновь делится пополам, и выбирают тот интервал, на концах которого выполняется условие и т.д. Если требуется определить корень с точностью , то деление пополам продолжается до тех пор, пока длина отрезка не станет меньше . В этом случае половина последнего отрезка и есть корень требуемой точности. Метод деления отрезка пополам всегда сходится. Метод деления отрезка пополам обладает линейной скоростью сходимости. Для достижения точности достаточно выполнение n итераций, где (1.6) 1.2.2 Алгоритм решения задачи Находим производную функции f(x). Описания алгоритма решения методом хорд Рекуррентное соотношение для вычисления приближенных значений корня в этом методе имеет вид: (1.7) Описания алгоритма решения методом касательных Выбирают начальное приближение корня x0, в качестве которого удобно взять конец отрезка [a; b] для которого . Каждое последующее приближение определяется (1.8) Описания алгоритма решения методом деления пополам Делим отрезок пополам и находим начальное приближение: (1.9) где - концы отрезка вычислений. Если , то выбираем из условия: (1.10) (1.11) Истинность (1.10) означает, что интервал , а (2.9) - интервал . Делим найденный интервал пополам и находим начальное приближение Если требуется найти определенный корень с точностью , то деление пополам продолжают до тех пор, пока длина отрезка не станет меньше 2ε. 1.3. Разработка программы в среде Delphi 1.3.1 Блок-схема алгоритма Блок-схемы алгоритмов решения поставленной задачи представлены на рисунках 1.3, 1.4 и 1.5 - для методов касательных, хорд и деления пополам соответственно. Рисунок 1.3 - Блок-схема алгоритма метода касательных Рисунок 1.4 - Блок-схема алгоритма метода хорд Рисунок 1.5 - Блок-схема алгоритма метода деления отрезка пополам 1.3.2. Тестирование программы Результаты расчетов представлены на рисунке 1.6.Рисунок 1.6 - Полученное решение задачи в виде численных значений 1.4. Разработка программы в пакете MathCAD 1.4.1 Тестирование программы При подборе коэфициента выяснено, что при любых уравнение имеет либо один корень (например, при а=15) либо три (например, при а=1). Полностью условия курсовой работы соблюсти не удаётся. При получены три корня уравнения, решение представлено на рисунке 1.7. Рисунок 1.7 - Решение задачи в MathCAD При получен один корень уравнения, решение представлено на рисунке 1.8.Рисунок 1.8 - Решение задачи в MathCAD 1.5. Анализ полученных результатов Получив решения в двух различных программах, проанализируем результаты, тем самым проверим правильность решения поставленной задачи. Полученные результаты сравниваються в таблице 1.2. Таблица 1.2. - Значения уточнённых корнейМетодПараметр Корень уравненияХорд0,39640,64821,3804Касательных0,39640,64821,3804Деления пополам0,39630,64821,3803MathCAD0,39640,64821,3804 При анализе полученных результатов видно, что в среде Delphi и в среде MathCad значения практически совпадают. Небольшое различие существует из-за выбора начального приближения корня. Сравнивая найденные корни в программе и в MathСad есть небольшие отклонения, это из за того, что в Mathсad мы находим точное значение, а в Delphi всего лишь уточняем. 2. АППРОКСИМАЦИЯ ТАБУЛИРОВАННЫХ ФУНКЦИЙ МЕТОДОМ НАИМЕНЬШИХ КВАДРАТОВ 2.1. Постановка задачи Для удобства представим все исходные данные в виде таблицы 2.1.Таблица 2.1 - Исходные данные курсовой работы№ варианта Вид функции Степень многочлена 2 2, 3, 4 Для полного и качественного выполнения курсовой работы, необходимо выполнить приведенные ниже пункты:* Разработать алгоритм нахождения коэффициентов трёх аппроскимирующих полиномо (многочленов).* Рассчитать среднеквадратичные отклонения.* Построить графики трёх полученных приближающих функций в одной системе координат. * Решить задачу средствами MathCad. 2.2. Теоретическая часть 2.2.1 Математическая модель Наиболее распространенным методом аппроксимации экспериментальных данных является метод наименьших квадратов. Метод позволяет использовать аппроксимирующие функции произвольного вида и относится к группе глобальных методов. Простейшим вариантом метода наименьших квадратов является аппроксимация прямой линией (полиномом первой степени). Этот вариант метода наименьших квадратов носит также название линейной регрессии. Критерием близости в методе наименьших квадратов является требова- ние минимальности суммы квадратов отклонений от аппроксимирующей функции до экспериментальных точек: (2.1) Таким образом, не требуется, чтобы аппроксимирующая функция проходила через все заданные точки, что особенно важно при аппроксимации данных, заведомо содержащих погрешности. Важной особенностью метода является то, что аппроксимирующая функция может быть произвольной. Ее вид определяется особенностями решаемой задачи, например, физическими соображениями, если проводится аппроксимация результатов физического эксперимента. Наиболее часто встречаются аппроксимация прямой линией (линейная регрессия), аппроксимация полиномом (полиномиальная регрессия), аппроксимация линейной комбинацией произвольных функций. Кроме того, часто бывает возможно путем замены переменных свести задачу к линейной (провести линеаризацию). Например, пусть аппроксимирующая функция ищется в виде . Прологарифмируем это выражение и введем обозначения . Тогда в новых обозначениях задача сводится к отысканию коэффициентов линейной функции. 2.2.2 Алгоритм решения задачи Вычисляем коэффициенты и : (2.2)где - координаты точек, заданные условиями курсовой работы; - степень полинома. Далее полученные коэффициенты формируем в матрицу и приводим её к треугольному виду. С помощью обратного хода метода Гаусса из матрицы выводим коэффициенты полинома: (2.3)где - коэффициент полинома; - элемент матрицы, сведённой из коэффициентов и . Вычисляем среднеквадратичное отклонение: (2.4) (2.5)где - среднеквадратичное отклонение. 2.3. Разработка программы в среде Delphi 2.3.1 Блок-схема алгоритма Блок-схема алгоритма решения поставленной задачи представлена на рисунке 2.1. Рисунок 2.1 - Блок-схема алгоритма 2.3.2. Тестирование программы Результаты расчетов представлены на рисунке 2.2.Рисунок 2.2 - Полученное решение задачи в виде численных значений 2.4. Разработка программы в пакете MathCAD 2.4.1 Тестирование программы Решение задачи методами MathCAD сводится к использованию встроенных функций regress и interp. Решение задачи представлено на рисунках 2.3-2.5 для каждой из степеней многочлена, указанных в условиях курсовой работы. Рисунок 2.3 - Решение задачи в MathCAD Рисунок 2.4 - Решение задачи в MathCAD Рисунок 2.5 - Решение задачи в MathCAD 2.5. Анализ полученных результатов Получив решения в двух различных программах, проанализируем результаты, тем самым проверим правильность решения поставленной задачи. Полученные результаты сравниваються в таблице 2.2. Таблица 2.2. - Значения уточнённых корнейМетод решенияDelphiMathCADСтепень многочлена234234Коэффициенты полинома1,888,63-8,1762,276,116-4,71-1,2843,012-1,30713,292-16,7034,2831,888,63-8,1762,276,116-4,71-1,2843,012-1,30713,292-16,7034,283Отклонение0,2200.1780,269 При анализе полученных результатов видно, что в среде Delphi и в среде MathCad значения практически совпадают, но существует небольшая погрешность. Погрешность связана с различием методов, с помощью которых мы приходим к конечному результату.
ЗАКЛЮЧЕНИЕ В результате курсовой работы был разработан алгоритмы и программа для решения нелинейного уравнения с параметром методами хорд, касательных, деления отрезка пополам. В ходе проведенной работы были решены следующие задачи:* осуществлена постановка задачи;* созданы блок-схемы алгоритмов;* разработаны формы и тексты программы;* вычислены корни уравнений с заданной точностью . В отличие от большинства других методов уточнения, метод половинного деления сходится всегда, т.е. обладает безусловной сходимостью. Кроме этого он чрезвычайно прост, поскольку требует лишь вычисления значений функции f(x) и, поэтому применим для решения любых уравнений. Однако метод половинного деления довольно медленный. Метод хорд и метод половинного деления очень похожи, в частности, процедурой проверки знаков функции на концах отрезка. При этом первый из них в ряде случаев дает более быструю сходимость итерационного процесса. В методе Ньютона, в отличие от предыдущих методов, не обязательно задавать отрезок, содержащий корень уравнения, а достаточно найти некоторое начальное приближение корня. При этом сходимость метода зависит от выбора начального приближения. Результаты работы программы, разработанной в среде Delphi, были сравнены с результатами, полученными в математическом пакете MathCad. В ходе сравнения были получены ожидаемые результаты, исходя из которых, можно сказать, что разработанные алгоритмы достаточно эффективны. СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ1. Культин, Н.Б., Delphi в задачах и примерах. - СПб.: БХВ.- Петербург, 2003 - 288 с.2. Марков, Е.П., Программирование в Delphi 7 / П.Г. Дарахвелидае, Е.П.Марков - СПб.: БХВ-Петербург, 2003 г. - 784 с.3. Наранович, О.И., Методические указания и задания к лабораторным работам для студентов 2-го курса дневной формы обучения специальностей 40 01 02, 36 01 03, 36 01 01. Часть 3. -Барановичи: БарГУ, 2005 г. - 58 с.4. Положение о курсовых работах (проектах) №01-01; МО Республики Беларусь, БарГУ. - Барановичи, 2007 г. - 62 с. 5. Фаронов, В.В., Delphi. Программирование на языке высокого уровня: Учебник для ВУЗов. - СПб.: Питер, 2005. - 640 с.4
Документ
Категория
Рефераты
Просмотров
240
Размер файла
1 434 Кб
Теги
отчет
1/--страниц
Пожаловаться на содержимое документа