Курсовая по информатике решение нелинейных уравнений

Курсовая работа на тему Разработка программного обеспечения решения нелинейных уравнений.

Обращаем Ваше внимание, что в соответствии с Федеральным законом N 273-ФЗ «Об образовании в Российской Федерации» в организациях, осуществляющих образовательную деятельность, организовывается обучение и воспитание обучающихся с ОВЗ как совместно с другими обучающимися, так и в отдельных классах или группах.

Курсовая работа

на тему: Разработка программного обеспечения решения нелинейных уравнений.ВВЕДЕНИЕ

Язык программирования Pascal , разработанный Н.Виртом еще в 1970 г. в настоящее время получил весьма широкое распостранение. Этому способствовали его простота, удобное представление всех структурных конструкций, пригодность для использования как в учебных целях, так и для написания серьезных программ, высокая степень модульности, упрощающая процесс прграммирования, результативность автоматической проверки составленных программ на их корректность через развитый институт типов данных, высокое быстродействие трансляторов, эффективность объектных модулей. Рассматриваемый язык программирования хорошо приспособлен для решения широкого круга задач. Он содержит мощные средства структурирования данных.

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

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

1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Особенности взаимодействия разноязыковых модулей

Рассмотрим комплексирование модулей, составленных на различных языках программирования. Для САПР наиболее употребимы универсальные языки ассемблера, ФОРТРАН, ПЛ/1. Особенности операций с разноязыковыми модулями можно свести к двум группам:

1) особенности установки программной среды и вызова модуля;

2) различия в реализации типов и структур данных, проявляющиеся при обмене информацией между модулями.

1.1.2. Установка среды

При передаче управления из модуля, составленного на одном языке, в модуль, составленный на другом языке, требуется устанавливать программную среду, представляющую собой совокупность программ обработки прерываний и аварийных завершений, установки регистров, содержащих адреса областей, использующихся на протяжении выполнения задачи и др. Поэтому при организации вызова модулей, составленных на различных языках, необходимо всякий раз устанавливать среду вызываемого модуля. Рассмотрим процесс установления среды в языках ассемблера, ФОРТРАН, ПЛ/1.

В алгоритмическом языке ФОРТРАН среда устанавливается модулем IBCOM , находящимся в библиотеке компилятора. Помимо установки среды этот модуль выполняет операции ввода-вывода и др. Для программ, не содержащих операций ввода-вывода и прерываний, среда может не создаваться. Вызов модуля, составленного на языке ФОРТРАН, и установка среды этого языка представляют собой различные, самостоятельные действия.

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

Для модулей, написанных на языке ассемблера, компилятор среды не создает. Чтобы обеспечить нормальное функционирование программы для обработки программных прерываний и аварийных ситуаций, пользователь должен сам включить в свою программу соответствующие средства, например макрокоманды SPIE , STAE , ABEND и др. Механизм задания среды определяется также пользователем, который располагается в любом месте исходного модуля макрокоманды задания среды.

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

Средства передачи управления алгоритмических языков проиллюстрированы в таблице. /1/

Характеристика средств передачи управления

1.1.3. Согласование типов

Различные языки программирования обладают разными наборами типов данных. Возможные отношения между типами данных приведены ниже.

К эквивалентным типам данных относятся типы данных, для которых внутреннее представление, сгенерированное компиляторами, идентично.

К косвенно-эквивалентным типам данных относятся типы данных, для которых нет эквивалентного описания, но с помощью имеющихся языковых средств их можно совместить.

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

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

1) обратное расположение массивов (в языке ФОРТРАН массив располагается в памяти по столбцам, а в языке ПЛ/1 — по строкам);

2) наличие информационного вектора для переменных в языке ПЛ/1 [поскольку в языке ПЛ/1 память под данные может выделяться динамически, компилятор генерирует информационный вектор, который содержит сведения о переменных, строках и массивах (адрес, длина, количество элементов и пр.)] и имеет различный вид для различных структур данных;

3) выравнивание полей, которое определяется тем, что компилятор располагает данные в соответствии с описаниями, выравнивая их, если необходимо, на границы слов и полуслов. /1/

1.1.4. Обмен данными

Наиболее распространен способ обмена данных с помощью операторов CALL и LINK . При этом осуществляется формирование списка передаваемых данных и списка их адресов. Адрес списка адресов передается вызываемой программе через регистр 1.

