Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




 

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

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

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

>> x=123456789 x = >> 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).

Арифметические выражения

Основу большинства расчетов составляют вычисления значений арифметических выражений, в которых в качестве операндов могут выступать константы (постоянные), переменные, стандартные и нестандартные функции. Специфика MATLAB (также как и современных стандартов языка программирования FORTRAN) заключается в том, что в отличие от большинства алгоритмических языков здесь допускается использование операндов-массивов. Таким образом, в результате вычисления выражения может получиться некоторое множество значений – вектор, матрица или массив большей размерности.

 





Поделиться с друзьями:


Дата добавления: 2016-12-06; Мы поможем в написании ваших работ!; просмотров: 777 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Ваше время ограничено, не тратьте его, живя чужой жизнью © Стив Джобс
==> читать все изречения...

2264 - | 2207 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.