Математическое моделирование с помощью компьютерных программ

Применение функций одной переменной в практике математических расчетов и в технике компьютерного математического моделирования. Создание массивов данных для трехмерной графики. График поверхности, построенный линиями. Сетчатые 3D-графики с окраской.

Рубрика Математика
Вид методичка
Язык русский
Дата добавления 09.03.2015
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Методические указания к лабораторным работам по МатЛаб

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

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

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

Лабораторная работа №4. Построение графиков плоских кривых Построение графиков отрезками прямых

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

Команда plot служит для построения графиков функций в декартовой системе координат. Эта команда имеет ряд параметров, рассматриваемых ниже.

· plot (X, Y) -- строит график функции у(х), координаты точек (х, у) которой берутся из векторов одинакового размера Y и X. Если X или Y -- матрица, то строится семейство графиков по данным, содержащимся в колонках матрицы.

Приведенный ниже пример иллюстрирует построение графиков двух функций -- sin(x) и cos(x), значения функции которых содержатся в матрице Y, а значения аргумента х хранятся в векторе X:

» х=[0 12345];

» Y=[sin(x):cos(x)];

» plot(x.Y)

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

Рис. 4.1 Графики двух функций в декартовой системе координат

· plot(Y) -- строит график у(г), где значения у берутся из вектора Y, a i представляет собой индекс соответствующего элемента. Если Y содержит комплексные элементы, то выполняется команда plot (real (Y). imag(Y)). Во всех других случаях мнимая часть данных игнорируется.

Вот пример использования команды plot(Y):

» х=2*pi:0.02*pi:2*pi;

» y=sin(x)+i*cos(3*x);

» plot(y)

Соответствующий график показан на рис. 4.2.

Рис. 4.2 График функции, представляющей вектор Y с комплексными элементами

· plot(X.Y.S) -- аналогична команде plot(X.Y), но тип линии графика можно задавать с помощью строковой константы S.

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

· рlot (X1. Y1, S1, Х2, Y2. S2. ХЗ. Y3, S3,...) -- эта команда строит на одном графике ряд линий, представленных данными вида (X..Y..S.), где X. и Y. -- векторы или матрицы, a S. -- строки. С помощью такой конструкции возможно построение, например, графика функции линией, цвет которой отличается от цвета узловых точек. Так, если надо построить график функции линией синего цвета с красными точками, то вначале надо задать построение графика с точками красного цвета (без линии), а затем графика только линии синего цвета (без точек).

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

Рассмотрим пример построения графиков трех функций с различным стилем представления каждой из них:

» x=-2*pi:0.1*pi:2*pi;

» yl=sin(x);

» y2=sin(x).^2;

» y3=sin(x).^3:

» plot(x.yl.'-m',x,y2.'-.+r'.х.у3,'--ok')

Графики функций для этого примера показаны на рис. 4.3.

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

Здесь график функции yl строится сплошной фиолетовой линией, график у2 строится штрих пунктирной линией с точками в виде знака «плюс» красного цвета, а график уЗ строится штриховой линией с кружками черного цвета. К сожалению, на черно-белых рисунках этой книги вместо разных цветов видны разные градации серого цвета.

Графики в логарифмическом масштабе

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

· loglogx(...) -- синтаксис команды аналогичен ранее рассмотренному для функции plot(...). Логарифмический масштаб используется для координатных осей X и У. Ниже дан пример применения данной команды:

» x=logspace(-1,3);

» loglog(x.exp(x)./x)

» grid on

На рис. 4.4 представлен график функции ехр(х)/х в логарифмическом масштабе. Обратите внимание на то, что командой grid on строится координатная сетка.

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

Рис. 4.4 График функции ехр(x)/x в логарифмическом масштабе

Графики в полулогарифмическом масштабе

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

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

· semilogx(...) -- строит график функции в логарифмическом масштабе (основание 10) по оси X и линейном по оси Y;

