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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 13.12.2015
Размер файла 137,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Министерство образования Российской Федерации

Международная «Лига развития науки и образования» (Россия)

Международная ассоциация развития науки, образования и культуры России (Италия)

Международный «Институт управления» (г. Архангельск)

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

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

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

Выполнил:

студент экономического факультета

группы 14-И

Дроздов А.Ю.

Проверил:

Горяшин Ю.В.

Архангельск

2005

Содержание

трехдиагональный матрица интерполяционный

Введение

1. Метод решения нелинейного уравнения методом секущих

1.1 Общая характеристика методов

1.2 Метод секущих

1.3 Тестовый пример

2. Вычисление значения функции при помощи интерполяционной формулы

2.1 Общая характеристика методов интерполяционной формулы

2.2 Интерполяционная формула Ньютона

2.3 Тестовый пример

Заключение

Список литературы

Приложения

Введение

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

Процедура подготовки и решения задачи на ЭВМ достаточно сложный и трудоемкий процесс, состоящий из следующих этапов:

Численные методы линейной алгебры

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

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

Одношаговые итерационные методы решения систем линейных алгебраических уравнений. Каноническая форма записи. Примеры одношаговых итерационных методов. Достаточное условие сходимости.

Необходимое и достаточное условие сходимости одношаговых стационарных итерационных методов. Теорема о сходимости одношаговых стационарных итерационных методов. Оценка скорости сходимости. Неявный итерационный метод с чебышевским набором параметров. Оценка скорости сходимости.

Численная устойчивость итерационного метода с чебышевским набором параметров. Упорядоченный набор итерационных параметров (пример).

Одношаговые итерационные методы вариационного типа. Формула для вычисления итерационного параметра.

Примеры итерационных методов вариационного типа (метод скорейшего спуска; метол минимальных невязок; метод минимальных поправок; метод минимальных погрешностей). Каноническая форма записи двухшаговых итерационных методов вариационного типа.

Примеры двухшаговых итерационных методов (метод сопряженных градиентов, сопряженных невязок, сопряженных поправок, сопряженных погрешностей).

Полная и частичная проблема собственных значений.

Степенной метод решения частичной проблемы собственных значений. Решение полной проблемы собственных значений методом вращений. Метод обратной итерации.

Решение нелинейных уравнений и систем уравнений.

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

Сходимость метода простой итерации.

Метод Эйткена ускорения сходимости.

Сходимость метода Ньютона.

Решение систем нелинейных уравнений.

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

Интерполяция и приближение функций.

Постановка задачи интерполирования алгебраическими многочленами. Интерполяционная формула Лагранжа. Интерполяционная формула Ньютона (разделенные разности, схема Горнера).

Интерполирование с кратными узлами (существование и единственность многочлена Эрмита, погрешность интерполирования с кратными узлами). Пример (многочлен Эрмита третьей степени). Сходимость интерполяционного процесса.

Интерполирование сплайнами. Кубический сплайн. Наилучшее приближение функции, заданной таблично (пример). Наилучшее приближение в гильбертовом пространстве.

Глава 1. Метод решения нелинейного уравнения методом секущих

1.1 Общая характеристика методов

1. Условие задания

При заданных пяти вариантах допустимой ошибки e заданным численным методом вычислить приближенное значение корня функционального уравнения вида f (x) = 0, если известно, что это уравнение имеет единственный корень на отрезке [a, b].

В проекте должно быть предусмотрено:

- построение графика функции f (x) на отрезке [a, b],

- проверка корректности введенных значений исходных данных (выполнение условия a < b, выполнение условия e > 0),

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

2. Содержание пояснительной записки

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

условие задачи;

условия заданного варианта задания;

описание заданного численного метода;

блок-схему алгоритма подзадачи вычисления корня;

программу процедуры вычисления корня;

главную программу;

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

Варианты численного метода:

1) метод простых итераций,

2) метод Ньютона,

3) метод проб,

4) метод секущих,

5) метод хорд.

Упрощенный метод Ньютона:

