5167

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

Курсовая

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

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

Русский

2012-12-04

157 KB

36 чел.

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


 

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

64006. Факторы, влияющие на социальную адаптацию пожилых людей к современным условиям 527.6 KB
  Задачи, которые решались в процессе исследования, сводились к следующему: Рассмотреть социальные проблемы пожилых людей в современном обществе. Охарактеризовать сущность и содержание социальной адаптации пожилых людей. Рассмотреть проблемы социальной адаптации в пожилом возрасте рассмотреть.
64007. Актуальность применения смертной казни 425.87 KB
  В настоящее время актуальность темы смертной казни связана также и с тем, что многие государства идут не только на смягчение законодательства, при этом отменяя и смертную казнь, но и на пересмотр своего отношения к самому явлению. В связи с этим возникает вопрос о правомерности и допустимости применения смертной казни, а также о ее необходимости и целесообразности.