· semilоgу (...) -- строит график функции в логарифмическом масштабе по оси Y и линейном по оси X.

Рис. 4.5 График экспоненты в полулогарифмическом масштабе

Запись параметров (...) выполняется по аналогии с функцией plot(...). Ниже приводится пример построения графика экспоненциальной функции:

» х=0:0.5:10;

» semilogy(x.exp(x))

График функции при логарифмическом масштабе по оси У представлен на рис. 4.5.

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

Столбцовые диаграммы

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

· bar(x, Y) -- строит столбцовый график элементов вектора Y (или группы столбцов для матрицы Y) со спецификацией положения столбцов, заданной значениями элементов вектора х, которые должны идти в монотонно возрастающем порядке;

· bar(Y) -- строит график значений элементов матрицы Y так же, как указано выше, но фактически для построения графика используется вектор х=1:m;

· barU.Y,WIDTH) или BAR(Y,WIDTH) -- команда аналогична ранее рассмотренным, но со спецификацией ширины столбцов (при WIDTH > 1 столбцы в одной и той же позиции перекрываются). По умолчанию задано WIDTH = 0.8.

Возможно применение этих команд и в следующем виде: bаг(.... 'Спецификация') для задания спецификации графиков, например типа линий, цвета и т. д., по аналогии с командой plot. Спецификация 'stacked' задает рисование всех n столбцов в позиции m друг на друге.

Пример построения столбцовой диаграммы матрицы размером 12x3 приводится ниже:

» % Столбцовая диаграмма с вертикальными столбцами

» subplot(2.1.1). bar(rand(12.3).'stacked'), colormap(cool)

На рис. 4.6 представлен полученный график.

Построение гистограмм

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

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

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

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

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

Команда hist(...) с синтаксисом, аналогичным приведенному выше, строит график гистограммы. В следующем примере строится гистограмма для 1000 случайных чисел и выводится вектор с данными о числах их попаданий в интервалы, заданные вектором х:

» х=-3:0.2:3;

» y=randn(1000,1);

» hist(y,x)

Лестничные графики -- команды stairs

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

Для построения лестничных графиков в системе MATLAB используются команды группы stairs:

· stairs(Y) -- строит лестничный график по данным вектора Y;

· stairs(X.Y) -- строит лестничный график по данным вектора Y с координатами х переходов от ступеньки к ступеньке, заданными значениями элементов вектора X;

· stairs(...,S) -- аналогична по действию вышеописанным командам, но строит график линиями, стиль которых задается строками S.

Следующий пример иллюстрирует построение лестничного графика:

» х=0:0.25:10;

» stairs(x,x. ^ 2);

Результат построения представлен на рис. 4.9.

Графики в полярной системе координат

В полярной системе координат любая точка представляется как конец радиус-вектора, исходящего из начала системы координат, имеющего длину RHO и угол ТНЕТА. Для построения графика функции RHO(THETA) используются приведенные ниже команды. Угол ТНЕТА обычно меняется от 0 до 2*pi. Для построения графиков функций в полярной системе координат используются команды типа polar(...):

· polarCTHETA, RHO) -- строит график в полярной системе координат, представляющий собой положение конца радиус-вектора с длиной RHO и углом ТНЕТА;

· polarCTHETA,RHO.S) -- аналогична предыдущей команде, но позволяет задавать стиль построения с помощью строковой константы S по аналогии с командой plot.

Рис. 4.12 демонстрирует результат выполнения команд:

» t=0:pi/50:2*pi;

» polar(t,sin(5*t))

Рис. 4.12 График функции в полярной системе координат

Редактирование графического окна

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

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

Рис. 4.14 Нанесение надписи на отформатированный график

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

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

1. y=2x-3vx -? ?x? ?

2. y=x+1-1\x -1\ (x-1) -10 ?x? 10

3. y=2x 3 -3x 2 +x +5 -5 ?x? 5

4. y=x 3 \ (x 2 - 1) 0 ?x? 3

