Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Дифференцирование и интегрирование: diff, int



метод @polynom/diff.m, который позволяет дифференцировать полиномы путем умножения коэффициентов на соответствующие степени переменной:

function q = diff(p)
% POLYNOM/DIFF
% Функция DIFF(p) - производная полинома p.
c = p.c;
d = length(c) - 1; % степень полинома
q = polynom(p.c(1: d).*(d: -1: 1));

int – вычисление неопределенногоинтеграла полинома p.int(p, c) возвращает интеграл со свободным членом с

Вычисление корней полинома

roots (c) – возвращает вектор-столбец, чьи элементы являются корнями полинома ñ.Вектор-строка c содержит коэффициенты полинома, упорядоченные по убыванию степеней.

Если ñ имеет n+1 компонентов, то полином, представленный этим вектором, имеет вид c1sn + … + cns + cn+1.

решение полиномиального уравнения x2– x – 1 = 0. Как известно, один из корней этой системы дает значение константы золотого сечения. Решение этого уравнения вполне очевидно:
> > p=[1 -1 -1]; > > roots(p) ans =
-0.6180 1.6180

· Plot- построение графика полинома р. Команда plot(p) выводит график полинома в диапазоне, содержащем все его корни. Команда plot (p, x) выводит график полинома в заданной области определения

%Построение графика

x=-0.5: 0.1: 5.5;

y=exp(x)/5-2*(x-1).^2;

plot(x, y, '-k'), grid

[x(1), y(1)]=fzero('ff', [0 1]);

[x(2), y(2)]=fzero('ff', [1 2]);

[x(3), y(3)]=fzero('ff', [5 6]);

ТЕМА6

1) Высокоуровневая графика (High-Level Graphics )включает команды и функции, предназначенные для построения графиков в прямоугольных и полярных системах координат, трехмерных поверхностей и линий уровня, гистограмм, разного вида диаграмм, анимации и т. д. Графические команды высокого уровня автоматически контро-

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

2) Двумерная графика Система MATLAB предоставляет широкие возможности для визуализации функций одной переменной. Она позволяет строить графики в

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

3) Построение графиков функции одной переменной в линейном мас-штабе в декартовой системе координат осуществляется при помощи функции plot. Функция plot относится к функциям высокого уровня. При ее выполнении MATLAB выполняет целый комплекс операций: система сама создает графическое окно с новым номером, строит оси координат, вычисляет диапазоны изменения переменных x и y, проставляет на осях метки и соответствующие им числовые значения и, наконец, строит через опорные точки график функции некоторым и выбранными по умолчанию цветом и стилем линии.

4) Синтакси polar (phi, rho) polar(phi, rho, s)

Описание:

Команды polar(...) реализуют построение графиков в полярных координатах, задаваемых углом phi и радиусом pho.

Примеры:

Построим график функции rho = sin(2 * phi) * cos(2 * phi) в полярных координатах phi = 0: 0.01: 2 * pi; polar(phi, sin(2 * phi). * cos(2 * phi))

5) axes Вывод различных типов координат (axes=NORMAL — обычные оси, выводятся по умолчанию, axes=BOXES — график заключается в рамку с оцифрованными осями, axes=FRAME — оси в виде перекрещенных линий и axes=NONE — оси •не выводятся).

color Задает цвет кривых (см. далее).

coords Задание типа координатных систем (см. далее).

numpoints Задает минимальное количество точек графика (по умолчанию numpoints=49).

resolutions Задает горизонтальное разрешение устройства вывода (по умолчанию resolutions-200, параметр используется при отключенном адаптивном методе построения графиков).

scaling Задает масштаб графика CONSTRAINED (сжатый) или UNCONSTRAINED (несжатый — по умолчанию).

size Задает размер шрифта в пунктах.

style Задает стиль построения графика (POINT — точечный, LINE — линиями).

symbol Задает вид символа для точек графика (возможны значения BOX — прямоугольник, CROSS — крест, CIRCLE — окружность, POINT — точка, DIAMOND — ромб).

title Задает построение заголовка графика (title=«string», где string — строка).

titlefont Определяет шрифт для заголовка (так же как и для font).

labelfont Определяет шрифт для меток (labels) на осях координат (так же как и для font).

thickness Определяет толщину линий графиков (0, 1, 2, 3, по умолчанию 0).

view=[A, B] Определяет максимальные и минимальные координаты, в пределах которых график будет отображаться на экране, А = [xmin..xmax], B=[ymin..углах] (по умолчанию отображается вся кривая).

xtickmarks Задает минимальное число отметок по оси X.

ytickmarks Задает минимальное число отметок по оси Y.

6) анимация в системе MATLAB:

• capture – захват видеоизображения;

• getframe – создание кадра для анимации;

• moviein – выполнение анимации;

• rotate – вращение фигуры;

• frame2im – преобразование кадра в графический образ;

• im2frame – преобразование графического образа в кадр

Гистограммы

Классическая гистограмма характеризует графически числа попаданий значений элементов вектора Y в M интервалов с представлением этих чисел в виде столбцовой диаграммы. Для получения данных для гистограммы служит функция hist, записываемая в следующем виде:

