5167

Реализация решения уравнения программным способом

Курсовая

Информатика, кибернетика и программирование

1. Постановка задачи В данном программном продукте необходимо реализовать решение на примере уравнения: y(x)=x3+a*x2+b*x+c. Вместо коэффициентов должны использоваться параметры a, b, c, которые принимают значения, вводимые пользователем. Для нахожде...

Русский

2012-12-04

157 KB

37 чел.

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

В данном программном продукте необходимо реализовать решение на примере уравнения: y(x)=x3+a*x2+b*x+c. Вместо коэффициентов должны использоваться параметры a, b, c, которые принимают значения, вводимые пользователем. Для нахождения корней, обязательным является указание промежутков, на которых определена функция, поэтому пользователь обязательно вводит промежутки функции n, m. Метод Ньютона является итерационным методом, следовательно, должна указываться погрешность вычисления ε. Обязательным является построение графика выбранной функции на заданном промежутке.


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

Дисциплина "Численные методы" содержит набор методов и алгоритмов приближенного (численного) решения разнообразных математических задач, для которых точное аналитическое решение либо не существует, либо слишком сложно для использования на практике. При численном решении задач всегда возникает погрешность.

Выделяют абсолютную и относительную погрешность. Пусть р – точное значение искомого ответа, а p – приближённое значение, полученное с помощью численного метода.

Тогда  – абсолютная погрешность,

– относительная погрешность.

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

Метод, реализуемый в РУОП, называется методом Ньютона. Другое название метода – метод касательных.

Начальное условие:

Дано:

уравнение f(x) =0,

где f(x) C'' [m,n], f(m) f(n) <0,

f(x) и f''(x) знакопостоянны на отрезке [m,n] ;

точность .

Найти: решение уравнения с заданной точностью.

Пусть корень  где  – некоторое приближение к корню,  – необходимая поправка. Разложим f(x) линейно в ряд Тейлора в окрестности xn (что соответствует замене функции в точке на касательную):

f(ξ) =0=f(xi+hi) ≈f(xi) +f'(xi) hi.

Отсюда:

.

Закон получения приближений к корню:

(2.1)

Начальное приближение x0 выбирается из условия:

. (2.2)

Графическая иллюстрация метода приведена на рисунке 2.1. Начальная точка в этом случае совпадает с n.

Рисунок 2.1. – Метод Ньютона

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

Алгоритм метода.

Шаг 1. Найти первое приближение к корню x0 по формуле (2.2).

Шаг 2. Находить следующие приближения к корню по формуле (2.1), пока не выполнится условия окончания:

|xi-xi+1|<.

Последнее найденное приближение и будет корнем.


3. ОПИСАНИ ПРОГРАММНОЙ РЕАЛИЗАЦИИ

3.1 Информационные потоки

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

ПРОГРАММА

Рисунок 3.1 – Схема информационных потоков


3.2. Описание функционирования программы

При запуске программы на экране появляется титульный лист, отображающий информацию о студенте; далее осуществляется ввод коэффициентов уравнения и интервалов определения функции:

Рисунок 3.2 – Схема функционирования программы

3.3. Описание процедур и функций программы

Function F () – Вычисление функции F(x);

Function F1 () – Вычисление первой производной функции F’(x);

Function F2 () – Вычисление второй производной функции F’’(x);

Procedure Newton () – Вычисление приближения к корню функции F(x)


3.5. Перечень обозначений

3.5.1 Обозначения вводимых данных

n, m, – промежутки функции;

a, b, c – коэффициенты уравнения, представленные в виде параметров;

eps – погрешность, аналог ε в разделе "Описании математической модели" и в разделе "Описание (и обоснование выбора) метода решения".

3.5.2 Обозначения выводимых данных

y(x)=x3+a*x2+b*x+c – уравнене используемое в программе;

x – неизвестная, корень уравнения;

x^2 – неизвестная x в степени 2.

x^3 – неизвестная x в степени 3.

3.6 Входные и выходные данные

3.6.1 Входные данные

n, m: real – левый и правый промежутки функции соответственно;

a, b, c: real – параметры, коэффициенты уравнения;

eps: real – погрешность;

3.6.2 Выходные данные

x1: real – значение корня уравнения;

k: integer – количество итераций.

3.6.3 Промежуточные данные

tmp:real – Проверка водимых значений.

k: integer – счетчик итераций.

check: integer – проверка вводимых значений

flag: Boolean – служебная переменная проверки значений

3.7. Алгоритм решения задачи

3.7.1. Алгоритм нахождения корня уравнения y(x)=x3+a*x2+b*x+c

Алгоритм решения уравнения вида y(x)=x3+a*x2+b*x+c приводится на рисунке 3.4.

4. ТЕСТОВЫЕ ПРИМЕРЫ

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

Тестовые примеры для решения уравнения вида y(x)=x3+a*x2+b*x+c приводятся в таблице 4.1.

Таблица 4.1. Тестовые примеры для уравнения вида y(x) =a*x^2+b*x+c

m

n

a

b

c

E

Результат

-2

2

5

29

3

0.001

-0.105

-6

-3

5

3

5

0.001

-4.1583

5

20

5

29

4

0.01

Уравнение не имеет корня

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

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


ВЫВОДЫ

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

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

Однако ощутимыми недостатками являются расчёт результатов всего для одной функции.

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


ПЕРЕЧЕНЬ ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Фаронов В.В. "Turbo Pascal 7.0. Начальный курс": учебное пособие. – М.: Кнорус, 2006. – 576 с.

2. Сухарёв М. Turbo Pascal 7.0. Теория и практика программирования. – СПб: "Наука и техника", 2003. – 576 с.

3. Конспект лекций по курсу «Информатика и программирование».


x

(x) 

m

n


 

А также другие работы, которые могут Вас заинтересовать

60783. Моделирование лица (основы) 60 KB
  На мой взгляд Surfce это один из самых удобных средств для создания более сложных моделей. Конечно же можно будет применить и NURMS если нужна будет более подробная модель но для лица чистого Surfce достаточно но только при высоких знаниях и при имении больших навыков за спиной но это только моё мнение. Я буду объяснять как работать с Surfce по собственному готовому лицу.
60786. Логические операции Boolean. Визуализатор (визуализатор архитектурных проектов) 6.97 MB
  В результате получится пуговица как на рисунке. Откроется меню стандартных примитивов показанное на рисунке справа. Появится меню показанное на рисунке справа. Должно получится примерно так как на рисунке левее.
60787. Лоскутное моделирование в 3d max 343 KB
  При работе с треугольными лоскутами важно помнить что они всегда будут содержать 72 треугольные грани независимо от размеров лоскутной сетки. Эти грани будут увеличиваться при увеличении размера лоскута или сжиматься при его уменьшении.
60788. Интерполяция результатов эксперемента 114.5 KB
  Цель работы: Изучение методов обработки результатов физических экспериментов с применением интерполяции. Получение аналитической функции описывающей закон изменения измеряемой величины.
60789. Дмитро Луценко – поет-лірик, поет-пісняр 84.5 KB
  Особливо мене схвилювали поезії про війну. Я так ніжно кохав свою дорогу матусю Щоразу коли згадую її гірку долю у мене в душі щось перевертається. Того ж вечора були написані слова: Грає море зелене Тихий день догора Дорогими...