5. y=(x 2 +x)\(x 2 -3x +2) -10 ?x? 10

6. y=(x 2 - 2)\exp(x) 0 ?x? ?

7. y=1\x*sin(x) -2*pi ?x? 2*pi

8. y=1\x 2 -10 ?x? 10

9. y=cos(x)\x 0 ?x? 2*pi

10. y=x+v(x 2 - 1) -5 ?x? 5

11. y=(1+x)\(1-x) -5 ?x? 5

12. y 2 = 3x -5 ?x? 5

13. y=(x 2 +4)\4x -1 ?x? 1

14. y=v(x 5 +2x 3 +7)\(x 2 -3x+2) -1 ?x? 1

15. y= vx \(x-1) -3 ?x? 3

16. y=x 2 * sin(1\x) -pi ?x? pi

17. y=2x*(sin(1\x)-cos(1\x)) -pi ?x? pi

18. y=t 2 +2t+3 -pi ?x? pi в полярных координатах

19. y=v(|x|-1) -5 ?x? 5

20. y=2\v(x-3) -3 ?x? 3

21. y=3x\(x-1) -3 ?x? 3

22. y=2v(|x|-1)-2 -1 ?x? 1

23. y=(2+x)\(3-x) -5 ?x? 5

Лабораторная работа №5. Построение трехмерных графиков

Построение трехмерных графиков

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

» [X.Y]=meshgrid(-5:0.1:5);

» Z=X.*sin(X+Y);

» meshc(X.Y,Z)

Окно с построенным графиком показано на рис. 5.5.

Создание массивов данных для трехмерной графики

Трехмерные поверхности обычно описываются функцией двух переменных z(x, у). Специфика построения трехмерных графиков требует не просто задания ряда значений х и у, то есть векторов х и у. Она требует определения для X и Y двумерных массивов -- матриц. Для создания таких массивов служит функция meshgrid. В основном она используется совместно с функциями построения графиков трехмерных поверхностей. Функция meshgrid записывается в следующих формах:

· [X.Y] = meshgrid(x) -- аналогична [X.Y] = meshgrid(x.x);

· [X.Y.Z] = meshgrid(x.y,z) -- возвращает трехмерные массивы, используемые для вычисления функций трех переменных и построения трехмерных графиков;

· [X.Y] = meshgrid(x.y) -- преобразует область, заданную векторами х и у, в массивы X и Y, которые могут быть использованы для вычисления функции двух переменных и построения трехмерных графиков. Строки выходного массива X являются копиями вектора х; а столбцы Y -- копиями вектора у.

Построение графиков поверхностей

Команда plot3(...) является аналогом команды plot (...), но относится к функции двух переменных z(x, у). Она строит аксонометрическое изображение трехмерных поверхностей и представлена следующими формами:

· plot3(x.y,z) -- строит массив точек, представленных векторами х, у и z, соединяя их отрезками прямых. Эта команда имеет ограниченное применение;

· plot3(X,Y,Z), где X, Y и Z -- три матрицы одинакового размера, строит точки с координатами X(i.:), Y(i,:) и Z(i,:) и соединяет их отрезками прямых.

Ниже дан пример построения трехмерной поверхности, описываемой функцией

z(х.у)=х^2+у^2;

» [X.Y]=meshgrid([-3:0.15:3]);

» Z=X. ^ 2+Y.^2;

» plot3(X.Y.Z)

График этой поверхности показан на рис.5.18.

Рис. 5.18 График поверхности, построенный линиями

· plot3 (X. Y, Z, S) -- обеспечивает построения, аналогичные рассмотренным ранее, но со спецификацией стиля линий и точек, соответствующей спецификации команды plot. Ниже дан пример применения этой команды для построения поверхности кружками:

·

» [X.Y]=meshgrid([-3:0.15:3]);

» Z=X. ^ 2+Y.^2;

» plot3(X,Y,Z.'o')

График поверхности, построенный кружками, показан на рис. 5.19.