Другим распространенным способом обмена данными является использование общих областей — статически распределеных участков памяти, к которым может обращаться любой модуль независимо от того, на каком языке он написан. Память под общую область отводит редактор связей во время создания загрузочной программы из совокупности общих областей отдельных модулей. Каждый из рассматриваемых языков имеет средства для описания общих областей: в языке ФОРТРАН — оператор COMMON , в языке ПЛ/1 — оператор STATIC EXTERNAL , в языке ассемблера — оператор COM . /1/

1.1.5. Информационный адаптер

С учетом вешеизложенного для осуществления универсального информационного интерфейса необходимо:

1) произвести контроль наличия исходных данных для каждого отдельного модуля;

2) задать недостающие исходные данные;

3) проверить соответствие типов, структур и последовательности данных аналогичным характеристикам данных, принятым в вызываемом модуле;

4) преобразовать данные в случае несоответствия типов;

5) обеспечить передачу данных вызываемому модулю в соответствии с типом обмена;

6) организовать среду, определяемую языком программирования модуля;

7) проверить резулбтаты;

8) выполнить обратное преобразоавание данных в вид, принятый для хранения промежуточных результатов;

9) сохранить результаты работы модуля для дальнейшего использования;

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

формирования; МВв — модули ввода; ТОНД — таблица описателей наборов данных; ТОМ — таблица описателей модулей; ПУС — программа установки среды; ТОВх — таблица описателей входов; МВыв — модули вывода; ОО — области обмена;

Рисунок 1.1 — Информационное обеспечение программного адаптера

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

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

Таблица описателей наборов данных содержит: имя набора; имя DD -предложения; тип организации; метод доступа; формат и длина блока; атрибуты записи.

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

Для организации области обмена необходимо:

1) осуществить анализ данных, которые будут циркулировать в среде программного комплекса в составе САПР с целью определения одинаковых по смыслу переменных;

2) всем одинаковым по смыслу переменным присвоить одно и то же имя, отражающее семантику этих переменных (глобальные переменные);

3) каждой переменной, встречающейся только один раз, присвоить уникальное имя, отражающее семантику величины (локальные переменные);

4) каждой глобальной и локальной переменной поставить в соответствие тип и структуру, являющиеся наиболее информативными;

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

В крупных САПР, программы которых оперируют с большим числом входных, промежуточных и результирующих переменных, области обмена удобно организовывать в виде некоторого банка данных. Это позволяет возложить часть функций, выполняемых адаптером, на СУБД, что в конечном итоге сокращает время на разработку информационного и программного обеспечения САПР.

Таким образом, адаптер выполняет всю совокупность операций по организации информационного взаимодействия между программными модулями. В случае разноязыковых модулей адаптер практически берет на себя выполнение соответствующих функций операционной системы. Достаточно сложной является также задача построения области обмена, поскольку ее решение связано со структурированием всех переменных, участвующих в информационном обмене. В крупных САПР, программные модули которых оперируют с большим числом входных, промежуточных и результирующих переменных, функции адаптера по организации и взаимодействию с обменными областями целесообразно переложить на типовые СУБД.

Банки данных в настоящее время находят все более широкое применение для организации межмодульного интерфейса. Их использование наиболее эффективно, когда совокупность модулей программного обеспечения зафиксирована и не подлежит изменениям в дальнейшем. В этом случае необходимо составить логическую схему для всей области обмена, в которой были бы указаны наименования переменных, их взаимосвязи, тип представления. Обращение из программных модулей для получения значений необходимых переменных должно выполняться с помощью операторов взаимодействия с СУБД. Применение банков данных для целей организации информационного обмена сокращает сроки разработки информационного и программного обеспечения САПР. /1/

2. АЛГОРИТМИЧЕСКАЯ ЧАСТЬ

2.1. Математическое решение задачи

Пусть даны два уравнения с двумя неизвестными

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

Мы предположим, что система (1) допускает лишь изолированные корни. Число этих корней и их грубо приближенные значения можно установить, построив кривые F 1 ( x ,у)=0; F 2 ( x ,у)=0 и определив координаты их точек пересечения.

Пусть х= x 0 ; у= y 0 приближенные значения корней системы (1), полученные графически или каким-нибудь другим способом (например, грубой прикидкой).

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

