Что означает точка после единицы?

Форум для обсуждения вопросов математики

Модератор: Admin

Артём-Артём
Сообщения: 12
Зарегистрирован: Пт апр 16, 2010 12:45 pm

Что означает точка после единицы?

Сообщение Артём-Артём » Вт янв 15, 2013 1:01 pm

В программе Математика решаю интеграл, а результат получаю в виде
1. - 1. Cos[1. а b]
Подскажите пожалуйста: как следует понимать точку после единицы, особенно косинус от [1. а b]

Kitonum
Сообщения: 2084
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: Что означает точка после единицы?

Сообщение Kitonum » Вт янв 15, 2013 2:32 pm

Артём-Артём писал(а):В программе Математика решаю интеграл, а результат получаю в виде
1. - 1. Cos[1. а b]
Подскажите пожалуйста: как следует понимать точку после единицы, особенно косинус от [1. а b]

Приведите весь код в Mathematica, тогда можно будет попробовать понять, что всё это значит.

Артём-Артём
Сообщения: 12
Зарегистрирован: Пт апр 16, 2010 12:45 pm

Что означает точка после единицы?

Сообщение Артём-Артём » Вт янв 15, 2013 11:24 pm

Расчёт интеграла функции Cos[bx-0.5ba]ⅆx
Отрезок интегрирования от 0 до а .
Файл в "Математика" прилагается.

Kitonum
Сообщения: 2084
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: Что означает точка после единицы?

Сообщение Kitonum » Ср янв 16, 2013 11:06 am

Артём-Артём писал(а):Расчёт интеграла функции Cos[bx-0.5ba]ⅆx
Отрезок интегрирования от 0 до а .
Файл в "Математика" прилагается.

Mathematica всё подсчитала верно! Дело в том, что числа, записанные с десятичной точкой, т.е. в формате float, в матпакетах Mathematica, Maple и, видимо, ряде других, воспринимаются не как точные константы, а как приближённые. Например, x=1. означает некоторое число, округлённое до одной значащей цифры, т.е. фактически x может принимать любое значение из диапазона 1/2<x<3/2 .
Если Вы свой множитель 0.5 в подынтегральном выражении считаете точной константой, равной 1/2 , то так и пишите:

Integrate[Cos[b*x - b*a/2], {x, 0, a}]

Вообще, начинающим я всегда рекомендую начинать изучение матпакетов не с Mathematica, а с Maple. Почитайте
http://www.mathforum.ru/forum/read/1/59137/

Артём-Артём
Сообщения: 12
Зарегистрирован: Пт апр 16, 2010 12:45 pm

Что означает точка после единицы?

Сообщение Артём-Артём » Ср янв 16, 2013 3:33 pm

Большое спасибо за разъяснения и совет.

Markiyan Hirnyk
Сообщения: 1366
Зарегистрирован: Вс дек 04, 2011 11:07 pm

Это не так

Сообщение Markiyan Hirnyk » Чт янв 17, 2013 9:47 pm

Kitonum писал(а):Дело в том, что числа, записанные с десятичной точкой, т.е. в формате float, в матпакетах Mathematica, Maple и, видимо, ряде других, воспринимаются не как точные константы, а как приближённые. Например, x=1. означает некоторое число, округлённое до одной значащей цифры, т.е. фактически x может принимать любое значение из диапазона 1/2<x<3/2 .
Это не так. Ваши слова не соответствуют действительности:
In[2]:=RealDigits[1.]
Out[2]={{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 1}
См. справку по RealDigits в Mathematica.

Kitonum
Сообщения: 2084
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: Это не так

Сообщение Kitonum » Пт янв 18, 2013 10:34 am

Markiyan Hirnyk писал(а):
Kitonum писал(а):Дело в том, что числа, записанные с десятичной точкой, т.е. в формате float, в матпакетах Mathematica, Maple и, видимо, ряде других, воспринимаются не как точные константы, а как приближённые. Например, x=1. означает некоторое число, округлённое до одной значащей цифры, т.е. фактически x может принимать любое значение из диапазона 1/2<x<3/2 .
Это не так. Ваши слова не соответствуют действительности:
In[2]:=RealDigits[1.]
Out[2]={{1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 1}
См. справку по RealDigits в Mathematica.

Спасибо за подмеченную неточность! Мне почему-то казалось, что при действиях с приближёнными числами (с десятичной точкой) Mathematica пользуется обычными, известными ещё из школы, правилами действий. На самом деле, по умолчанию Mathematica числа с десятичной точкой трактует , заданными с машинной точностью (MachinePrecision - примерно 16 значащих цифр). Но если пользователь хочет ограничить число значащих цифр, предполагая, например, что x=1. означает что 1/2<x<3/2 , то это также легко сделать:

{1. + 1.2, SetPrecision[1. + 1.2, 1]}

{2.2, 2.}