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




Цель и задачи курсовой работы

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

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

Указания по оформлению курсовой работы

Текст курсовой работы, в том числе алгоритмы, таблицы и программное обеспечение исследуемых задач должны быть распечатаны на стандартных листах белой бумаги [298x205 мм].

Текст курсовой работы набирается с использованием текстового редактора Word, шрифт New Roman, размер шрифта – 14 пт., через 1.5 интервала.

Текст размещается с одной стороны листа, соблюдая следующие границы: сверху – 25 мм, слева – 30 мм, справа – 15 мм, а снизу – 20 мм.

Алгоритмы, функциональные схемы и таблицы выполняются в среде Word, соблюдая стандарты оформления блок-схемы алгоритма.

Первый лист работы – титульный. Образец оформления приведен в Приложении А.

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

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

Каждый раздел должен начинаться с новой страницы. Все заголовки выделяются жирным шрифтом.

На последней странице студент приводит список использованной литературы при выполнении курсовой работы. Список литературы указывается согласно "Довідника здобувача наукового ступеню", изд-во "Бюлетеня Вищої атестаційної комісії України", Київ, 2006 р.

Содержание курсовой работы

Курсовая работа состоит из пяти основных разделов:

Первый раздел – циклические вычислительные процессы с использованием двумерного массива данных. Разработка блок-схем алгоритмов и составления программ на алгоритмическом языке Turbo Pascal.

Второй раздел – решение алгебраических и трансцендентных уравнений. Итерационный цикл и метод Рыбакова.

Третий раздел – программирование с использованием компьютерной графики.

Четвертый раздел – программное обеспечение для решения задач с двумерными массивами данных в среде Windows c использованием Delphi.

Пятый раздел – решение геодезических задач.

Каждый раздел включает:

· введение;

· назначение;

· алгоритм работы;

· программное обеспечение на языке turbo pascal;

· подробное описание алгоритмов;

· вычисление задач на персональном компьютере;

· анализ полученных результатов;

· выводы и рекомендации;

· литература.

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

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

· название раздела курсовой работы;

· группа, фамилия, имя, отчество;

· № зачетной книжки;

· вариант и условие задания.

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

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

Программы должны сопровождаться комментариями к отдельным фрагментам.


Первый раздел – циклические вычислительные процессы с использованием одномерного массива данных. Разработка блок-схем алгоритмов и составление программ на алгоритмическом языке Turbo Pascal.

Составить алгоритм и программу на языке Turbo Pascal для решения задачи по обработке одномерного массива. Размерность массива задается пользователем в диапазоне от 5 до 20.

Варианты задания приведены в таблице 3.1.

Таблица 3.1

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

 


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

Известно, что не всякое уравнение может быть решено точно. Прежде всего это относится к большинству трансцендентных уравнений, т. е. уравнений, где неизвестный Х находится под знаком трансцендентной функции (трансцендентные функции – это функции типа ех , sin x, cos x и т. д., трансцендентные числа – π – 3,14…, 2√2, т. е. числа, не удовлетворяющие никакому алгебраическому уравнению с целыми коэффициентами).

Методы решения линейных и квадратных уравнений были известны еще древним грекам. Решение же уравнений 3-го, 4- го порядка были получены итальянскими математиками Кордано, Феррари и др. в эпоху Возрождения в XV веке.

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

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

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

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

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

Любое число, обращающее функцию f(x) в ноль называется нулем функции, или же корнем уравнения.

Приближенные методы нахождения действительных корней состоят из двух этапов:

1 этап – отделение корней. Так называется процесс определения как можно более узких промежутков, где имеется только один корень уравнения.

2 этап – в нем задается степень точности решения уравнения и уточняется значение корней.

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

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

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

Допустим, задана функция f(x)=0 и эта функция имеет вид

x – 1= sin x.

Принимаем у1 = sin x, у2 = х – 1.

Построим график:

Рис. 4.1.

Точка пересечения двух функций является корнем уравнения.

х=2

Рассмотрим график функции х2-sin x-1 = 0:

у12-1; у2 = sin x

Рис. 4.2.

Из рисунка 4.2 видно, что корень находится в интервале [1,2].

Это и есть графический способ обнаружения интервала.

Табличный способ поиска интервала корня уравнения х2-sin x-1 = 0

 

