
Лабораторная работа №3
Дисциплина «Компьютерные технологии и программирование»
Выполнил:
студент гр. И – 2013 – МА
Чернобай И.В.
Проверил:
ст. преподаватель
Койфман А.А.
Мариуполь, 2014
ЗАДАНИЕ НА РАБОТУ
Задача 1. Двумерная функция и объемные графики в своих окнах.
Ввести исходные данные.
Вычислить двумерную функцию.
Вывести функцию в виде 5 трехмерных графиков разного типа.
Вывести функцию в виде 2 контурных графиков разного типа.
Задача 2. Двумерная функция и объемные графики в подокнах общего окна.
№ |
Функция |
Пределы изменения |
|
x |
y |
||
10 |
z = (sin(x)/x)y |
от -2 до 2 |
от -2 до 2 |
Исходный код ScLab:
Задача 1
// Задача 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
scf(1);
plot3d(X,Y,Z,alpha=89,theta=68,flag=[2,2,3]);
// вывод черно-белого трехмерного графика в окно 2
scf(2);
mesh(X,Y,Z);
// вывод трехмерного графика с окраской в окно 3
scf(3);
plot3d3(X,Y,Z,alpha=89,theta=68,flag=[2,2,3]);
// вывод трехмерного графика с функциональной окраской в окно 4
scf(4);
surf(X,Y,Z);
// Вывод линий уровня функции на поверхности отклика в окно 5
scf(5);
xc=-2*%pi:h:2*%pi;
yc=-2*%pi:h:2*%pi;
plot3d(xc,yc,Z,alpha=86,theta=105); contour(xc,yc,Z,7,alpha=86,theta=105,flag=[0 2 4])
// Вывод плоского графика линий уровня в окно 6
scf(6);
contour2d(xc,yc,Z,6)
В результате работы программы, были получены следующие графики:
Рисунок
2 – Черно – белый трехмерный
график
(Задается scf(2);
mesh(X,Y,Z);)
исунок
1 – Цветной трехмерный график
(Задается
scf(1);
plot3d(X,Y,Z,alpha=89,theta=68,flag=[2,2,3];
)
Рисунок 3 – Цветной трехмерный график (Задается scf plot3d3(X,Y,Z,alpha=89,theta=68,flag=[2,2,3]);
Рисунок 4 - Трехмерный график с функциональной окраской
(Задается: scf(4);surf(X,Y,Z); )
Рисунок 5 - Трехмерный график с функциональной окраской
(Вывод линий уровня функции на поверхности отклика в окно 5:
scf(5);
xc=-2*%pi:h:2*%pi;
yc=-2*%pi:h:2*%pi;
plot3d(xc,yc,Z,alpha=86,theta=105); contour(xc,yc,Z,7,alpha=86,theta=105,flag=[0 2 4]))
Рисунок 6 – Плоский график
(Вывод плоского графика линий уровня в окно 6:
scf(6); contour2d(xc,yc,Z,6))
Задача 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
scf(1);
subplot(3,2,1), plot3d(X,Y,Z,alpha=89,theta=68,flag=[2,2,3]);
// вывод черно-белого трехмерного графика в окно 2
subplot(3,2,2), mesh(X,Y,Z);
// вывод трехмерного графика с окраской в окно 3
subplot(3,2,3), plot3d3(X,Y,Z,alpha=89,theta=68,flag=[2,2,3]);
// вывод трехмерного графика с функциональной окраской в окно 4
subplot(3,2,4), surf(X,Y,Z);
// Вывод линий уровня функции на поверхности отклика в окно 5
xc=-2*%pi:h:2*%pi;
yc=-2*%pi:h:2*%pi;
subplot(3,2,5),
plot3d(xc,yc,Z,alpha=86,theta=105); contour(xc,yc,Z,7,alpha=86,theta=105,flag=[0 2 4])
// Вывод плоского графика линий уровня в окно 6
subplot(3,2,6), contour2d(xc,yc,Z,4)
В итоге, все графики (см. рис. 1 - 5) были совмещены в одном окне. Для этого используем конструкцию типа subplot(3,2,1), plot3d(X,Y,Z,alpha=89,theta=68,flag=[2,2,3]); Для каждого графика.
Министерство образования и науки Украины
Государственное высшее учебное заведение
Приазовский государственный технический университет
Кафедра автоматизации технологических процессов и производств