и построим последовательные приближения по следующим формулам:

Если итерационный процесс (3) сходится, т. е. существуют пределы

то, предполагая функции 1 ( x , y ) и 2 ( x , y ) непрерывными и переходя к пределу в равенстве (3) общего вида, получим:

т. е. предельные значения и являются корнями системы (2), а следовательно, и системы (1). Поэтому, взяв достаточно большое число итераций (3), мы получим числа x n и y n , которые будут отличаться от точных корней x = и y = системы (1) сколь угодно мало. Поставленная задача, таким образом, окажется решенной. Если итерационный процесс (3) расходится, то им пользоваться нельзя.

Теорема . Пусть в некоторой замкнутой окрестности R xA ; byB >(рис.) имеется одна и только одна пара корней x = и y = системы (2). Если:1) функции 1 ( x , y ) и 2 ( x , y ) определены и непрерывно дифференцируемы в R; 2) начальные приближения x 0 , y 0 и все последующие приближения x n , y n ( n =1,2. ) принадлежат R; 3) в R выполнены неравенства

то процесс последовательных приближений (3) сходится к корням x = и y = системы (2), т.е.

Рисунок 2.1-Графики уравнений в замкнутой окрестности.

Структурная схема решения задачи представлена на рисунке 2.2.

Решение нелинейного уравнения с одним неизвестным в различных средах программного обеспечения

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

«Волжский государственный инженерно-педагогический университет»

Кафедра математики и информатики

Решение нелинейного уравнения с одним неизвестным в различных средах программного обеспечения

Методическая разработка по выполнению курсовой работы по информатике для студентов специальности 080801.65 – Прикладная информатика (в менеджменте)

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

2.Методы отделения корней 5

2.1.Графический метод 5

2.2Аналитический метод 6

3.Методы уточнения корней 8

3.1.Метод половинного деления 8

3.2.Метод последовательных приближений 10

3.3.Метод Ньютона 12

4.Анализ результатов 16

Варианты заданий 18

Список рекомендуемой литературы 19

В настоящее время появилось значительное число различных программных продуктов (MathCad, Mathlab и т. д.), с помощью которых, задавая только входные данные и не вникая в сущность алгоритмов, можно решить значительное число задач. Безусловно, умение пользоваться этими программными продуктами существенно сокращает время и ресурсы по решению ряда важных задач.

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

В представленной работе на примере решения нелинейного уравнения с одной неизвестной f(x)=x++-2.5 реализуются 3 технологии:

● алгоритмическая на базе программной среды Pascal;

● с использованием табличного процессора Excel;

● на основе пакета формульных преобразований MathCAD.

Делается сравнительный анализ полученных результатов.

Пусть дано уравнение f (x)=0, (1) где функция f (x) непрерывна на некотором множестве X.

Совокупность значений переменной х, при которых уравнение (1) обращается в тождество, называется решением этого уравнения, а каждое отдельное значение – корнем уравнения. В зависимости от вида функции f(x) уравнения подразделяются на алгебраические и трансцендентные.

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

Алгебраическое уравнение можно привести к виду:

++…++=0, (2) где числа , i = — коэффициенты уравнения, которые в общем случае являются комплексными.

Таким образом, корни уравнения могут быть как вещественными, так и комплексными. Будем считать числа вещественными.

Функцию называют трансцендентной, если она содержит логарифмические, показательные, тригонометрические и другие функции. И если в записи уравнения (1) содержится трансцендентная функция, то уравнение называют трансцендентным.

Точные аналитические значения корней уравнения (1) можно найти лишь в простейших случаях (ах+в=0; а+вх+с=0; соs(x)=а и т. д.). Кроме того, коэффициенты некоторых уравнений есть приближенные числа, поэтому нельзя говорить о нахождении точных корней.

Будем считать, что уравнение (1) имеет только действительные корни. Тогда нахождение корней с заданной точностью необходимо проводить в два этапа:

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

Рассмотрим технологию выполнения курсовой работы на примере определения корней уравнений на интервале .

Методы отделения (локализации) корней Графический метод

Он основан на построении графика функции y=f(x). Тогда искомым отрезком [а;в], содержащим корень уравнения (1), будет отрезок оси абсцисс, содержащий точку пересечения графика с этой осью. Иногда выгоднее представить исходную функцию в виде разности двух более простых функций f(x)=g(x)-g1(x) и строить два графика = g(x) и = g1(x), точка пересечения которых и является корнем уравнения (1), а отрезок на оси абсцисс с корнем внутри и будет являться интервалом изоляции. Этот метод хорошо работает в случае, если исходное уравнение не имеет близких корней и дает тем точнее результат, чем мельче берется сетка по оси ОХ.

Первый способ f(x) = x++-2.5

Второй способ g(x) = x+; g1(x) = 2.5 —

Искомый корень уравнения находится на отрезке [0,7;0,8]

Аналитический метод основан на следующем положении: если непрерывная и дифференцируемая на отрезке [a;b] функция f(x) принимает значения разных знаков на его концах (т. е. f(a)∙f(b) 0 . Тогда функцию ц(x) можно представить как ц(x) = x — л∙F(x). Затем, варьируя параметр л, добиваемся условия сходимости: |ц’(x)|

Численные методы решения нелинейных уравнений

Автор работы: Пользователь скрыл имя, 10 Декабря 2012 в 10:15, курсовая работа

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

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

Содержание

Цель работы. 3
Задание. 3
Теоретическая справка. 3
Описание метода. 3
Алгоритм метода Ньютона. 5
Решение. 6
Построение графика. 6
Программа Pascal. 6
Пример работы программы Pascal. 7
Результат работы программы Pascal. 7
Решение уравнения с использованием специальной программы. 8
Вывод. 8

Прикрепленные файлы: 1 файл

ИНФОРМАТИКА КР2.docx

Министерство Образования и Науки РФ

Федеральное Государственное Бюджетное Образовательное Учреждение Высшего Профессионального Образования

Тульский Государственный Университет

Пояснительная записка к курсовой работе

по дисциплине «информатика»

«Численные методы решения нелинейных уравнений».

Теоретическая справка. 3

Описание метода. 3

Алгоритм метода Ньютона. 5

Построение графика. 6

Программа Pascal. 6

Пример работы программы Pascal. 7

Результат работы программы Pascal. 7

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

Цель работы.

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

Задание.

Экспериментально установлено, что зависимость деформации z конусной пружины от приложенной силы F можно рассчитать по формуле

где A, B, C и D − постоянные, определяющиеся конструкцией пружины. При подстановке в формулу значения силы F в ньютонах деформация z определяется в миллиметрах. Задавшись приведенными в таблице параметрами A, B, C и D, определите силу F, удовлетворяющую указанному значению z.

A=0.02 , B=0.4 , C=0.1 , D=1.2 , z=6

Теоретическая справка.

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

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

Полагая далее, что в окрестностях имеется точка , в которой функция равна нулю, получим линейной уравнение:

из которого найдем :

Это соотношение является итерационной формулой метода Ньютона.

Из уравнения выше следует, что каждый шаг метода Ньютона требует большего объема вычислений чем, например, метод половинного деления, так как приходится находить значение не только функции f(x), но и ее производной. Несмотря на это метод Ньютона и его модификации широко используются на практике. Это обусловлено, во-первых, тем, что он не требует задания отрезка [a, b], содержащего корень, а может стартовать от одной начальной точки. Во-вторых, он имеет более высокую скорость сходимости, чем другие методы.

Графическая интерпретация метода Ньютона.

При использовании метода Ньютона следует учитывать ряд его особенностей. Одна из них состоит в необходимости правильного выбора начального приближения. Так же он обладает локальной сходимостью, то есть способен найти корень, если начальное приближение задано в некоторой малой его окрестности. Если же начальное приближение взято неудачно и функция немонотонна, метод может дать расходящуюся последовательность . Другая проблема заключается в том, что производная в (2) находится в знаменателе. Это означает, что не должна обращаться в ноль, так как в противном случае итерационная формула перестает работать. Трудности могут возникнуть и в том случае, если не равна нулю, но достаточно мала, вследствие чего результат деления f (x) / f ‘(x) может оказаться неприемлемо большим.


источники:

http://pandia.ru/text/81/131/75468.php

http://www.referat911.ru/Informatika/chislennye-metody-resheniya-nelinejnyh-uravnenij/53058-1463591-place1.html