х -∞      
F(x) - - - +

Таким образом интервал [1,2] соответствует интервалу где имеется корень уравнения.


Метод итерации (последовательного приближения).

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

Сущность метода заключается в следующем:

Пусть дано уравнение:

f(x)=0 (1),

где f(x) – непрерывная функция и требуется определить его вещественные корни.

После преобразования уравнения по предыдущей методике (анализ функции и получение рекуррентной формулы) получим:

х=φ(х) (2)

Выберем каким-нибудь способом грубое начальное значение корня в интервале [a,b] и, подставив в правую часть уравнения (2), получим:

х1= φ(х0)

х2= φ(х1)..... хп= φ(хп-1)

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

Замечание. Если абсолютное значение производной функции |f ’(x) | <1, то функция сходящаяся. В противном случае имеет место расходящийся процесс.

 

Проверка сходимости рекуррентной формулы.

Пусть задана функция f(x)=0.

Получена некоторая рекуррентная формула x=f(x).

Рекуррентная формула сходится, если |f ’(x) |<1.

Рекомендации по анализу функции.

1. Пусть задана функция f(x) и интервал [a,b] найден любым способом.

2. Продифференцируем исходную функцию f(x) и получим f ’(x).

3. Проверяем знак производной в заданном отрезке и, сужая интервал [a,b], добиваемся того, чтобы знак производной функции был постоянным.

4. Определяем максимальное значение А= f ’(x).

5. Выбираем некоторое положительное число М>А (обычно М≥2А).

6. Составляем сходящуюся рекуррентную формулу в виде

.

Если F(х)<0, то знак (+), в противном случае – (-).

Задание. Итерационный цикл.

1. Вычислить табличные значения функции f(x) на заданном интервале.

2. Построить график зависимости y=f(x).

3. Найти корни уравнения аналитически и с помощью программы.

4. Анализ (выводы).

Таблица 4.1

Задания ко второму разделу

Вид функции Корни уравнения, полученные методами:
итерации половинного деления.
  x:=1/(cos(2*x*pi/180)+5.06) 0,165 x=0,165
  x:=0.6*exp(x*ln(1.5))/2.25 0,3013 x=0,301
  x:=(x*x+0.35)/2 0,1938 1,795 x1=0,194 x2=1,806
  x:=exp(1/3*ln(sqrt(x)+0.5)) 1,1644955 x=1,165
  x:=(100-exp(x*ln(10)))/2 2,02997 x=1,982
  x:=(exp(x)-x*x-20)/2 3,712997 x=3,72
  x:=5.09-exp(1/3*ln(x)) 3,5627 x=3,563
  x:=sin(x*pi/180)-0.25 -0,2544 x=-0,254
  x:=sqrt(ln(1+x*x)+9.75) 3,51295 x=3,513
  x:=(sin(x*pi/180)+3.2)/3 1,07291 x=1,073
  x:=(cos(x*pi/180)+1.5)/3 0,833298 x=0,833
  x:=(exp(x)+2*x*x*x)/2 -1,053539 x=-1,076
  x:=(x*x*x-5)/9 -2,50844 0,576884 3,25868 x1=-2,670 x2=-0,577 x3=3,247
  x:=x*x*x*x-2*x*x*x-1 -0,57574 2,270159 x1=-0,557 x2=2,277
  x:=ln(x*x*x-5.5) 2,7861 4,31647 x1=2,799 x2=4,316
  x:=ln(2*x+2.2) -0,916291 1,7352887 x1=-0,896 x2=1,735
  x:=(4*x*x*x-2)/5 -6,744 -0,5 1,3576 x1=-0,781 x2=-0,5 x3=1,281

 

Примечание: корни уравнений искать в пределах [–5; +5], за исключением тех функций, в которых есть тригонометрические, логарифмические функции и квадратные корни, в них предел поиска [0; +5].

Рассмотрим пример.

Задана функция F(X)=Х5-3Х+1, где , определим корни уравнения. Согласно приведенной методике определим знаки функции в данном отрезке.

Таблица 4.2

Х Знак F(X) Х Знак F(X) Примечание
- - + +  
-3 - +3 + F(-3)*F(+3)<0
-2 - +2 + F(-2)*F(+2)<0
-1 + +1 - F(-1)*F(+1)<0
  +     F(0)*F(+1)<0