Сетчатые 3D-графики с окраской

математический расчет графика трехмерный

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

· mesh(X,Y,Z,C) -- выводит в графическое окно сетчатую поверхность Z(X.Y) с цветами узлов поверхности, заданными массивом С;

· mesh(X.Y.Z) -- аналог предшествующей команды при C=Z. В данном случае используется функциональная окраска, при которой цвет задается высотой поверхности.

Возможны также формы команды mesh(x,y.Z), mesh(x.y.Z,C), mesh(Z) и mesh(Z.C).

Функция mesh возвращает дескриптор для объекта класса surface. Ниже приводится пример применения команды mesh:

» [X.Y]=meshgrid([-3:0.15:3]);

» Z=X.^2+Y.^2;

» mesh(X,Y,Z)

На рис. 5.21 показан график поверхности, созданной командой mesh(X.Y.Z). Нетрудно заметить, что функциональная окраска линий поверхности заметно усиливает наглядность ее представления.

Сетчатые 3D-графики с проекциями

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

Для этого используется команда meshc:

· meshc(...) -- аналогична mesh(...), но помимо графика поверхности дает изображение ее проекции в виде линий равного уровня (графика типа contour).

Ниже дан пример применения этой команды:

» [X.Y]=meshgrid([-3:0.15:3]);

» Z=X.^2+Y.^2;

» meshc(X,Y,Z)

Построенный график показан на рис. 5.23.

Рис. 5.23 График поверхности и ее проекции на расположенную ниже плоскость

Построение поверхности столбцами

Еще один тип представления поверхности, когда она строится из многочисленных столбцов, дают команды класса meshz:

· meshz(...) -- аналогична mesh(...), но строит поверхность как бы в виде столбиков. Следующий пример иллюстрирует применение команды mesh:

» [X.Y]=meshgrid([-3:0.15:3]);

» Z=X.^2+Y.^2;

» meshz(X,Y,Z)

Столбцовый график поверхности показан на рис. 5.24.

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

Построение поверхности с окраской

Особенно наглядное представление о поверхностях дают сетчатые графики, использующие функциональную закраску ячеек. Например, цвет окраски поверхности z(x, у) может быть поставлен в соответствие с высотой z поверхности с выбором для малых высот темных тонов, а для больших -- светлых. Для построения таких поверхностей используются команды класса surf (...):

· surf (X, Y, Z. С) -- строит цветную параметрическую поверхность по данным матриц X, Y и Z с цветом, задаваемым массивом С;

· surf(X.Y.Z) -- аналогична предшествующей команде, где C=Z, так что цвет задается высотой той или иной ячейки поверхности;

· surf(x.y.Z) и surf(x.y.Z.C) с двумя векторными аргументами х и у -- векторы х и у заменяют первых два матричных аргумента и должны иметь длины length(x)=n и length(y)=m, где [m.n]=size(Z). В этом случае вершины областей поверхности представлены тройками координат (x(j), yd), Z(1,j)). Заметим, что х соответствует столбцам Z, а у соответствует строкам;

· surf(Z) и surf(Z.C) используют х = 1:n и у = 1:m. В этом случае высота Z -- однозначно определенная функция, заданная геометрически прямоугольной сеткой;

· h=surf (...) --строит поверхность и возвращает дескриптор объекта класса surface.

Команды axis, caxis, color-map, hold, shading и view задают координатные оси и свойства поверхности, которые могут использоваться для большей эффектности показа поверхности или фигуры.

Ниже приведен простой пример построения поверхности -- параболоида:

» [X.Y]=meshgrid([-3:0.15:3]);

» Z=X.^2+Y.^2;

» Surf(X,Y,Z)

Соответствующий этому примеру график показан на рис. 5.25.

Рис. 5.25 График параболоида с функциональной окраской ячеек

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

В следующем примере используется функциональная окраска оттенками серого цвета с выводом шкалы цветовых оттенков:

