close

Вход

Забыли?

вход по аккаунту

?

Ucheb vychislit praktika meto

код для вставкиСкачать
Федеральное агентство по образованию
Государственное образовательное учреждение
высшего профессионального образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
УЧЕБНАЯ
ВЫЧИСЛИТЕЛЬНАЯ ПРАКТИКА
Методическое пособие
Санкт-Петербург
2007
Составитель Я. А. Щеников
Рецензент кандидат технических наук Е. А. Фролова
В методическом пособии формируются цели и задачи учебной вычис­
лительной практики. Приводятся сведения об идеологии используемых
систем компьютерной математики �������
MatLab���
и
�� �������
Octave��������������������
�������������������
и их возможностях.
Рассмотрены вопросы, связанные с вводом данных, их обработкой и последующей визуализацией предложенными системами компьютерной математики. Приведены примеры использования команд, задания для самостоятельного выполнения студентами, контрольные вопросы. Пособие
предназначено для студентов специальностей: 220501 «Управление качеством», 220601 «Управление инновациями» и направления 220600 «Инноватика».
Подготовлено кафедрой инноватики и управления качеством и рекомендовано к изданию редакционно-издательским советом Санкт-Петербургского государственного университета аэрокосмического приборостроения.
Редактор Г. Д. Бакастова
Верстальщик С. В. Барашкова
Сдано в набор 22.10.07. Подписано в печать 19.11.07. Формат 60 × 84 1/16.
Бумага офсетная. Печать офсетная. Усл. печ. л. 1,68. Уч.-изд. л. 1,54.
Тираж 150 экз. Заказ №
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
© ГУАП, 2007
ПРЕДИСЛОВИЕ
Большие объемы информации, используемые на этапах проектирования и производства, приводят к необходимости внедрения
информационных технологий и, в частности, средств обработки
данных с помощью компьютерной математики. Современный уровень развития математического программного обеспечения (ПО)
позволяет путем нажатия всего нескольких клавиш решать задачи, на решение которых раньше уходили часы.
В данный момент на рынке существует достаточно большое количество математического ПО как зарубежного, так и отечественного производства, которое можно разделить на универсальное
и специализированное. Последнее успешно применяется в сфере
производства и услуг. Универсальное математическое ПО широко
применяется в образовании и науке, так как, несмотря на большую
сложность в освоении, обладает лучшими возможностями расширения, в большинстве таких программных продуктов реализованы
возможности программирования, моделирования, работы с различными типами данных. Среди ПО можно выделить: MathCad,
Mathematica, Maple, Statistica, MatLab. В последнее время стали
появляться и бесплатные аналоги известных математических программ, например: SciLab, Octave, Maxima, Yorik, �����������������
FreeMat����������
, которые
позволяют осваивать основные функции их платных аналогов.
Анализ и сопоставление возможностей платных и бесплатных
математических программ позволяют выделить среди них для проведения вычислительной практики MatLab и его бесплатный аналог Octave. Основной причиной выбора MatLab является огромное
количество функций, охватывающих практически все сферы человеческой деятельности, развитая система помощи, большое количество литературы, практически неограниченное расширение возможностей посредством программирования и моделирования. Среди бесплатных аналогов MatLab (SciLab и Octave) выбором представляется Octave, так как синтаксис его основных функций
полностью повторяет синтаксис команд MatLab, поэтому переход
MatLab ↔ Octave вызывает наименьшие трудности. Кроме того,
MatLab и Octave не привязаны к конкретной платформе. Существуют версии данных программных продуктов и для других операционных систем, в частности Linux.
Проведение вычислительной практики наиболее эффективно
в процессе работы над учебным проектом. При этом предусматривается использование как основных функций математических пакетов (ввод-вывод, вычисления, программирование, визуализация), так и специализированных функций, требуемых для решения конкретных задач.
1. ИДЕОЛОГИЯ MATLAB���
������� И
�� OCTAVE
������
В основе MatLab и Octave лежит матричное исчисление. Аббревиатура �������
MatLab����������
означает
��������� �������
MATrix� ���������������������������������
LABoratory�����������������������
, т. е. матричная лаборатория. Скалярная величина в �������
MatLab���
и
�� �������
Octave�����������������
����������������
рассматривается
как матрица размерностью 1 × 1. Выбор не случаен – многие процессы и системы можно реализовать в виде матриц либо свести
к ним. В качестве примера можно привести: решение систем линейных уравнений, таблицы, временные ряды, результаты экспериментов, статистические вычисления и многое другое. Вот почему
матричное исчисление является наиболее универсальным инструментом для решения широкого круга задач, что подтверждается
огромным количеством примеров, реализованных в средах MatLab
и Octave��
��������.
2. ВОЗМОЖНОСТИ MATLAB���
������� И
�� OCTAVE
������
Развитие современного математического ПО достигло такого
уровня, при котором пользователь может применять его в различных целях: как научный калькулятор, как среду программирования, как среду моделирования, как средство визуализации результатов вычислений. Ввиду большого количества информации и связанной с этим трудностью ее восприятия, а также по экономическим соображениям большинство математических программных
пакетов строится по принципу: ядро плюс расширения. Как было
указано выше, математические ядра MatLab и Octave ориентированы на операции с матрицами и состоит из ряда базовых (�����������
built������
-�����
in���
–
встроенных) функций. Развитие обеих математических систем
идет путем создания специализированных функций, использующих базовые и объединенные в модули, предназначенные для решения конкретных задач – так называемые тулбоксы (����������
t���������
oolbox –
ящик с инструментами). Некоторые из возможностей MatLab и Oc���
tave���������������������
приведены в табл. 1.
Таблица 1. Основные возможности MatLab и Octave
Возможность
Программирование
2D-визуализация
3D-визуализация
MatLab 7.X
Octave
Есть
Есть
Есть
Есть
Есть
Есть
Окончание табл. 1
Возможность
Функции пользователя
Основные статистики
Эконометрика
Обработка изображений
Обработка сигналов
Финансы
Линейная алгебра
MatLab 7.X
Octave
Есть
Есть
Есть
Есть
Есть
Есть
Есть
Есть
Есть
Есть
Есть
Есть
Есть
Есть
В состав MatLab начиная с версии 5.Х входит среда моделирования динамических систем S������������������������������������
imulink�����������������������������
с пакетами расширения ������
b�����
locksets (аналог ����������������������������������������
t���������������������������������������
oolboxes), а также расширение Symbolic�
��������� Math�
����� ���������
Toolbox��,
предназначенное для работы с символьной математикой, и многое
другое. Состав �������
Octave�������������������������������������������
в
������������������������������������������
настоящее время менее впечатляет, но основные и наиболее важные функции �������
MatLab��������������������
в
�������������������
нем реализованы.
Обе системы находятся в непрерывном развитии, причем в нем может принимать участие любой желающий.
3. УПРАВЛЕНИЕ КОМАНДНЫМ ОКНОМ
Основное рабочее пространство MatLab и Octave реализовано
в виде командного окна и носит название w���������
����������
orkspace ��������������
(рис. 1 и 2).
Рис. 1. Командное окно MatLab
Рис. 2. Командное окно Octave
Таблица 2. Команды и клавиши для работы с командным окном MatLab
и Octave
Назначение
Команда или клавиша
Перемещение курсора по командному окну
Запуск команды после набора в командном окне
Извлечение из буфера ранее введенных команд
Очистка командного окна и перенос курсора в левый верхний угол
Список существующих в командном окне переменных
Управление форматом вывода чисел в командное
окно
Удаление объектов, существующих в командном
окне (переменные, функции)
Клавиши ← →
Клавиша Enter
Клавиши ↑ ↓
Команды clс и home
Команда who
Команда format
Команда clear
Остановка вывода результатов в командном окне, Сочетание клавиш
экстренное прекращение работы программ
Ctrl+C
Простейшей формой работы в обеих средах является последовательный набор данных и команд после приглашений:
>> (����
для� �������
MatLab)
Octave:1> (����
для� ��������
Octave).
Для работы с командным окном в MatLab и Octave используются
следующие команды и комбинации клавиш (табл. 2).
4. ОРГАНИЗАЦИЯ СИСТЕМЫ ПОМОЩИ
 MATLAB���
