УДК 004.925.83

Создание графиков повышенной точности

Музыченко Анна Николаевна – студентка магистратуры Донского государственного технического университета.

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

Ключевые слова: графики, matlab, возможности, точность, повышенная точность, отсутствие возможности.

Иногда может сложиться такая стуация, что необходимо построить график на точности более, чем 6 знаков после запятой. Это может пригодиться, например, при использовании численных методов, а именно при определении экстремумов при заданной высокой точности. В Matlab нет базовых возможностей построить график на высокой точности, могут возникать проблемы – например, график может изображаться в виде прямой линии, расположенной вертикально или горизонтально, а при попытке задать граничные значения по осям x и y с помощью функций “xlim” и “ylim” могут возникать ошибки. Поэтому целью будем считать написание функции для построения графиков высокой точности. В качестве функции, которую необходимо изобразить на высокой точности, будем использовать синусоиду. [1]

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

  1. Необходимо найти краевые значения x01, x02, y01, y02 по осям х, у.
  2. Отнять от основных значений x и y нижние значения (x01 или y01), а затем разделить на длину отрезков по осям (x02-x01 или y02-y01) – таким образом, будут получены вектора значений x2 и y2, обозначающие части от максимальных значений по осяим.
  3. Вектор х00 необходимо задать m значениями с вектора х2, находящимися друг от друга на одном и том же расстоянии, где m – количество точек, которые необходимо выделить на графике. Аналогично задаётся вектор y00.
  4. Теперь нужно добавить вектор y001, состоящий из сортированных по возрастанию значений вектора y00.
  5. Теперь заполнив вектора текстовых подписей xt0 и yt0 по формулам xt0=x01+x00*(x02-x01) и yt0=y01+y001*(y02-y01).
  6. После этого можно построить график, образуя линию из значений векторов x2 и y2, отмечая точки из значений векторов x00 и y00, отмечая пунктирными линиями значения с векторов x00 и y001, подписывая эти значения текстом с векторов xt0 и yt0.

Таким образом, можно построить график высокой точности, поменяв его реальные значения на части отрезка, подписав полученные значения как реальные. Код для Matlab, написанный по приведённому выше алгоритму приведён на рисунке 1. [2]

image001

Рисунок 1. Код функции для создания графика высокой точности.

Напишем код для построения вершины функции y=sin(x) на точности х – 20 знаков после запятой, как показано на рисунке 2.

image002

Рисунок 2. Код для построения синусоиды на точности 20 знаков.

Будет получен график, показанный на рисунке 3.

image003

Рисунок 3. График функции y=sin(x) на точности 20 знаков.

Аналогичным образом можно построить графики функций y=sin(x*1020), y=sin(x*1021) и y=sin(x*1022) как показано на рисунках 4, 5, 6 и 7. [3]

image004

Рисунок 4. График y=sin(x*1020) на точности 20 знаков.

image005

Рисунок 5. График y=sin(x*1021) на точности 20 знаков.

image006

Рисунок 6. График y=sin(x*1022) на точности 20 знаков.

image007

Рисунок 7. Увеличенный график y=sin(x*1022) на точности 20 знаков.

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

По результатам проведенной работы можно сделать следующие выводы:

  1. Написан алгоритм для построения графиков повышенной точности.
  2. Создана функция в Matlab, основанная на данном алгоритме.
  3. Созданная функция строит график по частям, но правильно отображет значения по осям абсцисс и ординат.
  4. С помощью созданной функции можно строить графики точности больше, чем 6 знаков после запятой.
  5. Построены графики высокой точности в Matlab, в качестве примера рассмотрен график синусоиды.
  6. Созданная функция успешно справляется с основной целью – построением графиков высокой точности.

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

  1. Язык технических вычислений. [Электронный ресурс]. – URL: http://www.exponenta.ru/educat/free/matlab/gs.pdf.
  2. Дьяконов В. П. MATLAB. Полный самоучитель; ДМК Пресс – Москва, 2010. – 768 c
  3. Дьяконов А.Г. Среда для вычислений и визуализации MATLAB. Учебное пособие.

Интересная статья? Поделись ей с другими: