Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Система компьютерной математики Octave. Лабораторный практикум
.pdf
x
x
cos
x
3
1
−
−
x
x
cos
−
Вариант 7
2
xx
43
А) Вычислить значения функции
xf
)(
=
+−
для x = -2.7, -0.1, 1.8,
−
2.5, 4.3 и найти произведение полученных значений.
0173
Б) Создать матрицу
⋅=
13.0A
−−
. Вычислить матрицу B, рав-
5213
ную произведению исходной матрицы на результат ее транспонирования. Получить матрицу C, обратную к B. Вычислить удвоенные суммы элементов каждого столбца матрицы C.
В*) Создать квадратную матрицу D размером N×N (значение N вводится
с клавиатуры), в которой элемент D(i,j) равен синусу произведения номера
строки на номер столбца.
Вариант 8
x
ln1
А) Вычислить значения функции
xf
+
)(
=
для x = -7, -2.1, 1.3, 2.6, 4.5
+
и найти произведение полученных значений.
3371
Б) Создать матрицу
⋅=
26.0A
−
. Вычислить матрицу B,
1254
равную произведению исходной матрицы на результат ее транспонирования.
Получить матрицу C, обратную к B. Вычислить синусы сумм элементов каждой
строки матрицы C.
В*) Создать квадратную матрицу D размером N×N (значение N вводится с
клавиатуры), в которой элемент D(i,j) равен десятичному логарифму произведения номера строки на номер столбца.
Вариант 9
x
−
e
1
А) Вычислить значения функции
xf
+
)(
=
для x = -1.0, 0.2, 1.1, 2.3, 2.4
и найти произведение полученных значений.
4324
Б) Создать матрицу
⋅=
24.0A
−
. Вычислить матрицу B, рав-
8261
ную произведению исходной матрицы на результат ее транспонирования. Получить матрицу C, обратную к B. Извлечь корень кубический из каждого элемента матрицы C.
В*) Создать квадратную матрицу D размером N×N (значение N вводится
с клавиатуры), в которой элемент D(i,j) равен натуральному логарифму произведения номера строки на номер столбца.
10

