- •Практическая часть
- •Основные математические операции
- •Примеры сортировки числовых массивов
- •Пример формирования двухмерного массива
- •Примеры с функцией pow2
- •2.2. Экспоненциальная функция exp
- •Примеры с функцией exp
- •2.3. Логарифмические функции log, log2, log10, reallog
- •Примеры с логарифмическими функциями
- •Примеры с обратными тригонометрическими функциями
- •Примеры с гиперболическими функциями
- •Примеры с обратными гиперболическими функциями
- •Примеры округления чисел
- •Примеры вычисления остатков от деления
- •2.7. Функции для работы с простыми числами
- •Примеры с функциями primes, isprime, factor
Примеры округления чисел
>> % Округление к числу, ближайшего к нулю. Отбрасывание дробной части >> % Функция fix (см. help fix) >> [fix(6.78), fix(-6.78), fix(0.001), fix(-0.001)] ans = 6 -6 0 0
>> % Округление к меньшему числу (в сторону минус бесконечность) >> % Функция floor (см. help floor) >> [floor(6.78), floor(-6.78), floor(-0.001), floor(1.678)] ans = 6 -7 -1 1
>> % Округление в сторону ближайшего целого числа >> % Функция round (см. help round) >> [round(6.7),round(-6.7),round(-0.01),round(1.6),round(1.4)] ans = 7 -7 0 2 1
>> %% Округление в сторону плюс бесконечность >> %% Функция ceil (см. help ceil) >> [ceil(6.1),ceil(-6.1),ceil(0.01),ceil(1.23),ceil(1.6)] ans = 7 -6 1 2 2
|
Задание 6
В качестве округляемого числа примите X.YY, где Х – номер месяца, когда вы родились, YY – день месяца. Сформируйте массив в виде вектора-столбца с элементами, состоящих из функций fix(X.YY), floor(X.YY), round(X.YY), ceil(X.YY). Выведите результат в командное окно MATLAB.
2.6. Функции вычисления остатка от деления mod, rem
Примеры вычисления остатков от деления
>> %% Функция вычисления остатка после деления, модуль – термин >> %% из модулярной, целочисленной арифметики
>> %% Функция mod (см. help mod) >> [mod(2,12), mod(-2,12), mod(-2,-12), mod(11,12), mod(13,12)] ans = 2 10 -2 11 1 >> [mod(3,0), mod(0,3), mod(0,0)] ans = 3 0 0
>> %% Функция вычисления остатка после деления >> %% Функция rem (см. help rem) >> [rem(2,12), rem(-2,12), rem(-2,-12), rem(11,12), rem(13,12)] ans = 2 -2 -2 11 1 >> [rem(3,0), rem(0,3), rem(0,0)] ans = NaN 0 NaN
|
Последний результат со значением NaN означает, что это не число (от англ. Not–a–Number). Функции mod и rem дают одинаковый результат для положительных аргументов.
2.7. Функции для работы с простыми числами
Функция primes формирует список простых чисел. Функция isprime проверяет простое ли число. Функция factor разлагает число на простые множители.
Примеры с функциями primes, isprime, factor
>> primes(21) %% см. help primes ans = 2 3 5 7 11 13 17 19 >> primes(-21) ans = Empty matrix: 1-by-0
>> isprime(123) ans = 0 >> isprime(113) ans = 1 >> isprime(1:9) ans = 0 1 1 0 1 0 1 0 0 >> isprime([1,3,7,9,13,17,19,21]) % для вектора-строки ans = 0 1 1 0 1 1 1 0 >> isprime([1,3,7,9,13,17,19,21]') % ' - транспонирование ans = 0 1 1 0 1 1 1 0 >> primes(2^4) ans = 2 3 5 7 11 13
>> factor(123) %% разложение числа 123 на простые множители ans = 3 41 >> 3 * 41 %% для проверки ans = 123
|
В одном из примеров получился ответ Empty matrix. Это означает, что результат есть пустая матрица.
Задание 7
Проверьте, является ли год вашего рождения простым числом.
Выполните разложение вашего года рождения на простые множители с последующей проверкой.
В системе MATLAB предусмотрены символьные операции, в частности, решение линейных и нелинейных уравнений. Рассмотрим некоторые примеры.
>> syms x >> y = x^2 + 3*x + 1 y = x^2 + 3*x + 1 >> whos y Name Size Bytes Class Attributes y 1x1 112 sym >> x12 = solve(y) x12 = - 5^(1/2)/2 - 3/2 5^(1/2)/2 - 3/2 >> xx = double(x12) xx = -2.6180 -0.3820 >> x = xx(1) x = -2.6180 >> yd = subs(y) yd = 0 >> x = xx(2) x = -0.3820 >> yd2 = subs(y) yd2 = 0 |
Функция solve может быть использована и для выражения, заключенного в одинарные кавычки, например,
>> str = '3*p^2 + 5*p + 2'
str =
3*p^2 + 5*p + 2
>> whos str
Name Size Bytes Class Attributes
str 1x15 30 char
>> q = solve(str)
q =
-1
-2/3
>> whos q
Name Size Bytes Class Attributes
q 2x1 112 sym
>> x1 = double(q)
x1 =
-1.0000
-0.6667
В заключение ознакомимся с календарем:
>> calendar(2013, 2) Feb 2013 S M Tu W Th F S 0 0 0 0 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 0 0 0 0 0 0 0 0 0 |
