4285

Использование стандартных функций в языке С++

Лабораторная работа

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

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

Русский

2012-11-15

120.5 KB

13 чел.

Использование стандартных функций в языке С++

1 Цель работы 

Закрепление практических навыков по работе с функциями, работа со стандартными функциями.

В ходе выполнения работы необходимо создать программу, которая находит все корни уравнения на заданном интервале [a;b] с заданной точностью  (задается пользователем). Программа должна выводить список корней (при этом корни не должны повторяться) либо выводить соответствующее сообщение, если корней нет.

Таблица 1.1 – Индивидуальные задания

Номер студента в списке

Вид функции

1

2

3

4

5

6

7

8

9

10

11

12

13

14

Чтобы использовать стандартные математические функции вам необходимо подключить заголовочный файл cmath. В таблице 1.2  представлены некоторые используемые функции.

Таблица 1.2 – Используемые функции

double sqrt(double x);

Берет квадратный корень положительного числа

double pow(double x, double y);

Возводит x в степень y

double log(double x);

Вычисляет натуральный логарифм

double log10(double x);

Вычисляет десятичный логарифм.

int abs(int x);

Возвращает модуль целого числа

double fabs(double x);

Возвращает модуль вещественного числа

double sin(double x);

Вычисляет синус числа

double cos(double x);

Вычисляет косинус числа

double atan(double x);

Вычисляет тангенс числа

2 Теоретические сведения

МЕТОД ДИХОТОМИИ

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

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

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

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

К недостаткам метода можно отнести следующее - метод половинного деления практически удобно применять для грубого нахождения корня уравнения, так как при увеличении точности значительно возрастает объем вычислительной работы. Однако легко заметить и положительные его стороны – метод дихотомии легко реализуется на ЭВМ. Программа вычисления составляется так, чтобы ЭВМ находила значение правой части уравнения  в середине каждого из отрезков  и выбирала соответствующую его половину.

МЕТОД ЗОЛОТОГО СЕЧЕНИЯ

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

Деление отрезка [a;b] производится точками x1 = a + a1(ba) и x2 = a + a2(ba), где    a1 =   ;  a2 =  (a1 и a2  – дроби Фибоначчи).  Точки  x1  и  x2  расположены симметрично относительно середины отрезка, причём а < x1 < x2 < b. Надо отметить, что точка x1, в свою очередь производит золотое сечение отрезка [a;x2]. Аналогично, точка x2 производит золотое сечение отрезка [x1;b].

Метод золотого сечения применим для решения уравнения h(x) = 0, когда функция h(x) непрерывна и на концах предполагаемого интервала дислокации корня принимает значения разных знаков. Нахождение корня уравнения с помощью этого метода основывается на последовательном уменьшении длины отрезка, локализующего корень. Задача определения корня считается решенной, когда либо длина отрезка локализации становится меньше заданной погрешности, либо очередная граница отрезка попадает на корень уравнения.

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

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

Пусть заданы следующие величины: a, b и e, где  a и b — границы  отрезка, в которых функция h(x) принимает значения разных знаков; e – точность вычислений. Положим a1 = a, b1 = b. На отрезке [a1 ; b1] возьмём точки x1 и x2, производящие золотое сечение, и вычислим значения h(a1), h(b1), h(x1) и h(x2). Далее, если  h(a1) * h(x1)  0, то корень находится в левой части интервала, примем a2 = a1  и b2 = x1. Если  h(x2) * h(b1)  0, то корень находится в правой части интервала, примем a2 = x2  и b2 = b1; если h(x 1) * h(x2) < 0, то корень находится в центральной части интервала, примем a2 = x1  и b2 = x2. Затем сравниваем длину полученного отрезка [a2 ; b2] с величиной e. Если длина отрезка оказалась меньшей или равной величине e, то корень уравнения z находится по формуле: z = . Если длина отрезка оказалась больше величины e, то на отрезке [a2 ; b2] снова выбираются точки x1 и x2, производящие золотое сечение, и выполняются все вышеописанные действия до тех пор, пока  длина отрезка [a n ; b n] не станет меньше величины e.

МЕТОД КАСАТЕЛЬНЫХ (метод Ньютона)

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

Суть метода:

Пусть корень ξ уравнения

  f(x) = 0  (1)

отделен на отрезке , причем f’(x) и f”(x) непрерывны и сохраняют определенные знаки при . Найдя какое-нибудь n-е приближенное значение корня xn ≈ ξ (axnb), мы можем уточнить его по методу Ньютона следующим образом. Положим

 (2)

где hn считаем малой величиной. Отсюда, применяя формулу Тейлора, получим:

Следовательно,

Внеся эту поправку в формулу (2), найдем следующее (по порядку) приближение корня

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

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

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

Полагая , получим формулу (3)

(3)

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

.

3 Порядок выполнения работы

1. Разработать алгоритм для решения поставленной задачи.

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

3. Проверить работоспособность программы на тестовых данных.

4. Сохранить результаты работы. Оформить отчет по лабораторной работе.

Содержание отчета:

  1.  Титульный лист.
  2.  Название лабораторной работы.
  3.  Цель лабораторной работы.
  4.  Ход выполнения работы (включить алгоритм решения задачи; программный код; пример использования программы).
  5.  Выводы по проделанной работе c описанием ошибок, с которыми Вы столкнулись при выполнении лабораторной работы.


 

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

