Многомерные вычисления в MatLab
Подготовка к работе.
1. По указанной литературе изучить:
- правила организации вложенных циклов,
- правила получения многомерных результатов,
- вывод многомерных данных в табличной форме,
- объемная графика,
- контурная графика.
2. Разработать алгоритмы решения задач из варианта задания.
3. Составить программы решения задач.
Контрольные вопросы
1. Организация вложенных циклов.
2. Правила задания многомерных функций.
3. Связь двумерной функции с матрицей для вывода графиков.
4. Вывод многомерных результатов в форме таблицы.
5. Трехмерная графика в аксонометрии.
6. Трехмерная графика с функциональной окраской раскраской.
7. Трехмерная графика с функциональной раскраской и проекцией.
8. Контурная графика.
9. Объемная контурная графика.
10.Объемная графика с освещением.
Задание к работе
Задача 1. Двумерная функция и объемные графики в своих окнах.
Ввести исходные данные.
Вычислить двумерную функцию.
Вывести функцию в виде 5 трехмерных графиков разного типа.
Вывести функцию в виде 2 контурных графиков разного типа.
Задача 2. Двумерная функция и объемные графики в подокнах общего окна.
Варианты заданий
№ п/п | Функция | Пределы изменения | |
X | У | ||
z=sin(x)cos(y) | от -2 π до 2 π | от -2 π до 2 π | |
z=sin(x/2)cos(y) | от -2 π до 2 π | от -2 π до 2 π | |
z=sin(2x)cos(y) | от -2π до 2 π | от -2 π до 2 π | |
z = sin(x)cos(y/2) | от -2 π до 2 π | от -2 π до 2 π | |
z = sin(x/2)cos(2y) | от -2 π до 2 π | от -2 π до 2 π | |
z = sin(2x)cos(2y) | от -2 π до 2 π | от -2 π до 2 π | |
z= (1+sin(x)/x)(sin(y)/y) | от -2 π до 2 π | от -2 π до 2 π | |
z = (sin(x)/x)cos(y) | от -2 π до 2 π | от -2 π до 2 π | |
z = (sin(x)/x)|cos(y)| | от -2 π до 2 π | от -2 π до 2 π | |
z = (sin(x)/x)y | от -2 π до 2 π | от -2 π до 2 π | |
z = (sin(x)/x)|y| | от -2 π до 2 π | от -2 π до 2 π | |
z = (sin(x)/x)sin(y) | от -2 π до 2 π | от -2 π до 2 π | |
z = (sin(x)/x)|sin(y)| | от -2 π до 2 π | от -2 π до 2 π | |
z = (sin(x)/x)(1-y) | от -2 π до 2 π | от -2 π до 2 π | |
z = (sin(x)/x)|y+0.5| | от -2 π до 2 π | от -2 π до 2 π |
Методические указания
1. Формирование задач. В работе предусмотрены 2 задачи, в каждой из которых вычисляется двумерная функция, описывающая объемную фигуру, и строятся поверхностные и контурные графики с использованием различных графических функций. В первой задаче каждый график выводится в свое окно, во второй в подокна общего окна.
2. Представление матриц. Значения матрицы выводятся в текстовой форме построчно. Если столбцы в экране не умещаются, происходит разбиение на группы столбцов, которые выводятся последовательно. Организовать табличный вывод матрицы с использованием функции fprintf().
3. Поверхностный и контурный графики. Для формирования поверхностного или контурного графика необходимо:
o задать число точек по координатам X иУ,
o создать вложенные циклы по X иУ, вычислить функцию Z=f(X,Y),
o ввести номер графического окна, вывести туда график выбранного типа.
4. Следует использовать графики:
трехмерный с аксонометрией, функция plot3(X,Y,Z),
трехмерный с функциональной окраской, функция mesh(X,Y,Z),
трехмерный с функциональной окраской и проекцией, функция meshc(X,Y,Z),
трехмерный с функциональной окраской и проекцией, функция surf(X,Y,Z), контурный, функция contour(X,Y,Z),
объемный контурный, функция contour3(X,Y,Z),
трехмерный с освещением, функция surfi(X,Y,Z).
5. В каждом окне можно рисовать несколько графиков с наложением друг на друга. В списке параметров для каждого графика параметры перечисляются группами последовательно (в работе график для окна один). В каждую группу входят:
- X - первая координата площадки основания,
- Y - вторая координата площадки основания,
- Z - значение функции.
Пример выполнения
Задание
Функция f = sin(х) .
Пределы изменения аргументов от -2π. до..2π
% Задача 1
% Число точек и шаг
N=40;
h=pi/20;
% Расчет матрицы
for n=1:2*N+1
if n==N+1 A(n)=1; else A(n)=sin(h*(n-N-1))/(h*(n-N-1));
end; end;
for n=1:2*N+1
for m=1:2*N+1 Z(n,m)=A(n)*A(m);
end; end;
% Задание площадки
[X,Y]=meshgrid([-N:1:N]);
% Вывод графика в аксонометрии в окно 1
figure(1); plot3(X,Y,Z);
% вывод трехмерного графика с функциональной окраской в окно 2
figure(2); mesh(X,Y,Z);
% вывод 3-мерного графика с функциональной окраской и проекцией в окно 3
figure(3); meshc(X,Y,Z);
% вывод трехмерного графика с проекцией в окно 4
figure(4); surf(X,Y,Z);
% Вывод контурного графика в окно 5
figure(5); contour(X,Y,Z)
% Вывод объемного контурного графика в окно 6
figure(6);
contour3(X,Y,Z)
% Вывод объемного графика с освещением в окно 7
figure(7); surfl(X,Y,Z)
% Задача 2
% Число точек и шаг N=40; h=pi/20;
% Расчет матрицы
for n=1:2*N+1
if n==N+1 A(n)=1; else A(n)=sin(h*(n-N-1))/(h*(n-N-1)); end; end;
for n=1:2*N+1
for m=1:2*N+1 Z(n,m)=A(n)*A(m);
end; end;
% Задание площадки
[X,Y]=meshgrid([-N:1:N]);
% Вывод графика в аксонометрии в подокно 1
subplot(3,3,1),plot3(X,Y,Z);
% вывод трехмерного графика с функциональной окраской в подокно 2 subplot(3,3,2),mesh(X,Y,Z);
% вывод трехмерного графика с функциональной окраской и проекцией
% в подокно 3
subplot(3,3,3),meshc(X,Y,Z);
% вывод трехмерного графика с проекцией в подокно 4
subplot(3,3,4),surf(X,Y,Z);
% Вывод контурного графика в подокно 5
subplot(3,3,5),contour(X,Y,Z)
% Вывод объемного контурного графика в подокно 6
subplot(3,3,6),contour3(X,Y,Z)
% Вывод объемного графика с освещением в подокно 7
subplot(3,3,7),surfi(X,Y,Z)
Лабораторная работа № 5