x
−
−
8
x
−
x
x
sin
+
−
Вариант 10
x
ex
А) Вычислить значения функции
xf
=2)(
+
для x = 0.2, 0.7, 0.9, 1.2,
1.4 и найти произведение полученных значений.
0318
Б) Создать матрицу
⋅=
07.0A
−
. Вычислить матрицу B, рав-
6542
ную произведению исходной матрицы на результат ее транспонирования.
Получить матрицу C, обратную к B. Возвести в квадрат каждый элемент
матрицы C.
В*) Создать квадратную матрицу D размером N×N (значение N вводится
с клавиатуры), в которой элемент D(i,j) равен корню кубическому из произведения номера строки на номер столбца.
Вариант 11
А) Вычислить значения функции
)(
+
=
xf
2cos1
x
2
−
для x = 2.0, 2.6, 3.2, 4.1,
4.5 и найти произведение полученных значений.
8305
Б) Создать матрицу
⋅=
29.0A
−
. Вычислить матрицу B, рав-
0124
ную произведению исходной матрицы на результат ее транспонирования. Получить матрицу C, обратную к B. Применить функцию синуса к каждому элементу матрицы C.
В*) Создать квадратную матрицу D размером N×N (значение N вводится
с клавиатуры), в которой элемент D(i,j) равен утроенному произведению номера строки на номер столбца.
Вариант 12
x
А) Вычислить значения функции
2.4 и
найти произведение полученных значений
xf
)(
=
ln1
для
2
+
x = 0.3, 0.5, 0.9, 1.7,
.
0318
Б) Создать матрицу
⋅=
15.0A
−
.
Вычислить матрицу
6542
B,
рав
ную произведению исходной матрицы на результат ее транспонирования
Получить матрицу
матрицы
В
с клавиатуры
C.
*)
Создать квадратную матрицу
), в
косинус удвоенного номера столбца
C,
обратную к
которой элемент
B.
D
D(i,j)
.
11
Возвести в квадрат каждый элемент
размером
N×N (
значение
N
вводится
равен произведению номера строки на
-
.

xxxy2
cos
sin
+
=
Лабораторная работа № 2
ТАБУЛИРОВАНИЕ ФУНКЦИЙ. ПОСТРОЕНИЕ ГРАФИКОВ
Цель работы: освоить базовые возможности пакета Octave, научиться строить графики функций в декартовой и полярной системах координат.
Кроме режима непосредственных вычислений Octave поддерживает создание m-файлов, объединяющих несколько команд в одну программу – скрипт.
Для того чтобы создать скрипт, следует перейти на вкладку Редактор и
набрать последовательность команд. После сохранения написанной программы
в файле с расширением .m ее можно будет выполнить, нажав клавишу F5 (или
выбрав соответствующий пункт меню). В этой и следующих лабораторных работах мы будем использовать именно эту возможность.
Построение графиков. Пакет Octave предоставляет пользователю целый
ряд процедур для построения графиков различного типа. Рассмотрим сначала
построение графиков функций одной переменной в декартовой системе координат.
Двумерные графики в декартовой системе координат строятся командой
plot(x, y, 'формат', 'параметр1', значение1,
'параметр2', значение2, …)
где x, y – набор данных для построения графика;
'формат' – необязательная строка формата вывода графика, при ее отсут-
ствии используются значения параметров по умолчанию;
'параметр', значение – указание значений дополнительных парамет-
ров, которые могут быть альтернативой (и расширением возможностей) строки
формата. В команде
plot
можно указать несколько пар вида 'параметр', значе-
ние, в соответствии с которыми будет выведен график.
Первым многоточием в списке аргументов команды обозначено возможное
повторение группы x, y, 'формат' при построении нескольких графиков
в одном окне, вторым – группы 'параметр', значение.
Пример 1. Построить график функции
Сначала создадим вектор
x = -pi:pi/50:2*pi;
y = sin(x) + x.*cos(2*x);
x- и y-
Построим график с помощью команды
тов форматирования графика
1)
сплошная линия черного цвета толщиной
:
координат графика
plot
.
Приведем несколько вариан
2
пикселя, маркер отсутствует
:
на отрезке
[-π; 2π].
-
:
plot(x, y, 'linestyle', '-',
'linewidth', 2,
'color', 'black')
12

2) линия графика отсутствует, в качестве маркера используется кружок си-
него цвета размером 5 пикселей:
plot(x, y, 'linestyle', 'none',
'color', 'blue',
'marker', 'o', 'markersize', 5)
Более короткая запись команды
формата, в которую можно перенести параметры
plot
получается при использовании строки
linestyle, color
и
marker
Так, первый из приведенных в примере графиков может быть построен командой
.
plot(x, y, '-k', 'linewidth', 2)
а второй – командой
plot(x, y, 'bo', 'markersize', 5)
13

Значения параметра 'linestyle':
'-'
– сплошная линия;
'--'
':'
'-.'
– штриховая линия;
– пунктирная ("точечная") линия;
– штрихпунктирная линия.
Значения параметра 'color':
'r'
– красный цвет ('red');
'g'
– зеленый цвет ('green');
'b'
– синий цвет ('blue');
'k'
– черный цвет ('black')
и другие.
В качестве значения параметра 'color' (но не в строке формата!) можно
использовать вектор [r, g, b] – массив вещественных чисел в диапазоне от 0 до 1
– долей красной, зеленой и синей компоненты цвета.
Значения параметра 'marker':
'o'
– окружность ('circle');
's'
– квадрат ('square');
'd'
– ромб ('diamond')
и другие.
Полный список параметров и их возможных значений можно посмотреть на
вкладке Документация.
Цвет окаймления графического окна можно задать при его явном создании в
команде
figure
.
Пример:
x=-3:0.5:2;
y=sin(x)+x.*cos(2*x);
figure('color',[0.75,0.75,0.75])
plot(x,y,':o','linewidth',3)
Синтаксис (один из вариантов) команды
номер_окна = figure('параметр1', значение1,
'параметр2', значение2, …)
figure
:
С помощью этой команды можно создать несколько окон с разными графи-
ками. Однако часто возникает необходимость построить несколько графиков в
одном окне. Это можно сделать двумя способами:
1) используя команду удержания окна –
hold on
(рекомендуется, так как
в этом случае обеспечивается полная совместимость с пакетом MatLab);
2) используя команду
plot
с несколькими группами аргументов;
14