» [X,Y]=meshgrid([-3:0.1:3]);

» Z=sin(X)./(X.^2+Y.^2+0.3);

» surf(X.Y.Z)

» colormap(gray)

» shading interp

» colorbar

В этом примере команда colormap(gray) задает окраску тонами серого цвета, а команда shading Interp обеспечивает устранение изображения сетки и задает интерполяцию для оттенков цвета объемной поверхности. На рис. 5.26 показан вид графика, построенного в этом примере.

Рис. 5.26 График поверхности с функциональной окраской серым цветом

Построение поверхности и ее проекции

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

· surfc(...) -- аналогична команде surf, но обеспечивает дополнительное построение контурного графика проекции фигуры на опорную плоскость.

Пример применения команды surf с приводится ниже:

» [X.Y]=meshgrid([-3:0.1:3]);

» Z=sin(X)./(X.^2+Y.^2+0.3);

» surfc(X,Y,Z)

На рис. 5.27 показаны графики, построенные в данном примере.

Рис. 5.27 График поверхности и ее проекции на опорную плоскость

Построение освещенной поверхности

Пожалуй, наиболее реалистичный вид имеют графики поверхностей, в которых имитируется освещение от точечного источника света, расположенного в заданном месте координатной системы. Графики имитируют оптические эффекты рассеивания, отражения и зеркального отражения света. Для получения таких графиков используется команда surf 1:

· surfl(...) -- аналогична команде surf (...), но строит график поверхности с подсветкой от источника света;

· surfl (Z.S) или surfl(X,Y,Z,S) -- строит графики поверхности с подсветкой от источника света, положение которого в системе декартовых координат задается вектором S=[Sx,Sy.Sz], а в системе сферических координат -- вектором S=[AZ.EL];

· surfl (..., 'light') -- позволяет при построении задать цвет подсветки с помощью объекта Light;

· surfl (..., 'cdata') -- при построении имитирует эффект отражения;

· surfl(X,Y,Z,S.K) -- задает построение поверхности с параметрами, заданными вектором K=[ka,kd,ks.spread], где ka -- коэффициент фоновой подсветки, kd -- коэффициент диффузного отражения, ks -- коэффициент зеркального отражения и spread -- коэффициент глянцевитости;

Построение освещенной поверхности

Пожалуй, наиболее реалистичный вид имеют графики поверхностей, в которых имитируется освещение от точечного источника света, расположенного в заданном месте координатной системы. Графики имитируют оптические эффекты рассеивания, отражения и зеркального отражения света. Для получения таких графиков используется команда surf 1:

· surfl(...) -- аналогична команде surf (...), но строит график поверхности с подсветкой от источника света;

· surfl (Z.S) или surfl(X,Y,Z,S) -- строит графики поверхности с подсветкой от источника света, положение которого в системе декартовых координат задается вектором S=[Sx,Sy.Sz], а в системе сферических координат -- вектором S=[AZ.EL];

· surfl (..., 'light') -- позволяет при построении задать цвет подсветки с помощью объекта Light;

· surfl (..., 'cdata') -- при построении имитирует эффект отражения;

· surfl(X,Y,Z,S.K) -- задает построение поверхности с параметрами, заданными вектором K=[ka,kd,ks.spread], где ka -- коэффициент фоновой подсветки, kd -- коэффициент диффузного отражения, ks -- коэффициент зеркального отражения и spread -- коэффициент глянцевитости;

· H=surf 1 (...) -- строит поверхность и возвращает дескрипторы поверхности и источников света.

По умолчанию вектор S задает углы азимута и возвышения в 45°. Используя команды cla, hold on, view(AZ,EL), surfl (...) и hold off, можно получить дополнительные возможности управления освещением. Надо полагаться на упорядочение точек в X, Y, и Z матрицах, чтобы определить внутреннюю и внешнюю стороны параметрических поверхностей. Попробуйте транспонировать матрицы и использовать surfHX'.Y',Z'), если вам не понравился результат работы этой команды. Для вычисления векторов нормалей поверхности surf1 требует в качестве аргументов матрицы с размером по крайней мере 3x3.

