Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Glava_2a70_2014.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
4.6 Mб
Скачать

§ 2.5. Форматы представления вещественных чисел

Числовые данные, с которыми оперирует система MATLAB, в памяти компьютера представлены вещественными или комплексными значениями в формате double. Это означает, что каждое вещественное число занимает 8 байт в оперативной памяти и принимает по модулю значения из диапазона , количество значащих цифр при этом теоретически достигает 16-17. Комплексное число, представленное действительной и мнимой частями в том же формате, занимает соответственно 16 байт. Именно с такой точностью теоретически система MATLAB выполняет все вычисления. Однако при отображении числовых результатов на экране монитора часть значащих цифр отбрасывается согласно установленному формату вывода.

Как правило, числа выводятся с небольшим количеством значащих цифр: целые – не более, чем с 9 цифрами; вещественные с фиксированной точкой – не более, чем с 4 цифрами в дробной части; очень большие или очень маленькие (в том числе по модулю) числа – в формате с плавающей точкой и пятью значащими цифрами. Отображаемые значения округляются по общепринятым в математике правилам (таблица 2.5.1).

Таблица 2.5.1. Примеры отображаемых числовых значений.

>> x=123456789

x =

123456789

>> x=10/6

x =

1.6667

>> x=1/100

x =

0.0100

>> x=1234567890

x =

1.2346e+09

>> x=100/6

x =

16.6667

>> x=1/1000

x =

1.0000e-03

>> x=1/60

x =

0.0167

>> x=1000/6

x =

166.6667

>> x=123.456789

x =

123.4568

>> x=1/6

x =

0.1667

>> x=10000/6

x =

1.6667e+03

>> x=1234.56789

x =

1.2346e+03

Поясняя данные таблицы 2.5.1 следует подчеркнуть, что в системе MATLAB, как и в языке программирования FORTRAN для представления чисел (как вещественных, так и целых) используется формат с плавающей точкой (научный формат), в котором любое число задается мантиссой и показателем степени, и записываются в следующем виде:

1.2346e+09; 1.0000e-03; 1.6667e+03; 1.2346e+03

где буквой e обозначается основание степени, равное 10. Максимальное и минимальное по модулю числа в MATLAB соответственно равны

1.797693134862316e+308; 2.225073858507202e-308

Для этих чисел зарезервированы имена realmax и realmin.

Отметим еще одно важное отличие реализации вычислений в системе MATLAB и языке программирования FORTRAN. Результаты вычисления значений x=10/6, x=1/100, x=100/6 при выполнении соответствующей программы на языке FORTRAN равны соответственно 1, 0 и 16 (результат операций с целыми числами – целое число, т.е. дробная часть результата отбрасывается и чтобы этого не происходило по правилам языка FORTRAN следует записать x=10./6., x=1./100., x=100./6.), тогда как в MATLAB сразу получаем естественные с точки зрения математики значения указанных выражений (с учетом округлений), равные соответственно 1.6667, 0.0100 и 16.6667.

Для отображения чисел в командном окне MATLAB могут использоваться следующие форматы: short (используется по умолчанию для вывода вещественных чисел и предусматривает отображение только четырех десятичных цифр после десятичной точки), long для более полного представления вещественных чисел), rat или иначе rational (для отображения вещественных чисел в виде обыкновенных дробей; в данном формате операнды и результаты вычислений, являющихся целыми числами, в командном окне MATLAB отображаются в виде целых чисел, хотя в памяти компьютера они представляются так же, как и дробные числа).

Чтобы использовать, например формат long следует ввести с клавиатуры команду

>> format long

Таблица 2.5.2 поясняет вышеперечисленные форматы вывода числовых данных (следует отметить, что значение переменной x не зависит от установленного формата вывода).

Таблица 2.5.2. Форматы вывода числовых данных в системе MATLAB.

>> format short

>> x=sqrt(2)

x =

1.4142

>> format short e

>> x=sqrt(2)

x =

1.4142e+00

>> format long

>> x=sqrt(2)

x =

1.414213562373095

>> format long e

>> x=sqrt(2)

x =

1.414213562373095e+00

>> format rational

>> x=sqrt(2)

x =

1393/985

Дополняя данные таблицы 2.5.2, отметим, что форматы short g и long g представляют собой гибрид между соответствующими форматами вывода с фиксированной и плавающей точкой. Формат bank позволяет оперировать с финансами, сохраняя в дробной части числа два знака, соответствующие мелким денежным единицам. Формат + обеспечивает обязательный вывод знака даже у положительных чисел. Формат hex обеспечивает вывод числовых данных в шестнадцатеричном формате

Заметим, что в MATLAB существуют и иные способы изменения формата выводимых данных, построенные на базе функции sprintf, хорошо знакомой программистам на языке C. После этого результаты всех последующих вычислений будут отображаться в данном формате.

Для переменных типа double в MATLAB разрешены арифметические операции сложения, вычитания, умножения и деления, для которых используются традиционные для любого языка программирования знаки: +, –, *, /, а также операция возведения в степень, обозначаемая знаком ^ (вместо ** в языке программирования FORTRAN).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]