• N=hist(Y) возвращает вектор чисел попаданий для 10 интервалов, выбираемых автоматически. Если Y – матрица, то выдается массив данных о числе попаданий для каждого из ее столбцов;

• N=hist(Y, M) аналогична вышерассмотренной, но используется M интервалов (M – скаляр);

• N=hist(Y, X) возвращает числа попаданий элементов вектора Y в интервалы, центры которых заданы элементами вектора X;

• [N, X]=HIST(…)возвращает числа попаданий в интервалы и данные о центрах интервалов.

Команда hist(…) с синтаксисом, аналогичным приведенному выше, строит график гистограммы.

Цветные плоские круговые диаграммы

Закрашенные секторы часто используются для построения круговых диаграмм. Для этого в MATLAB служит команда pie:

• pie(X) строит круговую диаграмму по данным нормализованного вектора X/SUM(X). SUM(X) – сумма элементов вектора. Если SUM(X)< =1.0, то значения в X непосредственно определяют площадь секторов;

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

Изменение свойств линии

Система MATLAB позволяет управлять видом линии графика, построенного при помощи функций plot, semilogx, semilogy и loglog.Для этого предназначен дополнительный аргумент, помещаемый за каждой парой векторов координат. Этот аргумент заключается в апострофы и состоит из трех символов, которые определяют цвет, тип

маркера и тип линии.

Изменение толщины линии выполняется при помощи команд низкоуровневой графики системы MATLAB, основанной на управлении свойствами графических объектов при помощи дескрипторов. ' LineWidth ' (толщина линии)

Трехмерная графика

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

> > axis( [ xmin, xmax, ymin, ymax, zmin, zmax ])

Функции

text, x label, ylabel, zlabel, title, дополняют графики текстовой информацией. Применение функции subplot позволяет разместить в одном графическом окне несколько трехмерных графиков.

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

 Сгенерировать матрицы с координатами узлов сетки на прямоугольной области определения функции. Для генерации сетки обычно применяется функция meshgrid. Ее аргументами являются два вектора, элементы которых соответствуют координатам узлов сетки соответственно вдоль оси x и y. Если область построения функции – квадрат, то и с пользуется один вектор. Функция meshgrid возвращает две

матрицы одной и той же структуры: первая матрица содержит значения первых координат этих точек (координат x ), а вторая матрица содержит значения вторых координат(координат y ).

 Вычислить значение функции z = f ( x, y ) в узлах сетки.

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

 Нанести на график дополнительную информацию.

 

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

• contour3(…)имеет синтаксис, аналогичный команде contour(…), но строит линии равного уровня в аксонометрии с использованием функциональной окраски (окраска меняется вдоль оси Z).

Полезные частные формы записи этой команды:

• contour3(Z) строит контурные линии для поверхности, заданной массивом Z, без учета диапазона изменения x и y;

• contour3(Z, n) строит то же, что предыдущая команда, но с использованием n секущих плоскостей (по умолчанию n=10);

• contour3(X, Y, Z) строит контурные линии для поверхности, заданной массивом Z, с учетом изменения x и y. Двумерные массивы X и Y создаются с помощью функции meshgrid;

• contour3(X, Y, Z, n) строит то же, что предыдущая команда, но с использованием n секущих плоскостей

12-14 Удобство использования графиков во многом зависит от дополнительных элементов оформления: координатной сетки, подписей к осям, заголовка и легенды. Сетка наносится командой grid on, подписи к осям размещаются при помощи xlabel, ylabel, заголовок дается командой title. Наличие нескольких графиков на одних осях требует помещения легенды командой legend с информацией о линиях. Все перечисленные команды применимы к графикам как в линейном, так и в логарифмическом и полулогарифмическом масштабах. Следующие команды выводят графики изменения суточной температуры, которые снабжены всей необходимой информацией.

» time = [0 4 7 9 10 11 12 13 13.5 14 14.5 15 16 17 18 20 22];
» temp1 = [14 15 14 16 18 17 20 22 24 28 25 20 16 13 13 14 13];
» temp2 = [12 13 13 14 16 18 20 20 23 25 25 20 16 12 12 11 10];
» plot(time, temp1, 'ro-', time, temp2, 'go-')
» grid on
» title('Суточные температуры')
» xlabel('Время (час.)')
» ylabel('Температура (С)')
» legend('10 мая1, 11 мая')

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

—1 - вне графика в правом верхнем углу графического окна;

0 — выбирается лучшее положение в пределах графика так, чтобы как можно меньше перекрывать сами графики;

1 — в верхнем правом углу графика (это положение используется по умолчанию);

2 — в верхнем левом углу графика;

3 — в нижнем левом углу графика;

4 — в нижнем правом углу графика.

В заголовке графика, легенде и подписях осей допускается добавление формул и изменение стилей шрифта при помощи формата ТеХ.
MatLab выводит графики разным цветом. Монохромный принтер напечатает графики различными оттенками серого цвета, что не всегда удобно. Команда plot позволяет легко задать стиль и цвет линий, например

» plot(x, f, 'k-', x, g, 'k: ')

