Вычисление кубического корня

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

Введение

Данная работа называется «Численные методы. Вычисление значений кубического корня». Для написания этой работы будет использован язык высокого уровня Turbo Pascal 7.0.

Современные компьютеры во многом облегчили жизнь человека. Например, если раньше ученые и простые люди сидели и вручную вычисляли сложные примеры и уравнения, то сейчас за них эту работу проделывают машины. Чтобы решать сложные задачи на компьютерах, научные работники используют численные методы. Одни из стандартных вычислений, волнующих ученых — это решение систем линейных уравнений, интерполирование, быстрое преобразование Фурье, вычисление интегралов и численное интегрирование дифференциальных уравнений, оптимизация и моделирование. Для каждого типа существуют различные численные методы. Меня интересует метод вычисления значений кубического корня, поэтому далее будет описан метод вычисления значений кубического корня и реализован на программе, которая будет написана на языке Turbo Pascal.

1. Обзор методов вычисления значений кубического корня

1. 1 Численные методы

Методы, которые используются в вычислительной математике для преобразования задач к виду, удобному для реализации на ЭВМ, и позволяют конструировать вычислительные алгоритмы, называются вычислительными или численными методами [1]. Вычислительные методы можно разбить на следующие классы: 1) методы эквивалентных преобразований; 2) методы аппроксимации; 3) прямые (точные) методы; 4) итерационные методы; 5) методы статистических испытаний (методы Монте-Карло). Метод, осуществляющий вычисление решения конкретной задачи, может иметь довольно сложную структуру, но его элементарными шагами являются, как правило, реализации указанных методов. Далее последует краткая характеристика этих методов.

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

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

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

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

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

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

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

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

При построении прямых методов существенное внимание уделяется минимизации числа элементарных операций.

Иногда прямые методы называют точными, подразумевая под этим, что при отсутствии ошибок во входных данных и при точном выполнении элементарных операций полученный результат также будет точным. Однако при реализации метода на ЭВМ неизбежно появление вычислительной погрешности, величина которой зависит от чувствительности метода к ошибкам округления. Многие прямые (точные) методы, разработанные в домашинный период, оказались непригодными для машинных вычислений именно из-за чрезмерной чувствительности к ошибкам округления. Не все точные методы таковы, однако стоит заметить, что не совсем удачный термин «точный» характеризует свойства идеальной реализации метода, но отнюдь не качество полученного при реальных вычислениях результата.

Методы статистических испытаний (методы Монте-Карло). Это — численные методы, основанные на моделировании случайных величин и построении статистических оценок решений задач. Это класс методов, как принято считать, возник в 1949 г., когда Джон фон Нейман и Станислав Улам использовали случайные числа для моделирования с помощью ЭВМ поведения нейтронов в ядерном реакторе. Эти методы могут оказаться незаменимыми при моделировании больших систем, но подробное их изложение предполагает существенное использование аппарата теории вероятностей и математической статистики.

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

Итерационные методы широко используются при решении самых разнообразных задач с применением ЭВМ.

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

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

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

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

кубический программа корень математический

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

Пусть требуется вычислить значение непрерывной функции

для заданного значения аргумента х [2]. Если функция (1. 1) достаточно сложна и нужно подсчитать большое количество ее значений, то вычисления обычно производятся на счетных машинах. Может случиться, что в силу конструктивных особенностей машины непосредственное вычисление значений функции по формуле (1. 1) будет затруднительным. При этом самые простые действия могут оказаться «сложными» и даже невыполнимыми. Так, например, существуют счетные машины «без деления». Тогда во многих случаях оказывается полезным следующий прием. Запишем функцию (1. 1) в неявном виде

Предположим, что F (x, y) непрерывна и имеет непрерывную частную производную.

Пусть — приближенное значение. Применяя теорему Лангранжа, будем иметь:

где — некоторое промежуточное значение между и. Отсюда

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

Из формулы (1. 2) вытекает, что процесс представляет собой метод Ньютона, примененный к функции (1. 2), т. е. последовательные приближения получаются как абсциссы точки пересечения с осью Oy касательной к кривой (1. 2), проведенной при
. Это можно увидеть на рисунке 1.2.1. Сходимость процесса будет обеспечена, если

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

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

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

Алгоритм вычисления значений кубического корня является частным случаем метода итераций. Подробное математическое описание этого алгоритма будет описано в третьей главе. Он будет реализован на практике в виде программы, которая будет написана на языке высокого уровня Turbo Pascal 7.0.

Рисунок 1.2. 1-Метод Ньютона

1. 3 Другие способы вычисления значений кубического корня

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