Для уточнения количества корней уравнения вычислим табличное значение функции в отрезке [-3, +3], принимая, что Хн=-3, Хк=+3, шаг dx=0.2.

Программа и результаты вычисления приведены ниже.

Program KORNI;

Uses crt;

Var x0,y,x,xk,dx:real;

Begin

Writeln('Vvod x0,xk,dx');

read(x0,xk,dx);

x:=x0;

repeat

y:=x*x*x*x*x-3*x+1;

Writeln('x=',x:2:1, ' y=',y:2:2);

x:=x+dx;

until (xk+dx-x)<0;

Readkey;

End.

По результатам вычисления выполним пп. 2,3,4 методики. Таким образом, в отрезке -2, +2 имеются 3 корня заданного уравнения. Интервалы корней уравнения: x= (-1.4, -1.2); (0.2, 0.4) и (1.2, 1.4).

Чтобы исключить ошибки, по данным таблицы построим график функции в EXCEL.

Рис. 4.3. График функции F(x)

 

Программа:

 

Program EPSILON3;

Uses crt;

Var x0,y,x,e:real;

Begin

Writeln('Vvod x0,e');

read(x0,e);

x:=x0;

repeat

y:=x;

x:=(x*x*x*x*x/3)+(1/3);

until abs(y-x)<=e;

Writeln('korni x= ',x:2:6);

Readkey;

End.

 

Теперь, задавая начальные и конечные значения интервала, например, [0, 1], уточним корень уравнения по программе.

 

 

Рис.4.4. Алгоритм уточнения

корня уравнения


Program PROVERKA;

Uses crt;

const n=3;

Var y:real;

i:integer;

x:array[1..n]of real;

Begin

Writeln('Vvod xi');

for i:=1 to n do Begin

read(x[i]);

Y:=x[i]*x[i]*x[i]*x[i]*x[i]-3*x[i]+1;

Writeln('x= ',x[i]:2:8, ' y= ',y:2:8);

End;

Readkey;

End.

Таблица 4.3

Заданная точность, Е Корень уравнения, Х Значение функции F(X)
0.1 0.33470508 0.000085
0.001 0.33473353 0.0000018
0.00001 0.33473413 0.00000004

Из таблицы 4.4 видно, что значение функции в интервале [0, 1] при корне уравнения 0.33473413 практически равно нулю, что и требовалось доказать! Таким образом, последовательное приближение очевидно.

Метод Рыбакова

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

Суть метода заключается в следующем.

Производная функции F(xi) заменяется некоторым числом М, причем М≥ F’(ε), где ε – значение Х на отрезке [a,b], при котором F’(x) максимальна.

При этом сходимость функции не нарушается, но замедляется. Метод Рыбакова удобен для поиска всех корней уравнения на отрезке [a,b].

Алгоритм поиска корней:

1. Задается начальное значение корня уравнения х=х0=а

2. Вычисляется приближение по формуле xi+1=xi+

3. Проверяем условие xi+1<b. Если условие выполняется, то на заданном отрезке [a,b] найдены все корни. Иначе проверяется условие точности.

4. Если условие |xi+1-xi|>ε выполняется, то значение xi+1 выводится в качестве корня уравнения и осуществляется поиск следующего корня, для чего:

· задается начальное приближение к очередному корню уравнения х0i+ ε и если х0<b, то переходим к пункту 2.

· если же х0≥b, то поиск корней в отрезке [a,b] закончен.

 

Количество итераций метода Рыбакова определяется по формуле

N=(b-a)*M/ ε

Х=X+|F(x)|/M, M>F’(E)

Пример

F(x)=X4-B*X2+36

Корни уравнения при [a,b]=[4,4], ε=10-5, М=100

Х1=-3 F (x)=7,629*10-6

Х2=-2 F (x)=-7,629*10-6

Х3=2 F (x)=7,629*10-6

Х4=3 F (x)=-7,629*10-6

 

 

Еще один вариант метода Рыбакова:

Входные данные: интервал корней А, В, точность Е, число М>F’(E) и шаг приращения аргумента D

 

 

Рис. 4.5. Алгоритм нахождения и уточнения корней уравнения методом Рыбакова




Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: