Багдасарова Арина, Исабекова Сабина
5ПМИ-4ДБ-055
MATLAB
Хранение и отображение вещественных чисел
Основным элементом командного режима работы с системой является командное окно Command Window (окно команд). В командном окне показываются вводимые с клавиатуры числа, переменные, результаты выражений. Символ приглашения >> в строке командного окна показывает, что система готова к диалогу. В этой строке с помощью клавиатуры в текстовом режиме набирают одну или несколько команд, подлежащих вычислению. Их ввод (передача управления системе) осуществляется нажатием на клавишу <Enter>. При вводе курсор может находится в любом месте командной строки. Введенное выражение вычисляется, и результат появляется в следующей строке командного окна – строке вывода.
Выполнение каждой команды в MatLab сопровождается эхом. Часто эхо затрудняет восприятие работы программы и тогда его можно отключить. Для этого команда должна завершаться символом точка с запятой.
Основным видом данных, которые используются в системе MATLAB, являются матрицы. Даже обычные числа и скалярные переменные рассматриваются как матрицы размерности 1×1, однако при арифметических операциях и операциях ввода – вывода пользователь этого практически не замечает. Каждое действительное число по умолчанию занимает 8 байт оперативной памяти (тип double) и принимает по модулю значения от realmin и realmax. Количество значащих десятичных цифр при этом достигает 16 – 17. Однако, можно явно перейти к целым типам данных: int8, uint8, int16, uint16, int32, uint32, под которые отводится 8, 16 и 32 байта соответственно.
Например:
>> x=int32(3.2);
определяет переменную целого типа int32.
В MATLAB 7 также существует тип данных single
>> y=single(3.5);
Формат чисел определяет вид в результата вычислений в командном окне. Чтобы не перегружать подробностями командное окно, MATLAB по умолчанию использует формат short (укороченный), при котором на экране отображаются только четыре цифры после десятичной точки. Однако формат вывода может быть и другим. Он может быть установлен с помощью изменения параметров Command Window
Выберите в меню File пункт Preferences (Предпочтения). На экране появится диалоговое окно Preferences, изображенное на рис. 1.1.

Для установки формата вывода следует убедиться, что в списке левой панели выбран пункт Command Window(как показано на рис.1.1). Задание формата производится из раскрывающегося списка Numeric format панели Text display.
Выберите short в раскрывающемся списке Numeric format. Закройте диалоговое окно, нажав кнопку ОК. Сейчас установлен короткий формат с плавающей точкой для вывода, при котором на экране отображаются только четыре цифры после десятичной точки. Наберите в командной строке 200/3 и нажмите <Enter>.
Результат выводится в формате short:
>> 200/3
ans =66.6667
Если требуется получить результат вычислений более точно, то в диалоговом окне Preferences выбрать в раскрывающемся списке long. Результат будет отображаться в длинном формате с плавающей точкой long c четырнадцатью цифрами после десятичной точки. Форматы short e и long e предназначены для вывода результата в экспоненциальной форме с четырьмя и пятнадцатью цифрами после десятичной точки соответственно.
Результат выводится в формате long:
>> 200/3
ans =
66.
Этот формат вывода сохранится для всех последующих вычислений, если только не будет установлен другой формат. В MATLAB возможна ситуация, когда при отображении слишком большого или малого числа результат не укладывается в формат short. Вычислите 100000/3 и 1/3000, результат выводится в экспоненциальной форме:
>> 100000/3
ans =3.3333e+004
>> 1/3000
ans =3.3333e-004
Однако, первоначальная установка формата сохраняется и при дальнейших вычислениях для небольших чисел вывод результата снова будет происходить в формате short.
В предыдущем примере MATLAB вывела результат вычислений в экспоненциальной форме. Запись 3.3333e-004обозначает 3.3333?10-4 или 0.. Аналогично можно набирать числа в выражениях. Например, проще набрать 10e8 или 1.0e9, чем 1 , а результат будет тот же самый.
Задавать формат вывода можно непосредственно из командной строки при помощи команды format. Например:
>> format long e
>> 1.33/5.13
ans =
2.e-001
>> format long g
>> ans
ans =0.
Все промежуточные вычисления MATLAB производит с двойной точностью, независимо от того, какой формат вывода установлен.
Использование элементарных функций
Вcтроенные элементарные функции (например, sin) записываются строчными буквами, их аргументы указываются в круглых скобках. Имена наиболее употребительных элементарных функций, аргументы которых могут быть икомплексными, сведены в следующую таблицу
Таблица 1
exp | Экспонента | abs | модуль |
log | натуральный логарифм | asin | арксинус |
log10 | десятичный логарифм | acos | арккосинус |
sqrt | квадратный корень | atan | арктангенс |
sin | Синус | sinh | гиперболический синус |
cos | Косинус | cosh | гиперболический косинус |
tan | Тангенс | tanh | гиперболический тангенс |
cot | Котангенс | asinh | гиперболический арксинус |
cec | Секанс | acosh | гиперболический арккосинус |
csc | Косеканс | atanh | гиперболический арктангенс |
Аргументы перечисленных тригонометрических функций задаются в радианах. Обратные к ним функции возвращают результат также в радианах.
Функции округления, остатка от деления и знака: fix, floor, ceil, round, mod, rem, sign.
Есть еще функции factor (разложение числа на простые множители), isprime (истинно, если число простое),primes (формирование списка простых чисел), rat (приближение числа в виде отношения двух небольших целых чисел), lcm (наименьшее общее кратное), gcd (наибольший общий делитель). В этих случаях о комплексных аргументах не может быть и речи.
В MATLAB 7 появились тригонометрические функции, аргументы которых можно задавать в градусах. Обратные к ним функции возвращают результат также в градусах. Имена таких функций заканчивются буквой d (sind, cosd, acosd, …).
Решение уравнений
Для решения уравнений, содержащих переменные, используют команды solve и fzero. Например, чтобы решить квадратное уравнение x2 – 2x – 4 = 0, введите следующее:
>> solve('x^2-2*x-4')
ans =
5^(1/2) + 1
1 - 5^(1/2)
Обратите внимание, что уравнение, которое требуется решить, задано как строка, то есть взято в одинарные кавычки. Ответ представляет собой точное(символьное) решение 1+√5. Для получения числовых решений введите double(ans) или vpa(ans), чтобы отобразить больше знаков. Ввод с командой solve может также быть символьным выражение, но в этом случае программа MATLAB потребует, чтобы правая часть выражения была заключена в скобки, и фактически синтакс решения уравнения x2 – 3x = -7 ,будет выглядеть так:
>> syms x;
>> solve(x^2-3*x+7)
ans =
3/2 + (19^(1/2)*i)/2
3/^(1/2)*i)/2
С помощью команды solve можно решать высокоуровневые полиномиальные уравнения, равно как и многие другие типы уравнений. Можно также решать уравнения, содержащие более чем одну переменную. Если уравнений меньше, чем переменных, вам следует определить (как строки), какую переменную (переменные) требуется вычислить. Например, введите solve(‘2*x-log(y) = 1’, ‘y’), чтобы решить уравнение 2x – log y = 1 для переменной y при условии х. Аналогично можно определить более чем одно уравнение. Например:
>> [x, y]=solve('x^2 - y = 2', 'y - 2*x = 5')
x =
2*2^(1/2) + 1
1 - 2*2^(1/2)
y =
4*2^(1/2) + 7
7 - 4*2^(1/2)
Эта система уравнений имеет два решения. Программа MATLAB выдает решение, выводя два значения х и два значения y для этих решений. Таким образом, первое решение состоит из первого значения х и первого значения у. Вы можете извлечь эти значения, введя в командную строку х(1) и у(1):
>> x(1)
ans =
2*2^(1/2) + 1
>> y(1)
ans =
4*2^(1/2) + 7
>> x(2)
ans =
1 - 2*2^(1/2)
>> y(2)
ans =
7 - 4*2^(1/2)
Обратите внимание, что в предыдущей команде solve мы назначили вывод в векторной форме [x, y]. Елси вы используете команду solve в системе уравнений, не задавая вывод в векторной форме, программа не отображает автоматически значения решений:
>> sol = solve('x^2 - y=2', 'y - 2*x = 5')
sol =
x: [2x1 sym]
y: [2x1 sym]
>> sol.x
ans =
2*2^(1/2) + 1
1 - 2*2^(1/2)
>> sol.y
ans =
4*2^(1/2) + 7
7 - 4*2^(1/2)
Некоторые уравнения нельзя решить символически, и в таких случаях команда попытается найти числовой ответ:
>> solve('sin(x) = 2 - x')
ans =
1.
Иногда бывает более одного решения, и вы можете не получить того, что ожидаете, например:
>> solve('exp(-x) = sin(x)')
ans =
0.
Существуют так же другие решения. Графики функций e-x и sin x показаны на рисунке

Вы можете в числовой форме найти(приблизительно) решения, показанные на графике, с помощью команды fzero, которая ищет нулевое значение данной функции в пределах заданного значения х, поэтому чтобы найти приблизительное решение при х = 3, введите следующее:
>> h=@(x) exp(-x) - sin(x)
h =
@(x) exp(-x)-sin(x)
>> fzero(h,3)
ans =
3.0964
Работа с матрицами и векторами
Ввод векторов и матриц
Все данные MATLAB представляет в виде массивов. Массив – упорядоченная, пронумерованная совокупность однородных данных. У массива должно быть имя. Фундаментальным принципом построения системы MATLAB является ее ориентация на операции с матрицами и векторами. Под вектором в MATLAB понимается одномерный массив данных, а под матрицей – двумерный массив.
Исходные значения векторов можно задавать с клавиатуры путем поэлементного ввода.
V=[1 2 3]
V =1 2 3
задает вектор – строку V, содержащий три элемента со значениями 1,2,3.
Оператор <:> (двоеточие) дает возможность простого создания векторов, каждый элемент которых отличается от предшествующего на постоянную величину, т. е. шаг. Например:
>> V=-0.1:0.3:1.4
V =-0.10 0.80
Шаг, равный единице, допускается не указывать при автоматическом заполнении. Шаг может быть и отрицательным. Возможен ввод векторов в виде арифметических выражений, содержащих любые допустимые системе функции, например:
>> V=[2+2/(3+4),exp(5),sqrt(10)]
V =2.2623
Вектор – столбец A вводится аналогично, но значения элементов в перечне отделяются знаком <;>:
>> A=[1.3;5.4;6.9]
A =1.30
Знак <;> также используется для разделения строк при задании матриц. Один из способов ввода матрицы основан на том, что матрицу можно рассматривать как вектор-столбец, каждый элемент которого является строкой матрицы. Поскольку точка с запятой используется для разделения элементов вектор-столбца, то комбинируя оба варианта разделителей, можно сформировать матрицу
>> B=[1 3 0;-2 -2 5]
B =
Обращение к элементам вектора
Доступ к элементам вектора осуществляется при помощи индекса (целое положительное число), заключаемого в круглые скобки после имени массива, в котором хранится вектор. Если введен массив V, определенный вектор - строкой
>> V=[0.8];
то для вывода, например, его третьего элемента, используется индексация:
>> V(3)
ans =7.1000
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 |