xysin
=
xxy2cos
=
3) используя матрицу, в которой каждая строка есть массив значений соот-
ветствующей функции.
Пример 2. Построить в одном окне графики функций
на отрезке
x = -pi:pi/50:2*pi;
y1=sin(x);
y2=x.*cos(2*x);
hold on
plot(x,y1,'-b')
plot(x,y2,'-r')
[-π; 2π].
Реализуем первый способ
:
Для отключения режима удержания используется команда
Три последних команды можно заменить одной (второй способ
plot(x,y1,'-b',x,y2,'-r')
и
hold off
):
.
Для построения набора функций, заданных в одном и том же диапазоне ар
гументов, можно использовать двумерную матрицу (третий способ
x = -pi:pi/50:2*pi;
y=sin(x);
y(2,:)=x.*cos(2*x);
plot(x,y)
):
В этом примере оператор "двоеточие" используется для задания диапазона
изменения второго индекса (номеров столбцов) матрицы
15
y.
Поскольку началь
-
-

ное и конечное значение индекса опущено, Octave определяет диапазон изменения индекса по количеству значений в правой части оператора присваивания.
Области определения графиков могут не совпадать, тогда в окне можно по-
строить график, который на разных интервалах задается разными формулами:
x1=-pi:pi/50:0;
x2=0:pi/50:2*pi;
y1=sin(x1);
y2=x2.*cos(2*x2);
hold on
plot(x1, y1, '-b', 'linewidth',2)
plot(x2, y2, '-r', 'linewidth',2)
plot(0, 0, 'o', 'linewidth',2,
'markersize',6,
'markeredgecolor','k')
hold off
Результат:
Неявно заданные функции. Функция, график которой нужно построить,
может быть задана неявно, в виде уравнения F(x,y) = 0.
Пример 1. Построим график функции, заданной уравнением
2
Выразим из этого уравнения координату x:
.
0164
=−+ yx
2
416 yx −=
. В этом случае роль
независимой переменной будет играть y:
y = -4:0.1:4;
x = 16 - 4*y.^2;
plot(x, y,'-r','linewidth',2);
16

Заметим, однако, что функция plot в качестве первого параметра всегда по-
лучает вектор x-координат, а в качестве второго – вектор y-координат.
Результат:
Пример 2. Построим график окружности
уравнения y:
2
)1(4 −−±= xy
. Знак "+" в этом выражении соответствует верхней
полуокружности, а знак "-" – нижней полуокружности. Напишем программу.
x = -1:0.1:3;
y1=sqrt(4-(x-1).^2);
y2=-y1;
hold on
% рисуем окружность
plot(x, y1,'-k','linewidth',2);
plot(x, y2,'-k','linewidth',2);
% рисуем оси окружности
plot([-2,4],[0,0],'-r')
plot([1,1],[-3,3],'-r')
22
. Выразим из этого
4)1(
=+− yx
17

Результат:
Параметрическое задание графика
Пример. Построение астроиды:
t =0 : pi/50 : 2*pi;
x=cos(t).^3;
y=sin(t).^3;
plot(x, y,'-r','linewidth',3);
Результат:
18

Графики в полярной системе координат. Функция в полярной системе
координат задает зависимость расстояния между фиксированной точкой (началом координат) и текущей точкой графика от полярного угла.
Пример. Построение архимедовой спирали:
fi=0 : pi/50 : 3*pi;
ro=fi;
h=polar(fi,ro);
set(h, 'linewidth', 3,
'color','r')
Результат:
Пояснения. Функция
polar
возвращает некоторое вещественное число (дескриптор графика), используя которое можно устанавливать свойства этого
графика с помощью команды
и при построении графиков с помощью команды
x1=-2:0.1:0; y1=-x1;
x2=0:0.1:2; y2=1-exp(-x2);
hold on
h1=plot(x1,y1);
h2=plot(x2,y2);
set(h1,'linewidth',3, 'color','b')
set(h2,'linewidth',3, 'color','r')
grid on
(команда
grid on
включает режим отображения координатной сетки).
set
. Кстати, этот же подход можно использовать
plot
:
19
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