осуществляет построение первого графика сплошной черной линией, а второго - черной пунктирной. Аргументы 'k-' и 'k: ' задают стиль и цвет первой и второй линий. Здесь k означает черный цвет, а дефис или двоеточие - сплошную или пунктирную линию. Окно с графиком можно закрыть, нажав на кнопку с крестиком в правом верхнем углу.Если требуется разместить надпись в произвольном месте рисунка - применяем функцию text:

Text( x, y, 'some text')

Вопрос

sin(x), cos(#) и sin (x)/х. Прежде всего отметим, что эти функции могут быть обозначены переменными, не имеющими явного указания аргумента в виде у(х): »y1=sin(x); y2=cos(x); y3=sin(x)/x; Такая возможность обусловлена тем, что эти переменные являются векторами — как и переменная х. Теперь можно использовать одну из ряда форм команды plot: plot(a1.f1.a2.f2.a3.f3,...). где al, а2, аЗ,.„ — векторы аргументов функций (в нашем случае все они — х), a f1, f2, f3,... —векторы значений функций, графики которых строятся в одном окне. В нашем случае для построения графиков указанных функций мы должны записать следующее:

» plot(x, y1, x, y2, x.y3)

Можно ожидать, что MATLAB в этом случае построит, как обычно, точки графиков этих функций и соединит их отрезками линий. Но, увы, если мы выполним эти команды, то никакого графика не получим вообще. Не исключен даже сбой Б работе программы. Причина этого казуса уже обсуждалась в предыдущем уроке — при вычислении функции y3=sin(x)/x, если х представляет собой массив (вектор), то нельзя использовать оператор матричного деления /.Этот пример еще раз наглядно указывает на то, что чисто поверхностное применение даже такой мощной системы, как MATLAB, иногда приводит к досадным срывам. Чтобы все же получить график, надо вычислять отношение sin(x) к хс помощью оператора поэлементного деления массивов

18-19 специальной панелью инструментов трехмерной графики, названной в оригинале Camera (Камера).Несмотря на множество кнопок, пользование панелью инструментов 3D-графики достаточно просто, если представить себе, что вы смотрите на предмет через объектив фотокамеры. Наглядные рисунки на кнопках поясняют смысл их действия — это перемещение и вращение 3D-рисунков относительно тех или иных координатных осей, включение отображения перспективы, изменение цветовой схемы и др.Приемы форматирования двумерной графики можно использовать при работе с трехмерной графикой — вывод надписи на график, вывод легенды (кстати, теперь объемной) и шкалы цветов.Для управления положением и вращением трехмерного графика можно использовать клавиши перемещения курсора. Эффект вращения графика иллюстрирует рис. 3.22, где показан график рис. 3.21 после его поворота при нажатой клавише —>. В отличие от поворота мышью (также возможного) перемещение и повороты с помощью клавиш курсора при выбранном типе перемещения дают плавное перемещение или вращение фигуры. Таким образом осуществляется анимация (оживление) трехмерной графики.Управление положением точки просмотра:

Cинтаксис:

  view(az, el) view(2)
  view([az el]) view(3)
  view([x y z]) view(T)
  [az, el] = view;  
  T = view  

Описание:

Команды view(az, el) и view([az el]) задают положение точки просмотра, из которой наблюдается объект, используя углы азимута и возвышения.Команда view([x, y, z]) задает положение точки просмотра в декартовой системе координат.Команда view(2) устанавливает штатное положение точки просмотра для двумерной графики: az = 0°, el = 90°.Команда view(3) устанавливает штатное положение точки просмотра для трехмерной графики: az = -37.5°, el = 30°.Команда view(T) устанавливает положение точки просмотра в соответствии с обобщенной матрицей преобразований, вычисленной с помощью функции viewmtx.Функция [az el] = view присваивает текущие значения углов азимута и возвышения соответственно переменным az и el.Функция T = view присваивает текущее значение обобщенной матрицы преобразований переменной T.

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

[X, Y] = meshgrid([ -2: 0.1: 2 ]);
Z = X.*exp(- X.^2 - Y.^2);
view(X, Y, Z)
T = viewmtx(az, el, 25, [ 1 1 1 ])

20-21 Перечень поддерживаемых форматов: imformats, fileformats.Изображения:

1) Для чтения и записи JPEG TIFF BMP PNG HDF PCX XWD;

2) Только чтение GIF ICO CUR;

3) Команда чтения imread, importdata

4) Команда записи imwrite;

5) Информация о файле iminfo;

6) Вывод изображения image, colormap; дополнительно getframe, frame2im, capture;

7) При экспорте в графический файл записывается только клиентская часть графического окна без меню и панели инструментов.

8) Сохранение в выбранном формате пункт меню FILE | SAVE AS;

9) Команда сохранения изображения в формате bitmap > > print –dformat filename

10) Пример чтения графического файла

> > [image, colormap] = imread(‘filename.gif’);

> > image(image)


Поделиться:



Последнее изменение этой страницы: 2017-03-17; Просмотров: 422; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.05 с.)
Главная | Случайная страница | Обратная связь