Ниже представлен пример применения команды surfl:

» [X.Y]=meshgrid([-3:0.1:3]);

» Z=sin(X)./(X. ^ 2+Y.^2+0.3);

» surfl(X,Y,Z)

» colormap(gray)

» shading interp

» colorbar

Построенная в этом примере поверхность представлена на рис. 5.29.

Рис. 5.29 График поверхности с имитацией ее освещения точечным источником

· H=surf 1 (...) -- строит поверхность и возвращает дескрипторы поверхности и источников света.

По умолчанию вектор S задает углы азимута и возвышения в 45°. Используя команды cla, hold on, view(AZ,EL), surfl (...) и hold off, можно получить дополнительные возможности управления освещением. Надо полагаться на упорядочение точек в X, Y, и Z матрицах, чтобы определить внутреннюю и внешнюю стороны параметрических поверхностей. Попробуйте транспонировать матрицы и использовать surfHX'.Y',Z'), если вам не понравился результат работы этой команды. Для вычисления векторов нормалей поверхности surf1 требует в качестве аргументов матрицы с размером по крайней мере 3x3.

Ниже представлен пример применения команды surfl:

» [X.Y]=meshgrid([-3:0.1:3]);

» Z=sin(X)./(X. ^ 2+Y.^2+0.3);

» surfl(X,Y,Z)

» colormap(gray)

» shading interp

» colorbar

Построенная в этом примере поверхность представлена на рис. 5.29.

Рис. 5.29 График поверхности с имитацией ее освещения точечным источником

Построение графиков функций трех переменных

Графики сечений функций трех переменных строит команда slice (в переводе -- «ломтик»). Она используется в следующих формах:

· slice(X.Y.Z.V.Sx,Sy,Sz) -- строит плоские сечения объемной фигуры V в направлении осей x,y,z cпозициями, задаваемыми векторами Sx, Sy, Sz. Массивы X, Y, Z задают координаты для V и должны быть монотонными и трехмерными (как возвращаемые функцией meshgrid) с размером MxNxP. Цвет точек сечений определяется трехмерной интерполяцией в объемной фигуре V;

· slice(X,Y.Z.V,XI.YI.ZI) -- строит сечения объемной фигуры V по поверхности, определенной массивами XI, YI, ZI;

· slice (... 'method') -- при построении задается метод интерполяции, который может быть одним из следующих: 'linear', 'cubic' или 'nearest'. По умолчанию используется линейная интерполяция -- 'linear';

· slice(V.Sx.Sy.Sz) или slice(V.XI.YI.ZI) - подразумевается X=1:N, Y=1:M, Z=1:P;

· H=slice(...) -- строит сечение и возвращает дескриптор объекта класса surface.

График трехмерной слоеной поверхности

Иногда бывают полезны графики трехмерных слоеных поверхностей, как бы состоящие из тонких пластинок -- слоев. Такие поверхности строит функция water-fall (водопад):

· waterfal(...) -- строит поверхность, как команда mesh(...), но без показа ребер сетки. При ориентации графика относительно столбцов следует использовать запись waterfall(Z 1 ) или waterfall (X ',Y',Z').

Рассмотрим пример применения команды waterfall:

» [X.Y]=meshgrid([-3:0.1:3]);

» Z=sin(X)./(X.*2+Y.*2+0.3);

» waterfall(X.Y.Z)

» colormap(gray)

» shading interp

Соответствующий график показан на рис. 5.30.

Рис. 5.30 Трехмерная слоеная поверхность

Tрехмерные контурные графики

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

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

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

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

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

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

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

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

Пример применения команды contourS:

» contour3(peaks,20)

» colormap(gray)

Соответствующий данному примеру график представлен на рис. 5.31. В данном случае задано построение двадцати линий уровня.

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

1. z=sin(x)\ v(x 3-y 2 +0.3) x,y=-2:0,1:3

2. Z=v(x 2 \a 2+y 2 \b 2 -1)*c 2 x,y=-10;10; a=2; b=3; c=1,5

3. Z=(x 2 +1)\y x,y=-2;2

4. Z=v(x 2+y 2) x,y=-2;2

5. Z=sin(r)\r r=v(x 2+y 2) x,y=-8;8

6. Z=3*exp(2x)*(x-2y) x,y=-10;10

7. Z=(600-0,5(x 2 -0,3y 2)) x,y=-10;10

8. Z=vy * (x 2 -1) x,y=-2;2

9. Z=v((500+3x 2 )\(4-y 2 \3)) x,y=-10;10

10. Z=x 2-y 2 x,y=-2;2

11. Z=sin(x\y)*cos(y\x) x,y=-2*pi;2*pi

12. Z= v((x 2 +1)\y) x,y=-2;2

13. Z= v(x 2\a +y 2\b -1) a=2; b=3 x,y=-10;10

14. Z=1\(x-0,3) 2+1\(y-0,9) 2 x,y=-1,5;1,5

15. Z=vy\(x 2 -1) x,y=-2;2

16. Z=v(500-3x 2\y 2) x,y=-10;10

17. Z=sin(x)\(x 2 +y 2-3) x,y=-2*pi;2*pi

Размещено на Allbest.ru


Подобные документы

  • Применение системы MathCAD при решении прикладных задач технического характера. Основные средства математического моделирования. Решение дифференциальных уравнений. Использование системы MathCad для реализации математических моделей электрических схем.

    курсовая работа [489,1 K], добавлен 17.11.2016

  • Особенности математических моделей и моделирования технического объекта. Применение численных математических методов в моделировании. Методика их применения в системе MathCAD. Описание решения задачи в Mathcad и Scilab, реализация базовой модели.

    курсовая работа [378,5 K], добавлен 13.01.2016

  • Определение математического ожидания и дисперсии параметров распределения Гаусса. Расчет функции распределения случайной величины Х, замена переменной. Значения функций Лапласа и Пуассона, их графики. Правило трех сигм, пример решения данной задачи.

    презентация [131,8 K], добавлен 01.11.2013

  • Функция одной независимой переменной. Основные определения и понятия: число (рациональное, иррациональное), числовая ось, абсолютная величина, функция (основные ее элементы). Графики функций. Пределы, натуральный логарифм. Непрерывность функции.

    учебное пособие [1,0 M], добавлен 05.04.2009

  • Понятие функции в древнем мире: Египет, Вавилон, Греция. Графическое изображение зависимостей, история возникновения. Вклад в развитие графиков функций Рене Декартом. Определение функций: понятие и способы задания. Методы построения графиков функций.

    реферат [3,5 M], добавлен 09.05.2009

  • Определение второго замечательного предела. Понятие бесконечно малых функций. Математическое описание непрерывности зависимости одной переменной величины от другой в точке. Точки разрыва функции. Свойства и непрерывность ее в интервале и на отрезке.

    презентация [314,4 K], добавлен 14.11.2014

  • Рассмотрение понятия и сущности математического моделирования. Сбор данных результатов единого государственного экзамена учеников МБОУ "Лицей №13" по трем предметам за 11 лет. Прогнозирование результатов экзамена на 2012, 2013, 2014 учебные годы.

    курсовая работа [392,4 K], добавлен 19.10.2014

  • Компьютерное моделирование в базовом курсе информатики. Роль компьютерного моделирования в процессе обучения. Методические рекомендации курса "Математические основы моделирования 3D объектов" базового курса "компьютерное моделирование".

    дипломная работа [284,6 K], добавлен 07.07.2003

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

    презентация [204,5 K], добавлен 18.04.2013

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

    контрольная работа [550,9 K], добавлен 12.12.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.