76909. Лицевой нерв, его топография, ветви и области иннервации 181.44 KB
  VII пара включает два нерва лицевой и промежуточный смешанные нервы двигательные парасимпатические и чувствительные. Промежуточный нерв нередко обозначают как XIII пару и тогда в VII паре остается только лицевой двигательный нерв. Нерв выходит из мозга в поперечной борозде между мостом и продолговатым мозгом латерально от оливы направляясь по задней черепной яме к внутреннему слуховому проходу куда вступает вместе с VIII парой.
76910. Преддверно-улитковый нерв. VIII пара черепных нервов и топография ее ядер. Проводящие пути органов слуха и равновесия 183.89 KB
  Преддверная и улитковая части VIII пары объединяются во внутреннем слуховом проходе и направляются через заднюю черепную яму к мозговому стволу к его поперечной борозде между мостом и продолговатым мозгом где латеральнее лицевого и промежуточного нервов входят во внутрь моста и заканчиваются синапсами на ядрах вестибулярного поля моста. Вестибулярное поле находится в латеральных углах ромбовидной ямки на него проецируются два улитковых и четыре вестибулярных ядра залегающих в вентролатеральных отделах моста. Улитковые ядра: переднее и...
76911. Языкоглоточный нерв. IX пара черепных нервов, их ядра, топография и области иннервации 180.17 KB
  IX пара языкоглоточные нервы смешанные развиваются из заднего мозгового пузыря. Корешки нерва 45 выходят позади оливы продолговатого мозга и сливаются в короткий ствол. Чувствительные узлы нерва: верхний в яремном отверстии нижний в области каменистой ямки височной кости содержат псевдоуниполярные нейроны центральные отростки которых формируют чувствительный корешок нерва.
76912. Блуждающий нерв, его ядра, их топография; ветви и области иннервации 181.14 KB
  Краниальная часть нерва отдает ветви: менингиальную веточку для твердой мозговой оболочки в задней черепной яме; ушную ветвь которая через сосцевидный каналец и барабаннососцевидную щель подходит к коже наружного слухового прохода и ушной раковине. Ветви шейной части: глоточные к глоточному сплетению и через него к слизистой мышцамконстрикторам глотки мышцам мягкого неба кроме напряжителя из тройничного нерва шейные верхние сердечные ветви к сердечным сплетениям гортанные верхние нервы к перстнещитовидной мышце наружная...
76913. Прибавочный и подъязычный нервы 181.56 KB
  Обе пары XI XII по выходе из черепа идут между внутренней яремной веной и внутренней сонной артерией и ложатся под заднее брюшко двубрюшной мышцы. Из черепа ствол нерва выходит через яремное отверстие вместе с IX X парами и внутренней яремной веной занимая при этом латеральное положение. Внутренняя веточка для соединения с блуждающим нервом; наружная ветвь для трапециевидной и грудиноключичнососцевидной мышц; Наружная ветвь проходит между внутренней яремной веной и внутренней сонной артерией а затем уходит под заднее брюшко...
76914. Вегетативная, автономная нервная система. Вегетативная часть нервной системы, ее деление и характеристика отделов 185.72 KB
  В надсегментарных вегетативных центрах которые располагаются в коре полушарий базальных ядрах мозжечке различают: центры чувствительные по восприятию внутренней рецепции; центры двигательные по координации гладкомышечных и сердечных сокращений в органах и сосудах. Подкорковые вегетативные центры Полосатое тело центры терморегуляции слюно и слезоотделения образования слизи. Ретикулярная формация ствола мозга зрачковый рефлекс центры дыхания сердечный сосудистый глотания и рвоты и другие регуляции обмена веществ и...
76915. Парасимпатическая часть ВНС 187.66 KB
  Краниальная часть парасимпатических ядер включает мезэнцефалические добавочное и срединное ядра глазодвигательного нерва которые лежат в сером веществе дна водопровода на уровне верхних холмиков. Центральные нейроны ядер направляют свои преганглионарные отростки в составе глазодвигательного нерва к ресничному узлу где они переключаются на периферические 2ые нейроны. Дорсальное ядро блуждающего нерва направляет преганглионарные волокна в интрамуральные органные парасимпатические узлы органов иннервируемых Х парой где они прерываются....
76916. Шейный симпатикус. Шейный отдел симпатического ствола: топография, узлы, ветви, области, иннервируемые ими 183.18 KB
  Серые соединительные ветви выходят из шейных узлов в шейные спинномозговые нервы а с ними в нервы шейного и плечевого сплетений. Шейный верхний узел имеет веретенообразную форму в длину достигает 2 см в толщину 05 см лежит на длинной мышце головы впереди поперечных отростков IIго и IIIго шейных позвонков но позади внутренней сонной артерии и блуждающего нерва. Из него начинаются следующие симпатические нервы.
76917. Грудной симпатикус. Грудной отдел симпатического ствола, его топография, узлы и ветви 180.2 KB
  Серые ветви постганглионарные волокна направляются к грудным спинномозговым нервам а с ними в межреберные нервы и другие спинальные ветви а также в следующие нервы: грудные сердечные нервы от 25 узлов; легочные трахеальные аортальные пищеводные ветви к одноименным сплетениям; чревные или внутренностные нервы: большой от 59 узлов малый 1012 узлов непостоянный низший; через чревные нервы в чревное солнечное сплетение живота. Грудные сердечные нервы вместе с шейными сердечными нервами образуют переднее и заднее...