, n=0,1,…

Метод ложного положения:

, n=0,1,…;

c - фиксированная точка из окрестности корня

Метод секущих:

, n=0,1,…

Метод Стеффенсена:

, n=0,1,…

3. Описание Метод секущих

Метод секущих, так же, как и метод проб, использует не одно, а два начальных приближения, которые мы обозначим соответственно xn1 и xn2. Перед выполнением первой итерации воспользуемся правилом (6) для определения значений этих приближений.

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 1. Графическая иллюстрация метода секущих

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

Из трех приближений к корню оставим два последних (отбрасываем самое старое xn1). В методе секущих это делается по следующему правилу:

xn1 = xn2; xn2 = xs.

Выполнение итераций можно прекратить при выполнении условия

|xn2 - xn1|< e,

а полученное значение приближения xs взять в качестве искомого значения корня xw.

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

Обратим внимание на то, что формула имеет много общего с формулой Ньютона. Знаменатель в формуле есть не что иное, как среднее значение производной f`(x) на отрезке [xn1, xn2].

1.2 Метод секущих

Пусть на отрезке [a; b] отделен корень с уравнения f(x) = 0 и f-функция непрерывна на отрезке [a; b], а на интервале ]a; b[ существуют отличные от нуля производные f ' и f ”.

Запишем уравнение f(x) = 0 в виде:

x = x - ( f(x)/f '(x)) (1)

Решая его методом итераций можем записать:

xn+1 = x n- (f(x n)/f '(x n)) (2)

Если на отрезке [a;b] f '(x) * f “(x) > 0, то нулевое приближение выбираем x0=a. Рассмотрим геометрический смысл метода. Рассмотрим график функции y=f(x). Пусть для определенности f `(x) > 0 и f “(x) > 0 (рис. 1). Проведем касательную к графику функции в точке B(b,f(b)). Ее уравнение будет иметь вид:

y = f(b) + f '(b) * (x -b)

Полагая в уравнении y = 0 и учитывая, что f '(x) ? 0, решаем его относительно x. Получим:

x = b - (f (b) /f `(b))

Нашли абсциссу x1 точки c1 пересечения касательной с осью ox:

x1 = b - (f (b) - f ' (b))

Проведем касательную к графику функции в точке b1 (x1; f (x1)). Найдем абсциссу x2 точки с2 пересечения касательной с осью Ox:

x2 = x1 - (f (x1)/(f '(x1))

Вообще:

xk+1=x k - (f(x k)/f '(x k)) (3)

Таким образом, формула (3) дает последовательные приближения (xk) корня, получаемые из уравнения касательной, проведенной к графику функции в точке b k(x k; f(x k0) метод уточнения корня c [a;b] уравнения f(x) = 0 с помощью формулы (3) называется методом касательной или методом Ньютона.

Геометрический смысл метода касательных состоит в замене дуги y = f (x) касательной, одной к одной из крайних точек. Начальное приближение x0 = a или x0 = b брать таким, чтобы вся последовательность приближения х k принадлежала интервалу]a;b[. В случае существования производных f', f”, сохраняющих свои знаки в интервале, за х0 берется тот конец отрезка [a; b], для которого выполняется условие f'(х0) * f(х0) > 0. Для оценки приближения используется общая формула:

|c-x k-1 | > | f (x k+1)/m|,

где m = minf'(x) на отрезке [a;b].

На практике проще пользоваться другим правилом:

Если на отрезке [a;b] выполняется условие 0 < m < | f (x)| и заданная точность решения, то неравенство |x k+1-x k| влечет выполнение неравенства |c-x k-1|.

В этом случае процесс последовательного приближения продолжают до тех пор, пока не выполнится неравенство: |c-x k-1|

Упрощенный метод Ньютона:

, n=0,1,…

Метод секущих:

, n=0,1,…

1.3 Тестовый пример

Для заданного нелинейного уравнения вида f(x)=0 графическим или аналитическим способом найти интервалы локализации корней, 5x-3x-5=0

5x-3x-5=0; y=5x y=3x-5

5x=3x+5 x -2 -1 0 1 2 x -2 2

y 0,04 0,2 1 5 25 y -1 11

графический метод

Первое решение находится в интервале (-2;-1). Второе в интервале (1;2)

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

б) метод секущих

1) (-2;-1)

f(x)=5x-3x-5

f(-2)=5-2+6-5=1/25+1=26/25=1.04>0

f(-1)=5-1+3-5=1/5-2=-1.8<0

x1=a-(b-a)f(a)/f(b)-f(a)=-2-(-1+2)*1.04/-1.8-1.04=-1/6338<0

f(-1.6338)=5-1.6338+3*1.6338-5=-0.0265<0

применим метод к промежутку (-2;-1.6338)

x2=-2-(-1.6429+2)*1.04/(-0.0002-1.04)=-1.64297

f(-1.64297)=5-1.6338+3*1.64297-5=-0.00003

искомый корень: -1.6429

2) (-2;-1)

f(1)=51-3-5=-3<0

f(2)=52-3*2-5=25-11=14>0

x1=a-(b-a)f(a)/f(b)-f(a)=1-(2-1)*(-3)/-14+3=1+3/17=1.1765

f(1.1765)=51.1765+3*1.1765-5=-1.8869<0

(1.1765;2)

x2=a-(b-a)f(a)/f(b)-f(a)=1.1765-(2-1.1765)*(-1.8869)/-14+-1.8869=1.2743

f(1. 2743)=-1.04795<0

(1.2743;2)

x3=a-(b-a)f(a)/f(b)-f(a)=1.2743-(2-1.2743)*(-1.04795)/-14+-1.04795=1.3248

f(1. 3248)=-0.5411<0

(1.3248;2)

x4=a-(b-a)f(a)/f(b)-f(a)=1.3248-(2-1.3248)*(-0.5411)/-14+=-0.5411=1.3499

f(1. 3499)=-0.2688<0

(1.3499;2)

x5=a-(b-a)f(a)/f(b)-f(a)=1.3499-(2-1.3499)*(-0.2688)/-14+-0.2688=1.3621

f(1. 3621)=-0.1313<0

(1.3621;2)

x6=a-(b-a)f(a)/f(b)-f(a)=1.3621-(2-1.3621)*(-0.1313)/-14+-0.1313=1.3680

f(1. 3680)=-0.0635<0

(1.3680;2)

x7=a-(b-a)f(a)/f(b)-f(a)=1.3680-(2-1.3680)*(-0.0635)/-14+-0.0635=1.3709

f(1. 3709)=-0.0299<0

(1.3709;2)

x8=a-(b-a)f(a)/f(b)-f(a)=1.3709-(2-1.3709)*(-0.0299)/-14+-0.0299=1.3722

f(1. 3722)=-0.0148<0

(1.3722;2)

x9=a-(b-a)f(a)/f(b)-f(a)=1.3722-(2-1.3722)*(-0.0148)/-14+-0.0148=1. 3729

f(1. 3729)=-0.0067<0

(1.3729;2)

x10=a-(b-a)f(a)/f(b)-f(a)=1.3729-(2-1.3729)*(-0.0067)/-14+-0.0067=1.3732

f(1. 3732)=-0.0032<0

(1.3732;2)

x11=a-(b-a)f(a)/f(b)-f(a)=1.3732-(2-1.3732)*(-0.0032)/-14+-0.0032=1.3733

f(1. 3733) =-0.00199<0

(1.3733;2)

x12=a-(b-a)f(a)/f(b)-f(a)=1.3733-(2-1.3733)*(-0.00199)/-14+-0.00199=1.3734

f(1. 3734)=-0.0008<0

(1.3734;2)

x13=a-(b-a)f(a)/f(b)-f(a)=1.3734-(2-1.3734)*(-0.0008)/-14+-0.0008=1.37344

f(1. 37344)= -0.0004<0

(1.37344;2)

x14=a-(b-a)f(a)/f(b)-f(a)=1.37344-(2-1.37344)*(-0.0004)/-14+-0.0004=1.3735

f(1. 3735)=-0.0003<0

(1.3735;2)

x15=a-(b-a)f(a)/f(b)-f(a)=1.3735-(2-1.3735)*(-0.0003)/-14+-0.0003=1.37347

f(1. 37347)=-0.000001<0

(1.37347;2)

искомый корень: 1.3734

Глава 2. Вычисление значения функции при помощи интерполяционной формулы

2.1 Общая характеристика методов интерполяционной формулы

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

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

Обычно стоится в виде

,

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

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

Чаще всего используя алгебраическое интерполирование: . Существует ряд явных представлений алгебраических интерполяционных многочленов. Например, интерполяционный многочлен Лагранжа имеет вид:

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

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

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

Часто при обработке эмпирических данных коэффициенты в определяют исходя из требования минимизации суммы

- заданные числа, .

Такое построение функции называют интерполированием по методу наименьших квадратов.

Интерполирование функций многих переменных имеет ряд принципиальных и алгебраических трудностей. Например, в случае алгебраической интерполяции интерполяционный многочлен Лагранжа фиксированной степени, вообще говоря, не существует для произвольной схемы различных узлов интерполяции. В частности для функций двух переменных такой многочлен суммарной степени не выше n может быть построен по узлам лишь при условии, что эти узлы не лежат на алгебраической кривой порядка n.

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

Интерполирование функций и численные методы. Интерполирование функции используется:

для замены сложно вычисляемой функции другой, вычисляемой проще

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

для получения сглаживающих функций

для приближенного нахождения предельных значений функции

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

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

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

,

где - разделенная разность функций для узлов и .

Другой подход к построению численных методов решения уравнения =0 основан на интерполировании обратной функции . Пусть в качестве интерполяционной формулы для функции взят интерполяционный алгебраический многочлен Лагранжа , построенный по узлам Тогда за следующее приближению к корню уравнения =0 берется величина .

Численное интегрирование. Аппарат интерполирования функции лежит в основе построения многих квадратурных и кубатурных формул. Такого рода формулы строятся путем замены интегрируемой функции на всей области или на её составных частях интерполяционными многочленами того или иного вида и последующим интегрированием этих многочленов. Например квадратурные формулы наивысшей алгебраической степени точности, так называемые квадратурные формулы Гаусса:

где - знакопостоянная весовая функция, получаемая в результате замены функции интерполяционным алгебраическим многочленом, построенным по корням ортогонального относительно веса многочлена степени n.

Изложенная выше схема построения формул для приближенного вычисления интегралов применима и в многомерном случае.

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

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

Интерполяционная формула - для приближенного вычисления значений функции , основанного вычисления на замене приближаемой функции более простой в каком- то смысле функцией

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

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

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

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

Интерполяционная формула Эверетта: Интерполяционные формулы Грегори- Ньютона построенные по нисходящим или восходящим разностям, наиболее целесообразно применять в начале или конце таблицы. При этом для достижения высокой степени точности иногда приходится рассматривать разности, отстоящие достаточно далеко от интересующих нас значений функции или . Поэтому на средних участках таблицы лучше результаты дают интерполяционные формулы, построенные на базе центральных разностей, то есть разностей, которые ближе всего расположены к центральной сотке, содержащей .

К интерполяционным формулам с центральными разностями относятся формулы Гаусса, Стирлинга, Бесселя, Эверетта и многие другие; формула Эверетта получила наибольшее распространение, она была получена 1900 г.:

где ; ; .

Формуле Эверетта так же можно придать форму, наиболее удобную для вычисления:

если для ее коэффициентов ввести обозначения

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

; ;

2.2 Интерполяционная формула Ньютона

Если точки x0, x1, ..., xn расположены на равных расстояниях (xk = x0 + kh), многочлен Pn(x) можно записать так:

(здесь x0 + th = х, а Dk -- разности k-го порядка: Dk yi = Dk -- 1 yi +1 -- Dk -- 1yi).

Это так называемая формула Ньютона для интерполирования вперёд; название формулы указывает на то, что она содержит заданные значения у, соответствующие узлам интерполяции, находящимся только вправо от x0. Эта формула удобна при интерполировании функций для значений х, близких к x0. При интерполировании функций для значений х, близких к наибольшему узлу хn, употребляется сходная формула Ньютона для интерполирования назад. При интерполировании функций для значений x, близких к xk, формулу Ньютона целесообразно преобразовать, изменив начало отсчёта.

Формулу Ньютона можно записать и для неравноотстоящих узлов, прибегая для этой цели к разделённым разностям. В отличие от формулы Лагранжа, где каждый член зависит от всех узлов интерполяции, любой k-й член формулы Ньютона зависит от первых (от начала отсчёта) узлов и добавление новых узлов вызывает лишь добавление новых членов формулы (в этом преимущество формулы Ньютона).

2.3 Тестовый пример

Для функции заданной в таблице построить первый интерполяционный член и вычислить по нему приближенно значение в точке х=2.98

Xi

2.95

2.97

2.99

3.01

3.03

3.05

3.07

3.09

3.11

3.13

Yi

113.84

119.68

106.28

120.68

107.43

114.88

115.53

117.4

120.21

118.74

X=2.98

Xi

Yi

?yi

?2yi

?3yi

?4yi

?5yi

?6yi

?7yi

?8yi

?9yi

2.95

113.84

5.82

2.97

119.68

-19.2

-13.82

46.98

2.99

106.28

27.78

-102.4

14.4

-55.4

206.19

3.01

120.68

-27.6

103.78

-385.8

-13.2

48.35

-179.6

675.8

3.03

107.43

20.7

-75.85

291

-1121

7.45

-27.5

11.37

-446

1170

3.05

114.88

-6.8

35.52

-155.1

648.3

0.65

8.02

-43.79

202.1

3.07

115.53

1.22

-8.27

47

1.87

-0.25

3.21

3.09

117.4

0.97

-5.05

2.84

-5.31

3.11

120.21

-4.34

-1.5

3.13

118.74

X0=2.97, h=0.02

q=x-x0/h=2.98-2.97/0.02=0.01/0.02=0.5

y(x)=y0+q?y+q)q-1)/2!*?2y0+q(q-1)(q-2)/3!*?2y0+…+q(q-1)…(q…n+1)/n!*?ny0

y(2.98)=119.66+0.5(-13.38)+0.5(0.5-1)/1*2*27.78+0.5(0.5-1)(0.5-2)/1*2*3*(-55.43)+0.5(0.05-1)(0.5-2)(0.5-3)/1*2*3*4*103.78+0.5(0.5-1)(0.5-2)(0.5-3)(0.5-4)/1*2*3*4*5*(-179.63)+ 0.5(0.5-1)(0.5-2)(0.5-3)(0.5-4)(0.5-5)/1*2*3*4*5*6*291+0.5(0.5-1)(0.5-2)(0.5-3)(0.5-4)(0.5-5)(0.5-6)/1*2*3*4*5*6*7*(-446.16)+0.5(0.5-1)(0.5-2)(0.5-3)(0.5-4)(0.5-5)(0.5-6)(0.5-7)/1*2*3*4*5*6*7*8*648.32=75.422

Заключение

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

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

Список литературы

1. Архангельский Н.А. Вычислительные методы алгебры в приемах и задачах. М.: МАИ, 1976.

2. Васильев Ф.П. Численные методы решения экстремальных задачь. М.: Наука, 1988.

3. Васильков Ф.В., Василькова Н.Н. Компьютерные технологии вычислений в математическом моделировании: Учеб. пособие. М.: Финансы и статистика, 1999.

4. Фильчаков П.Ф., Справочник по высшей математике. Киев: Наукова думка, 1974.

5. Фильчаков П.Ф., Численные методы. Киев: Наукова думка, 1976.

6. Большая математическая энциклопедия. М.: Олма-Пресс, 2004.

7. Демидович Б.П., Марон И.А. Основы вычислительной математики. М.: Наука, 1970.

8. Тихонов А.Н., Вводные лекции по прикладной математике. М.: Наука, 1984.

9. Калиткин Н.Н., Численные методы. М.: Наука, 1987.

10. Корн Г., Корн Т. Справочник по математике. М.: Наука, 1984.

Приложение 1

#include <math.h>

#include <stdio.h>

double f(double x)

{

return 5^x-3*x-5;

}

double findRootChord (double a,

double b,

double eps,

long max_step,

double (&f)(double))

{

double f_a = f(a);

double f_b = f(b);

double xn;

for(long k=0; k<max_step; k++)

{

xn = a-f_a*(b-a)/(f_b-f_a); double f_xn = f(xn);

if(fabs(f_xn)<eps)

{

break;

}

if(f_xn*f_b<0)

{

a = xn; f_a = f_xn;

}

else

{

b = xn; f_b = f_xn;

}

}

return xn;

}

void main()

{

clrscr();

cout.precision(6);

cout.setf(ios::fixed|ios::showpoint);

double x = findRootChord(-10,1,.0000001,10000,f);

cout<<"x = "<<x<<endl;

cout<<"f(x) = "<<f(x)<<endl;

getch();

}

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Приложение 2

struct files

{

float x;

float y;

struct files *radr;

}*w_f, *r_f, *l_f;

struct msp

{

struct msp *radr1;

float z;

} *w_msp, *r_msp, *l_msp;

struct fll

{

struct fll *radr2;

float a;

} *w_fll,*r_fll, *l_fll;

struct u

{

struct u *uadr;

float u;

} *w_u,*r_u,*l_u;

struct v

{

struct v *vadr;

float v;

} *w_v,*r_v,*l_v;

#include <stdio.h>

#include <stdlib.h>

float FileFunction()

{ float h;

FILE *in;

in=fopen("spisok.txt","r");

for (;!feof(in);)

{

w_f=(struct files *)malloc(sizeof(struct files));

if(l_f==NULL) {l_f=w_f;}

else {r_f->radr=w_f;}

fscanf(in,"%f",&w_f->x);

fscanf(in,"%f",&w_f->y);

r_f=w_f;

}w_f=l_f;

fclose(in);

w_f=l_f->radr;

h=(w_f->x)-(l_f->x);

return h;

}

void TableMin()

{

float s,s1,p;

do

{

s=w_f->y;

w_f=w_f->radr;

s1=w_f->y;

p=s1-s;

w_msp=(struct msp *)malloc(sizeof(struct msp));

w_fll=(struct fll *)malloc(sizeof(struct fll));

if(l_msp==NULL){l_msp=w_msp;}

else{r_msp->radr1=w_msp;}

if(l_fll==NULL){l_fll=w_fll;}

else{r_fll->radr2=w_fll;}

w_fll->a=p;r_fll=w_fll;

w_msp->z=p;r_msp=w_msp;

}

while(w_f!=r_f);

w_msp=l_msp;

return;

}

void TableMax()

{

float p,s,s1,i,c;

for(i=1;i<=8;i++)

{c=w_msp->z;

l_msp=NULL;

do

{

s=c;

w_msp=w_msp->radr1;

c=w_msp->z;

s1=w_msp->z;

p=s1-s;

w_fll=(struct fll *)malloc(sizeof(struct fll));

r_fll->radr2=w_fll;

w_fll->a=p;r_fll=w_fll;

r_msp->radr1=w_msp;

if(l_msp==NULL){w_msp->z=p;l_msp=w_msp;}

else{w_msp->z=p;}

}while(w_msp!=r_msp);

r_msp=w_msp;

w_msp=l_msp;

}

return;

}

float UX(float x,float h)

{

float u,u1;

int i=1;

w_f=l_f;

while(w_f!=r_f){w_f=w_f->radr;i++;}

i=(i/2);

for(w_f=l_f;i>=1;i--){w_f=w_f->radr;}

u=(x-(w_f->x))/h;

w_u=(struct u *)malloc(sizeof(struct u));

l_u=w_u;

w_u->u=u;

r_u=w_u;

for(i=1;i<=3;i++)

{

u1=-(i*i-u*u)/((i*2)*((i*2)+1));

u1=u1*(w_u->u);

w_u=(struct u *)malloc(sizeof(struct u));

r_u->uadr=w_u;

w_u->u=u1;

r_u=w_u;

}

return u;

}

float VX(float u)

{

float v1,v,i;

v=1-u;

w_v=(struct v *)malloc(sizeof(struct v));

l_v=w_v;

r_v->vadr=w_v;

w_v->v=v;

r_v=w_v;

for(i=1;i<=4;i++)

{

v1=-(i*i-v*v)/((i*2)*((i*2)+1));

v1=v1*(w_v->v);

w_v=(struct v *)malloc(sizeof(struct v));

r_v->vadr=w_v;

w_v->v=v1;

r_v=w_v;

}

return 1;

}

float Summa()

{

int j,i=1;

float s,s1,p;

w_f=l_f;

w_fll=l_fll;

w_u=l_u;

w_v=l_v;

while(w_f!=r_f){w_f=w_f->radr;i++;}

i=(i/2);

for(w_f=l_f;i>=1;i--){w_f=w_f->radr;}

s=(w_f->y)*(w_v->v);

w_f=w_f->radr;

s1=(w_f->y)*(w_u->u);

w_f=l_f;

while(w_f!=r_f){w_f=w_f->radr;i++;}

i++;

j=i;

do

{

if(i==0){j--;}

i=j;

j=i-1;

i=j;

for(;i>=1;i--){w_fll=w_fll->radr2;}

i=j;

for(i=((i/2)-1);i>=1;i--){w_fll=w_fll->radr2;}

w_v=w_v->vadr;

s=s+(w_fll->a)*(w_v->v);

i=j;

for(i=((i/2));i>=1;i--){w_fll=w_fll->radr2;}

}while(w_fll!=r_fll);

w_fll=l_fll;

w_f=l_f;

while(w_f!=r_f){w_f=w_f->radr;i++;}

j=i;

w_u=l_u;

do

{

j=i;

for(;i>=1;i--){w_fll=w_fll->radr2;}

i=j-1;

for(i=((i/2)+1);i>=1;i--){w_fll=w_fll->radr2;}

w_u=w_u->uadr;

s1=s1+(w_fll->a)*(w_u->u);

i=j-1;

j=0;

i=i-1;

for(i=((i/2));i>=1;i--,j++){w_fll=w_fll->radr2;}

i=j*2;

}while(w_u!=r_u);

p=s1+s;

return p;

}

void main()

{

float p,u,h,x;

l_msp=NULL;l_fll=NULL;l_f=NULL;

w_u=NULL;r_u=NULL;l_u=NULL;

w_v=NULL;r_v=NULL;l_v=NULL;

h=FileFunction();

w_f=l_f;

TableMin();

TableMax();

printf("\n BBEDuTE X=");

scanf(" %f",&x);

u=UX(x,h);

VX(u);

p=Summa();

printf("\nOTBET: %3.4f",p);

getch();}

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Размещено на Allbest.ru

...

Подобные документы

  • Итерационные методы решения нелинейных уравнений, системы линейных алгебраических уравнений (СЛАУ). Решение нелинейных уравнений методом интерполирования. Программная реализация итерационных методов решения СЛАУ. Практическое применение метода Эйлера.

    курсовая работа [1,6 M], добавлен 20.01.2010

  • Обзор существующих методов по решению нелинейных уравнений. Решение нелинейных уравнений комбинированным методом и методом хорд на конкретных примерах. Разработка программы для решения нелинейных уравнений, блок-схемы алгоритма и листинг программы.

    курсовая работа [435,8 K], добавлен 15.06.2013

  • Решение уравнения методом половинного деления. Программа в Matlab для уравнения (x-2)cos(x)=1. Решение нелинейных уравнений методом Ньютона. Интерполяция заданной функции. Решение системы линейных алгебраических и обыкновенных дифференциальных уравнений.

    курсовая работа [1,4 M], добавлен 15.08.2012

  • Особенности точных и итерационных методов решения нелинейных уравнений. Последовательность процесса нахождения корня уравнения. Разработка программы для проверки решения нелинейных функций с помощью метода дихотомии (половинного деления) и метода хорд.

    курсовая работа [539,2 K], добавлен 15.06.2013

  • Этапы численного решения нелинейных уравнений заданного вида: отделение (изоляция, локализация) корней уравнения аналитическим или графическим способами, уточнение конкретного выделенного корня методом касательных (Ньютона). Решение в системе MathCad.

    курсовая работа [271,6 K], добавлен 22.08.2012

  • Решение нелинейного уравнения шаговым методом, методом половинного деления, методом Ньютона и простой итерации с помощью программы Mathcad. Разбиение промежутка на число n интервалов. Условия сходимости корня. Составление программы для решения на С++.

    лабораторная работа [207,5 K], добавлен 10.05.2012

  • Сравнительный анализ итерационных методов решения нелинейных алгебраических и трансцендентных уравнений. Простейший алгоритм отделения корней нелинейных уравнений. Метод половинного деления. Геометрический смысл метода Ньютона. Метод простой итерации.

    реферат [95,0 K], добавлен 06.03.2011

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

    практическая работа [321,9 K], добавлен 24.06.2012

  • Анализ метода касательных (метода секущих Ньютона), аналитическое решение нелинейного уравнения. Описание алгоритма решения задачи, пользовательских идентификаторов, блок-схем, программного обеспечения. Тестирование программы на контрольном примере.

    курсовая работа [97,1 K], добавлен 10.01.2014

  • Решение нелинейных уравнений методом простых итераций и аналитическим, простым и модифицированным методом Ньютона. Программы на языке программирования Паскаль и С для вычислений по вариантам в порядке указанных методов. Изменение параметров задачи.

    лабораторная работа [191,0 K], добавлен 24.06.2008

  • Метод численного интегрирования. Использование метода половинного деления для решения нелинейного уравнения. Определение отрезка неопределенности для метода половинного деления. Получение формулы Симпсона. Уменьшение шага интегрирования и погрешности.

    курсовая работа [3,0 M], добавлен 21.05.2013

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

    курсовая работа [665,7 K], добавлен 22.08.2013

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

    курсовая работа [220,0 K], добавлен 19.12.2009

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

    дипломная работа [846,0 K], добавлен 22.09.2012

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

    курсовая работа [96,6 K], добавлен 02.06.2012

  • Отделение корней методом простых интеграций. Дифференцирование и аппроксимация зависимостей методом наименьших квадратов. Решение нелинейного уравнения вида f(x)=0 методом Ньютона. Решение системы линейных уравнений методом Зейделя и методом итераций.

    курсовая работа [990,8 K], добавлен 23.10.2011

  • Решение в среде Microsoft Excel с помощью программной модели "Поиск решения" транспортной задачи, системы нелинейных уравнений, задачи о назначениях. Составление уравнения регрессии по заданным значениям. Математические и алгоритмические модели.

    лабораторная работа [866,6 K], добавлен 23.07.2012

  • Матричная форма записи системы линейных уравнений, последовательность ее решения методом исключений Гаусса. Алгоритмы прямого хода и запоминания коэффициентов. Решение задачи о сглаживании экспериментальных данных с помощью метода наименьших квадратов.

    курсовая работа [610,7 K], добавлен 25.06.2012

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

    курсовая работа [4,0 M], добавлен 27.03.2011

  • Изучение численных методов решения нелинейных уравнений, используемых в прикладных задачах. Нахождение корня уравнения методом простой итерации и методом касательных (на примере уравнения). Отделение корней графически. Программная реализация, алгоритм.

    курсовая работа [1,7 M], добавлен 15.06.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.