������� И
�� OCTAVE
������
Большое количество используемых функций и модулей приводит к необходимости организации развитой системы помощи, которая включает следующие команды (табл. 3).
Также обе системы компьютерной математики имеют более подробную документацию по принципу работы и применению функТаблица 3. Назначение команд помощи в MatLab и Octave
Назначение
Синтаксис
Пример
в MatLab
Пример
в Octave
Основная команда помощи
Электронная справочная система
с примерами применения функций
help
help
help
help
help
help-i
Окончание табл. 3
Пример
в MatLab
Пример
в Octave
help имя
функции
demos
help mean
help mean
demos
Подобная
функция
отсутствует
lookfor
ключевое
слово
help /
lookfor
mean
Справка по элементарным математическим функциям
help elfun
help elfun
Справка по элементарным матрицам и манипуляциям с ними
help elmat
help elmat
Назначение
Синтаксис
Оперативная справка по функции
Демонстрационные примеры
Поиск функции по названию и ключевым словам в ее описании
Справка по операторам и специальным символам
То же
help /
help
ций. Документация представлена в формате pdf, готовом к распечатке, и доступна в составе дистрибутивов программ либо на сайтах
производителей.
5. ВВОД И ГЕНЕРАЦИЯ ДАННЫХ
Как уже было указано выше, основным типом данных в MatLab
и Octave является матрица. Пример ввода скалярных значений,
векторов и матриц приведен в табл. 4.
Таблица 4. Пример ввода численных значений в MatLab и Octave
Вид данных
Команда в MatLab
и Octave
Скалярная
величина
Вектор-строка
A=1
A = [1]
A = [1 2 3 4 5]
Вектор-столбец
A = [1; 2; 3; 4; 5]
A = [1 2 3 4 5]’
Результат
A=1
A=
12345
A=
1
2
3
4
5
Окончание табл. 4
Команда в MatLab
и Octave
Вид данных
Матрица
Упорядоченная
последовательность
Результат
A = [1 2 3; 4 5 6; 7 8 9] A =
123
456
789
A = [1:0.5:5]
A=
1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
В качестве десятичного разделителя в MatLab и Octave используется точка, а не запятая, как принято в России. Использование
запятой приводит к ошибке. Запятая в обеих математических си­
стемах используется для разделения численных значений во вводимых матрицах и векторах (либо используется пробел), а также
для разделения параметров функции. Точка с запятой служит для
подавления вывода на экран результатов выполнения команд, а также в качестве разделителя строк при вводе матрицы. В ряде случаев вводимое выражение бывает слишком велико и для его переноса
на следующую строку используется символ многоточие (...).
6. ВВОД КОНСТАНТ И СПЕЦИАЛЬНЫХ ЧИСЕЛ
В MATLAB И OCTAVE
Ряд переменных зарезервирован для математических констант
и специальных чисел (табл. 5).
Таблица 5. Команды ввода констант и специальных чисел
Команда
MatLab
Команда
Octave
Число π
Число e
pi
exp(1)
pi = 3.14159265358979
e = 2.71828182845905
Мнимая единица
либо i,
либо j
inf
pi
exp(1)
или e
либо i,
либо j
inf
NaN
NaN = NaN
1.234e-5
ans = 1.2340e-05
Вид числа
Бесконечность (результат де­
ления числа на нуль)
Не число (неопределенность
NaN
типа 0/0)
Число с плавающей запятой 1.234e-5
Результат
i = 0 + 1i
j = 0 + 1i
inf = Inf
7. ВВОД ДАННЫХ В ДИАЛОГОВОМ РЕЖИМЕ
При написании программ на встроенных языках MatLab и Octave
часто возникает необходимость в запросе ввода пользователем исходных данных для расчета. Для этого в программе используется
конструкция вида:
a=input(‘a=‘)
где a – имя переменной, которой будет присвоено численное значение (может быть любое разрешенное в MatLab и Octave), ‘a=‘ – приглашение, которое будет использоваться при вводе численных значений.
В качестве имени переменной и приглашения следует использовать буквы латинского алфавита. Вводиться могут численные значения не только в виде скалярной величины, но и вектора, матрицы (см. табл. 4), что выгодно отличает MatLab и Octave от ряда систем компьютерной математики, в которых для ввода векторов
и матриц необходимо писать цикл.
8. ГЕНЕРАЦИЯ СПЕЦИАЛЬНЫХ МАТРИЦ
В MatLab и Octave существует ряд команд, предназначенных
для упрощения генерации ряда широко используемых в математике матриц (табл. 6).
Таблица 6. Команды генерации специальных матриц
Вид матрицы
Команда
MatLab
Команда
Octave
Результат работы команды
Генерация слу- A = rand(3,3) A = rand(3,3) A =
чайных величин,
0.61056 0.40011 0.67741
0.99554 0.88761 0.64851
распределенных
по равномерному
0.82254 0.61851 0.82948
закону
Генерация слу- A = randn(3,3) A = randn(3,3) A =
чайных величин,
0.13244 -1.95108 0.59971
распределенных
-0.62782 -0.17300 -0.34914
по нормальному
-0.81877 1.49576 1.62534
закону
Генерация мат- A = zeros(3,3) A = zeros(3,3) A =
000
рицы, заполнен000
ной нулями
000
10
Окончание табл. 6
Вид матрицы
Команда
MatLab
Команда
Octave
Результат работы команды
Генерация мат- A = ones(3,3) A = ones(3,3) A =
рицы, заполнен111
ной единицами
111
111
Генерация мат- A = eye(3,3) A = eye(3,3) A =
рицы с единица100
ми на главной
010
диагонали
001
9. МАНИПУЛЯЦИИ С МАТРИЦАМИ В MATLAB И OCTAVE
Под манипуляциями с матрицами подразумеваются следующие
операции: обращение к отдельным элементам матрицы, выделение
подматриц, объединение скалярных величин, векторов, матриц
в матрицы больших размерностей, транспонирование матриц и т. д.
(табл. 7 и 8).
Таблица 7. Манипуляции с матрицами в MatLab и Octave
Операция
Исходная матрица(ы)
Доступ к отдельным эле- A = [1 2; 3 4]
ментам матрицы (вектора)
Выделение из исходной
A = [1 2; 3 4]
матрицы требуемых
вектор-строк и векторстолбцов
Выделение из исходной
матрицы подматрицы
заданной размерности
Объединение скалярных
величин в вектор
Объединение векторов
в матрицы
Команда
B = A(2,1)
Результат
B=3
B = A(1,:)
B=
12
В = A(:,2)
B=
2
4
A = [1 2 3; 4 5 6; 7 8 9] B = A(1:2,1:2) B =
12
45
A=1
C = [A B]
C=
B=2
12
C = [A; B]
C=
1
2
A = [1 2]
C = [A B]
C=
B = [3 4]
1234
C = [A; B]
C=
12
34
11
Окончание табл. 7
Операция
Объединение матриц
в матрицы большей
размерности
Исходная матрица(ы)
A = [1 2; 3 4]
B = [5 6; 7 8]
Команда
C = [A B]
C = [A; B]
Поворот векторов и мат- A = [1 2 3 4]
риц на 90 градусов против
часовой стрелки
A = rot90(A)
Результат
C=
1256
3478
C=
12
34
56
78
A=
4
3
2
1
Таблица 8. Операции над матрицами в MatLab и Octave
Операция
Транспонирование матрицы
Исходная
матрица
Команда
Результат
B=
13
24
B = det(A)
B = -2
B = rank(A) B = 2
B=
B = inv(A)
-2 1
1.5 -0.5
B=
B = size(A)
22
B = length(A) B = 4
A = [1 2; 3 4] B = A’
Вычисление детерминанта матрицы A = [1 2; 3 4]
Вычисление ранга матрицы
A = [1 2; 3 4]
Вычисление обратной матрицы
A = [1 2; 3 4]
Вычисление размерности матрицы
A = [1 2; 3 4]
Вычисление длины вектора
A = [4 3 2 1]
10. РАБОТА С СИМВОЛЬНЫМИ ПЕРЕМЕННЫМИ
Обе системы MatLab и Octave могут работать с символьными переменными – создавать их, редактировать, преобразовывать. При
определении символьной переменной ее помещают между двумя
апострофами, например:
a
b
c
s
t
12
=
=
=
=
=
‘Ivanov’
‘Ivan’
‘Ivanovich’
‘School #1’
‘tel: 123-45-67’
Отдельные символьные переменные можно объединять в структуры с помощью команды char:
str = char(a, b, c, s, t)
Результатом работы команды будет структура, присвоенная переменной str:
str =
Ivanov
Ivan
Ivanovich
School #1
tel: 123-45-67
к отдельным элементам которой можно обращаться так же, как
и к элементам матрицы:
name = str(2,:)
результат: name = Ivan.
Если в качестве символьной переменной использовать формулу,
то ее (после предварительного преобразования) можно рассчитать:
a������������
= ‘2*pi*50’
результат��:� a = 2*pi*50,
b = str2num(a)
результат: b = 314.16.
Для преобразования символьной переменной в числовую используется команда str2num, для обратного преобразования – команда num2str.
11. MATLAB�
������� (��������
���������
OCTAVE��) КАК
������������
СЛОЖНЫЙ КАЛЬКУЛЯТОР
�����������
Популярное применение большинства современных математических программ – это их использование в качестве научных калькуляторов. При использовании MatLab (Octave) следует различать
операции над отдельными элементами матрицы и матричные операции. Для указания поэлементных операций (табл. 9) перед символом операции ставится знак «.» (точка). Отсутствие точки свидетельствует о том, что операция производится в матричном виде
(табл. 10).
13
Таблица 9. Поэлементные арифметические операции в MatLab и Octave
Операция
Поэлементное сложение
Исходные
матрицы
A = [5 6; 7 8]
B = [1 2; 3 4]
Команда
Результат
C = A+B
C=
68
10 12
Поэлементное вычитание
A = [5 6; 7 8] C = A-B
C=
B = [1 2; 3 4]
44
44
Поэлементное умножение
A = [5 6; 7 8] C = A.*B
C=
B = [1 2; 3 4]
5 12
21 32
Поэлементное деление
A = [5 6; 7 8] C = A./B
C=
B = [1 2; 3 4]
5.0000 3.0000
2.3333 2.0000
Возведение в степень элемен- A = [1 2; 3 4] B = A.^2
B=
тов матрицы
14
9 16
Извлечение квадратного
A = [16 9; 4 1] B = sqrt(A) B =
корня
43
21
Таблица 10. Матричная алгебра в MatLab и Octave
Операция
Исходные
матрицы
Команда
Матричное умножение
A = [5 6; 7 8]
B = [1 2; 3 4]
C = A*B
Матричное деление
A = [5 6; 7 8]
B = [1 2; 3 4]
C = A/B
Возведение в степень матрицы A = [1 2; 3 4]
B = A^2
Результат
C=
23 34
31 46
C=
-1 2
-2 3
B=
7 10
15 22
Следует иметь в виду, что результаты операций умножения,
деления и возведения в степень элементов матрицы и самих матриц различаются. Неправильное использование символа «.» (точки) в данных операциях может привести к ошибочным резуль­
татам.
Наиболее часто применяемые функции и соответствующие им
команды приведены в табл. 11. Реальное число функций в таком
пакете, как MatLab, достигает нескольких сотен. Более подробно
14
Таблица 11. Другие математические операторы в MatLab и Octave
Операция
Модуль числа
Округление числа
в сторону плюс
бесконечности
Округление числа
в сторону минус
бесконечности
Округление числа до
ближайшего целого
Округление числа до
ближайшего целого
в сторону нуля
Натуральный логарифм
Операнд функции
Команда
Результат
x = -1
x = 1.234
y = abs(x)
y = ceil(x)
y=1
y=2
x = 1.234
y = floor(x)
y=1
x = 1.234
y = round(x)
y=1
x = -1.789
y = fix(x)
y = -1
X = [1 2 3 4]
Y = log(X)
Y=
0 0.6931
1.0986 1.3863
Десятичный логаX = [1 10 100 1000] Y = log10(X)
Y=
рифм
0 1 2 3
Экспонента
X = [1 2 3 4]
Y = exp(X)
Y=
2.7183 7.3891
20.0855 54.5982
Синус
x = pi/2
y = sin(x)
y=1
Косинус
x = pi/2
y = cos(x)
y=
6.1232e-017
Тангенс
x = pi/2
y = tan(x)
y=
1.6331e+016
Котангенс
x = pi/2
y = cot(x)
y=
6.1232e-017
Арксинус
x=0
y = asin(x)
y=0
Арккосинус
x=0
y = acos(x)
y = 1.5708
Арктангенс
x=0
y = atan(x)
y=0
Арккотангенс
x=1
y = acot(x)
y = 0.7854
Среднее арифметичеX = [1 2 3]
y = mean(X)
y=2
ское
Медиана
X = [1 2 4]
y = median(X)
y=2
X = [1 2 3 4]
y = median(X)
y = 2.5000
Вариация
X = [1 2 3 4]
y = var(X)
y = 1.6667
Стандартное отклонеX = [1 2 3 4]
y = std(X)
y = 1.2910
ние
Минимум
X = [1 2 3 4]
y = min(X)
y=1
Максимум
X = [1 2 3 4]
y = max(X)
y=4
15
с ними можно ознакомиться в справочной документации. Операнды функции записываются в круглых скобках, например:
a = [1 2 3 4];
b = sin(a)
Если в качестве операнда используются конкретные численные значения (вектор, матрица), то их помещают в квадратные
скобки:
b = sin([1 2 3 4])
По умолчанию, углы в MatLab���
������� и
�� Octave���������������������
������� измеряют
��������������������
в радианах.
12. ВИЗУАЛИЗАЦИЯ ДАННЫХ
Для отображения результатов вычислений MatLab и Octave имеют достаточно большой выбор средств визуализации. Вывод данных и текстовых строк в командную строку осуществляется с помощью команды disp (табл. 12).
В MatLab в символьных переменных возможно использование
кириллицы. Для этого необходимо изменить стандартный шрифт
на шрифт в формате UNICODE, например: Arial Unicode MS. Изменение шрифта осуществляется в меню File → Preferences... → далее
на вкладках General, Command Window, Editor/Debugger, Help изменяется текущий шрифт на требуемый. Следует обратить внимание на возможные проблемы при использовании русской буквы
«с». Мера борьбы – использовать латинскую букву «с». Использовать кириллицу в качестве имен переменных, файлов, функций нельзя.
График, приведенный на рис. 3, можно получить путем последовательного ввода в командном окне команд из табл. 13. В Octave
координатная сетка включается нажатием клавиши G на клавиатуре. Также в Octave после ввода команд полезно дать команду
replot (без параметров) для обновления графика.
Таблица 12. Пример использования команды disp
Операция
Вывод текстового сообщения
Вывод численного значения
Вывод значения переменной
16
Команда
Результат
disp(‘hello’)
disp(4)
a=8
disp(a)
hello
4
8
Рис. 3. Результат работы графических команд MatLab и Octave (табл. 13)
Таблица 13. Построение графиков в MatLab и Octave
Операция
Пример команды
Построение графической зависимости одной
переменной от другой
X = [1:100];
plot(X, sin(X))
Управление осями графика
axis([20 30 -0.8 0.8])
Нанесение сетки на график
grid
Нанесение заголовка графика
title(‘sinus.fragment’)
Нанесение надписи под осью x
xlabel(‘time’)
Нанесение надписи под осью y
ylabel(‘y = sin(x)’)
Нанесение легенды
legend(‘fragment grafika’)
С помощью команды subplot можно на одно графическое окно
выводить несколько графиков. При этом окно рассматривается как
матрица, элементами которой являются графики. Результатом
последовательного выполнения приведенных ниже команд является фигура, изображенная на рис. 4:
a���������������
= rand(1,100);
subplot(2,1,1)
plot(a)
subplot(2,1,2)
hist(a)
17
Рис. 4. Пример вывода нескольких графиков на одну фигуру
В команде subplot первый параметр отвечает за количество графиков по вертикали, второй – по горизонтали. Третий параметр отвечает за номер текущего графика. Нумерация осуществляется
слева-направо, сверху-вниз.
Также часто возникает необходимость в выводе на один график
нескольких кривых (рис. 5). В данном случае используется коман-
Рис. 5. Пример вывода двух кривых на один график
18
Таблица 14. Специальные виды графиков
Операция
Команда
Пример
График с дискретными значениями
stem
stem([1 3 4 2])
Лестничный график
stairs
stairs([1 3 4 2])
Круговая диаграмма
pie
pie([1 3 4 2])
Трехмерная круговая диаграмма
pie3
pie3([1 3 4 2])
График в полярных координатах
polar
polar([0 0 pi/6 pi/3 pi/3],
[0 1 2 1 0])
Логарифмический масштаб по осям
хиy
loglog
Логарифмический масштаб по оси y
Используются вместо команды plot в случае, если
одна или обе координаты
semilogx
должны иметь логарифsemilogy мический масштаб
Гистограмма
hist
Логарифмический масштаб по оси х
hist(rand(1,100))
да hold (или hold on), которая дается после вывода на фигуру первого графика:
x = [1:0.1:10];
plot(x,sin(x))
hold
plot(x,cos(x))
Ряд функций, реализующих специальные виды графиков, приведены в табл. 14.
13. РАБОТА С ФАЙЛАМИ
Для работы с файлами данных и программ в MatLab и Octave необходимо, чтобы эти файлы находились в пути поиска MatLab (���
Octave�����������������������������
). По умолчанию, созданные в MatLab
������� файлы
������������������
сохраняются
в папку work.
При сохранении файлов данных и программ необходимо следить
за правильностью написания имен файлов, которые не должны:
– совпадать с именем функции,
– начинаться с цифры,
– содержать буквы кириллицы,
– содержать пробелы между буквами,
– содержать прописные (большие) буквы.
19
Таблица 15. Неправильное и правильное написание имен файлов
Неправильно
1.m
mean.m
Правильно
odin.m
srednee.m
мой_файл1.m myfile1.m
moj file1.m
moj_file1.m
MyFile3.m
myfile3.m
Комментарий
Имя файла не должно начинаться с цифры
Имя файла совпадает с именем функции
mean (среднее)
Имя файла содержит символы кириллицы
Имя файла содержит пробел
Имя файла содержит большие буквы
Таблица 16. Команды работы с файлами
Назначение
Синтаксис
Пример команды
Сохранение переменной save имя файла имя перемен- a = 1
ной
save myfile a
Загрузка переменной
load имя сохраненного файла load myfile
Примеры правильного и неправильного написания имен файлов
приведены в табл. 15.
Часто возникает необходимость сохранить результат своей работы. В зависимости оттого, что нужно сохранить (переменные, сессия, программа) используются следующие команды (табл. 16).
14. ПРОГРАММИРОВАНИЕ В MATLAB���
������� И
�� OCTAVE
������
Ввод команд в командной строке – не единственный вариант работы в MatLab���
������� ��
и ������������������������������������������������
Octave������������������������������������������
. Оба пакета позволяют пользователю создавать собственные функции (в данном методическом пособии написание функций не рассматривается) и программы (����������������
scripts���������
), реализующие различные алгоритмы обработки данных. В качестве языка программирования можно использовать, например, язык Си, но
проще реализовывать программы на языке MatLab�������������
������� ������������
– последовательность необходимых функций ���������������������������
MatLab���������������������
. Программы можно писать в любом текстовом редакторе (например, Блокнот) используя
расширение *.��������������������������������������������
m�������������������������������������������
(примеры правильных имен файлов приведены
в табл. 15). В MatLab�����������������������������������������
������� также
����������������������������������������
имеется встроенный редактор/отладчик (�������������������������������������������������������
Editor�������������������������������������������������
/������������������������������������������������
Debugger����������������������������������������
), вызываемый из командного окна с помощью команды edit�
�����.
Перед запуском программы ее необходимо сохранить с расширением .��������������������������������������������������������
m�������������������������������������������������������
, при этом важно, чтобы файл был сохранен в папке, имя
которой включено в путь данного математического пакета. Для
20
Рис. 6. Пример построения графика синуса с заданной пользователем амплитудой
MatLab�����������
это папка ������������������������������������
work��������������������������������
: Имя диска.../�����������������
MatLab�����������
/����������
work������
, для �������
Octave���
��
–
Имя диска.../����
GNU� Octave����������������������������������������
������� 2.1.73/��������������������������������
���������������������������������������
usr�����������������������������
/����������������������������
share�����������������������
/����������������������
Octave����������������
/2.1.73/��������
site����
/���
m��
/.
После сохранения программу можно запустить путем набора ее
имени (без расширения) в командном окне и нажатии Enter������
�����������
. Программа запустится при условии, если:
– она написана правильно,
– она сохранена с корректным именем в корректной папке.
Пример простой программы для Octave��������������������
������� приведен
�������������������
на рис. 6.
Программа сохранена в папке Имя диска.../GNU Octave 2.1.73/
usr/share/Octave/2.1.73/site/m/ с именем program.m. Запуск осуществляется из командной строки путем набора имени файла
program (без расширения).
15. КОНТРОЛЬНЫЕ ВОПРОСЫ
1. Назначение команд управления командным окном: format��
��������,
clс, home, clear��
�������.
2. Назначение клавиш ↑ ↓ на клавиатуре?
3. Назначение сочетания клавиш Ctrl�����������������
���������������������
+����������������
C���������������
на клавиатуре.
4. Виды помощи в MatLab����������������������
������� и
���������������������
команды их вызова?
5. Назначение и синтаксис* команды lookfor�
��������
?
6. Назначение команды demos�
������
?
7. Назначение команды help���
�������
/?
8. Назначение команды help�������
�����������
elfun�
������
?
9. Назначение команды help��������
������������
elmat��
�������
?
10. Что такое матрица, вектор-строка, вектор-столбец, скаляр?
11. Назначение служебных символов «;» «:» «…» (точка с запятой, двоеточие, многоточие) в командном окне MatLab�
�������
?
12. Как создать в MatLab������������������������������������
������� переменную
�����������������������������������
и присвоить ей значение?
21
13. Представление чисел π, е, мнимой единицы, бесконечности,
не числа, пример ввода числа с плавающей запятой в MatLab�
�������.
14. Назначение и синтаксис команд input�
������
?
15. Как ввести вектор-строку, вектор-столбец и матрицу на примере вектора из четырех элементов и матрицы размером 2 × 2?
16. Назначение и синтаксис команд: rand����������������������
��������������������������
, ��������������������
randn���������������
, �������������
zeros��������
, ������
ones��,
eye�
?
17. За что отвечают при обращении к вектору V��������������
���������������
(�������������
i������������
) и матрице M�������
��������
(������
i�����
, j��
���)
индексы i и j?
18. Как осуществить доступ к отдельным элементам матрицы,
используя выражения вида V�����
������
(����
i���
), ��������������������������������
M�������������������������������
(������������������������������
i�����������������������������
, ���������������������������
j��������������������������
)? Как осуществить выделение из матрицы 2 × 2 вектора-строки и вектора-столбца?
19. Назначение и синтаксис команд: с�����������
at���������
, rot����
�������
90?
20. Назначение и синтаксис команд: inv�����������������
��������������������
, det������������
���������������
, rank������
����������
, «’»?
21. Назначение и синтаксис команд: size�����������
����� и
����������
length��
��������
?
22. Назначение и синтаксис команды disp�
�����
?
23. Назначение и синтаксис команд: ������
plot��, ������������
axis��������
, ������
grid��, ���������������
title����������
, ��������
xlabel��,
ylabel���������
, legend�
�������
?
24. Как отобразить несколько графиков в одном окне с помощью
команды subplot�
��������
?
25. Назначение�����������������������������������������������������
����������������������������������������������������
��������������������������������������������������
��������������������������������������������������
синтаксис�����������������������������������������
����������������������������������������
команд����������������������������������
: stem, stairs, pie, pie3, polar,
semilogx, semilogy, hist?
26. В
�����������������������������������������������������
какую папку по умолчанию сохраняются созданные файлы?
27. Под какими именами не следует сохранять файлы?
28. Как сохранить и загрузить сессию в текстовом файле с помощью команд save��������
����� и
�������
load�
�����
?
29. Назначение и синтаксис команд: mean�������
�����������
, std��
�����, var�
����
?
16. СОДЕРЖАНИе ОТЧЕТА
1. Титульный лист по стандарту ГУАП.
2. Индивидуальный вариант задания: F = 1.2, I = 0.7, O = 0.7, N =
= –1.6.
3. Таблицы 2 и 3 данного методического пособие без изменений.
4. Таблица 4 с данными из индивидуального задания (F, I, O,
N).
5. Таблица 5 с измененной последней строкой (ввод числа с плавающей точкой). Приведите собственный пример числа с плавающей точкой.
22
6. Таблица 6. Вместо указанных матриц сгенерируйте матрицы
размерностью 2 × 3.
7. Таблицы 7 и 8 с данными из индивидуального задания (F, I,
O, N).
8. Пример использования собственных ФИО, номера школы и
телефона в соответствии с разделом 10.
9. Таблицы 9, 10, 11 с данными из индивидуального задания (F,
I, O, N).
10. Таблица 12 с выводом собственной фамилии и численного
значения N.
11. Таблица 13 данного методического пособия без изменений.
12. Таблица 14. Функции stem������������������������������������
����������������������������������������
, stairs����������������������������
����������������������������������
, pie�����������������������
��������������������������
, pie������������������
���������������������
3 c���������������
����������������
данными из индивидуального задания (F, I, O, N). Остальное
��������������������������
– без изменений.
13. Таблицы 15��������������������
�����������������
16 без изменений.
14. ������������������������������������������
Индивидуальное задание: напишите на языке �������
MatLab�������
и
������
рассчитайте выражение
a = sin(eF) + cos(Iπ),
где F и I – из варианта индивидуального задания (см. табл. 1
в Прил. 2).
15. Листинг и результат работы сценария (программы), которая:
– формирует вектор X длиной 4 × 1 из данных (табл. 1 Прил. 2),
введенных пользователем согласно варианту, указанному в табл. 1
Прил. 2.
– отображает введенные данные на графике, добавляет сетку,
заголовок, подписи к осям (команды: plot��������
������������
, ������
grid��, ���������������
title����������
, ��������
xlabel��, ����
ylabel��
),
– строит на отдельном графике результат обработки введенных
данных согласно варианту (см. табл. 2 Прил. 2), добавляет сетку,
заголовок, подписи к осям (команды: title����������
���������������
, xlabel��
��������, ylabel��
��������
).
График в буфер обмена можно скопировать, обратившись к меню
Edit → Copy��������
figure�����������������������
������� на
����������������������
самом графике (для MatLab).
�������������
Для Octave
������� на���
вести указатель мыши на заголовок графика (gnuplot graph), далее
нажать правую кнопку мыши → Options → Copy to Clipboard.
16. Список используемой литературы.
23
Приложение 1
Наиболее распространенные причины ошибок
при работе в MatLab (Octave)
1. Использование запятой вместо точки в качестве десятичного
разделителя.
2. Неправильно использованные скобки.
3. Неправильное имя файла.
4. Отсутствие пробела-разделителя между вводимыми числами.
Приложение 2
Задание по вычислительной практике
Задание по вычислительной практике выполняется студентом
индивидуально согласно варианту. Выбор варианта осуществляется по табл. 1 Прил. 2: F ������������������������
– первая буква фамилии, I ���������������
– первая буква
имени, O �������������������������
– первая буква отчества, N ��������������������������
– первая цифра номера школы. Например, Сидоров Иван Петрович из 123-й школы:
F= 1.2
I = 0.7
O= 0.7
N = –1.6
В дальнейшем эти числа используются для составления индивидуальных матриц и векторов. Например:
матрица 1 × 1: a = F = 1.2
Таблица 1�. Варианты
�������������������������������
индивидуальных заданий
Школа, ФИО
F
I
О
N
1АБВ
2ГДЕ
3ЖЗИ
4КЛМ
5НОП
6РСТ
7УФХ
8ЦЧШ
9ЩЭЮЯ
–0.4
–1.7
0.1
0.3
–1.1
1.2
1.2
–0.1
0.3
0.2
–0.2
0.7
–0.6
2.2
–0.1
0.1
1
0.1
–0.1
–0.8
0.3
–1.3
0.7
1.6
–0.7
0.8
1.2
–1.6
–1.4
–0.4
0.7
0.8
0.7
0.6
1.3
–0.7
24
Таблица 2. Варианты заданий для обработки вектора Х
Фамилия студента
F
АБВ
ГДЕ
ЖЗИ
КЛМ
НОП
РСТ
УФХ
ЦЧШ
ЩЭЮЯ
sin(X)
cos(X)
ln(X2)
lg(X2)
abs(X)
sqrt(X2)
exp(X)
ceil(X)
floor(X)
вектор-строка: A = [F I O N] = [1.2 0.7 0.7 –1.6]
матрица���
2� × 2: A = [F I; O N] = [1.2 0.7; 0.7 –1.6]
При использовании в качестве операндов некоторых функций
(например, логарифмов) отрицательных чисел будет происходить
ошибка. В данном случае разрешается использовать любое другое
корректное численное значение операнда, например модуль этого
числа.
25
Рекомендуемая литература
1. Потемкин В. Г. Система MatLab: справ. пособие. М.: ДиалогМИФИ, 1997.
2. Потемкин В. Г. MatLab 5 для студентов. М.: Диалог-МИФИ,
1999.
3. Потемкин В. Г. Система инженерных и научных расчетов
MatLab 5. х: в 2 т. М.: Диалог-МИФИ, 1999.
4. Мартынов Н. Н. Введение в MatLab���������������������
������� 6.
��������������������
М.: КУДИЦ-ОБРАЗ,
2002.
5. Мартынов Н. Н. MatLab������������������������������������
5 х. Вычисления, визуализация, программирование. М.: КУДИЦ-ОБРАЗ, 2000.
6. www������������������������������������������������������
���������������������������������������������������������
.�����������������������������������������������������
exponenta��������������������������������������������
.�������������������������������������������
ru – образовательный математический портал.
7. http://freemat.sourceforge.net/ – система компьютерной математики Freemat.
8. www.octave.org – система компьютерной математики Octave.
9. www.scilab.org – система компьютерной математики Scilab.
26
Содержание
Предисловие...................................................................... 3
1. Идеология MatLab и Octave............................................... 5
2. Возможности MatLab���
и Octave...........................................
������
5
3. Управление командным окном.......................................... 6
4. Организация системы помощи в MatLab���
и Octave.................
������
7
5. Ввод и генерация данных.................................................. 8
6. Ввод констант и специальных чисел в MatLab���
и Octave.........
������
9
7. Ввод данных в диалоговом режиме..................................... 10
8. Генерация специальных матриц........................................ 10
9. Манипуляции с матрицами в MatLab���
и Octave.....................
������
11
10. Работа с символьными переменными................................ 12
11. MatLab (Octave) как сложный калькулятор....................... 13
12. Визуализация данных.................................................... 16
13. Работа с файлами........................................................... 19
14. Программирование в MatLab���
и Octave...............................
������
20
15. Контрольные вопросы..................................................... 21
16. Содержание отчета......................................................... 22
Приложение 1. Наиболее распространенные причины ошибок
при работе в MatLab���������
(�������
Octave)................................................. 24
Приложение 2. Задание по вычислительной практике.............. 24
Рекомендуемая литература.................................................. 26
27
Документ
Категория
Без категории
Просмотров
0
Размер файла
824 Кб
Теги
vychislitel, praktike, metod, uchet
1/--страниц
Пожаловаться на содержимое документа