Можно рассмотреть вычисление кубического корня из числа, заключенного между 1 и 1000, например, числа 200. Так как, то 6 — ближайшее к кубическому корню из 200 целое число. Следовательно, первое приближение. Затем нужно вычислить остальные значения (). В каждом приближении, начиная с третьего, разрешается удерживать число знаков в предыдущем приближении. Если же число, из которого требуется извлечь кубический корень, не заключено между 1 и 1000, то предварительно его необходимо разделить (или умножить) на некоторую к — ю степень числа 1000 и тем самым привести в нужный интервал чисел. Кубический корень из вновь полученного числа лежит в интервале от 1 до 10. После того, как он будет вычислен, его необходимо умножить (или разделить) на, чтобы получить кубический корень из исходного числа.

Одним из самых распространенных способов вычисления значений кубического корня является возведение числа, из которого хотим извлечь корень, в степень 1/3. Этот способ будет тоже реализован на программе, написанной на Turbo Pascal 7.0., и описан в Приложении В.

Значения кубического корня можно вычислить и в Microsoft Office Excel. Все вычисления в Excel выполняются с помощью формул, которые можно вводить в любые ячейки листа. Если содержимое ячейки начинается со знака равенства (=), Excel полагает, что вслед за этим знаком идет формула, и пытается выполнить указанную операцию. Когда это удается, в ячейку с такой формулой выводится результат расчета. Если что-то не так, появляется сообщение об ошибке. Сама формула отображается в ячейке только в том случае, когда ячейка находится в режиме редактирования текста (то есть после двойного щелчка на ней). Если ячейка просто выделена, то ее формула выводится в строке формулы в верхней части окна Excel. Чтобы найти кубический корень, нужно в строку записать формулу

=a^(1/3)

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

2. Постановка задачи вычисления значений кубического корня

Целью данной работы является обзор методов вычисления значений кубического корня из числа, написание алгоритма вычисления значений кубического корня по одному из методов, написание программы на языке высокого уровня Turbo Pascal 7.0., а также возможная ее отладка и тестирование.

3. Математическое описание задачи вычисления значений кубического корня

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

Если

то положив

будем иметь:

Отсюда, применяя формулу

получаем

или

Геометрически процесс (3. 1) представляет собой метод Ньютона, примененный к кубической параболе

Процесс (3. 1) сходится при.

Если в качестве начального приближения взять табличное значение, имеющее относительную погрешность, т. е. положить

то значение, найденное из формулы (3. 1), даст с относительной погрешностью. Действительно, применяя формулу (3. 1), имеем:

.

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

4. Описание системы вычисления значений кубического корня

4. 1 Алгоритм вычисления кубического корня

кубический программа корень математический

После ввода х задаем нулевое приближение yn, которое будет равно х, задаем величину eps, с которой потом будем сравнивать текущую погрешность а. Затем вычисляем yn1 приближение и текущую погрешность а. После этого yn1 отправляем в yn для повторения вычислений. Когда текущая погрешность а станет меньше либо равна eps, то результат выводится на экран.

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

Рисунок 4. 1-Блок-схема программы

4. 2 Примеры работы программы

На рисунках 4. 2−4.3 изображены результаты работы программы.

Рисунок 4. 2-Результат работы программы

Рисунок 4.3 — Результат работы программы

На рисунке 4.2 изображено изначальное окно, куда мы будем вводить число. На рисунке 4.3 изображены найденные кубические корни.

Заключение

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

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

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

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

Приложение А

Исходный текст программы на Turbo Pascal 7.0. Метод Ньютона для кубической параболы

program primer;

uses crt;

var x, yn, yn1, eps, a: real;

begin

write ('vvedite x=');

readln (x);

eps: =1E-11;

yn: =x;

repeat

yn1: =(2*yn+x/sqr (yn))/3;

a: =abs (yn1-yn);

yn: =yn1;

until a< =eps;

writeln ('y=', yn1);

end.

Приложение Б

Исходный текст программы на Turbo Pascal 7.0. Возведение числа в дробную степень

program primer;

uses crt;

var a, b: real;

begin

readln (a);

if (a=0) then writeln ('y=0') else

if (a> 0) then

begin

b: =exp (ln (a)/3);

writeln ('y=', b);

end else

begin

a: =a*(-1);

b: =exp (ln (a)/3);

writeln ('y=-', b);

end;

end.

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

1 Амосов А. А., Дубинский Ю. А., Копченова Н. В. Вычислительные методы для инженеров — М: «Высшая школа», 1994. — 55 с.

2 Демидович Б. П., Марон И. А. Основы вычислительной математики. — М.: «Наука», 1966. — 100 с.

3 Демидович Б. П., Марон И. А. Основы вычислительной математики. — М.: «Наука», 1966. — 109 с.

ПоказатьСвернуть
Заполнить форму текущей работой