LINUX.ORG.RU

Maple 13 тупит (или я)


0

0


tau := Vector(8, [0 1 3 6 10 15 21 28]);

VV := Matrix(8,8,[[seq(exp(I*4*Pi*tau[k]*5.3/0.03,k=1..8)]$ m=1..8],shape=diagonal):

evalf(VV);

Выдает совершенно не правильный результат. Правда, иногда какими-то
манипуляциями (случайно) удается получить правильный. И вообще,
exp(X), где X - комплексная ф-ция, с увеличением дробных чисел в ней
начинает левизну выдавать...

Может кто сталкивался или попробует посчитать ?
Правильный ответ (ӕто главная диагональ):

1.00000 + 0.00000i
-0.50000 + 0.86603i
1.00000 - 0.00000i
1.00000 - 0.00000i
-0.50000 + 0.86603i
1.00000 - 0.00000i
1.00000 + 0.00000i
-0.50000 + 0.86603i


Ответ на: комментарий от provaton

> Юзай матлаб, если можешь.

Ну-ну-ну, юзаю и octave, но и символьные вычисления тож очень даже. Просто мне кажется, что в мапле я что-то с точностью вычислений не так делаю...

drZlo
() автор топика
Ответ на: комментарий от dimon555

Не надо путать матлаб с маткадом.

Матлаб -- выскоуровневый язык для численных рачетов.

Маткад -- чисто виндовая поделка все-в-одном: визуальный ввод формул, символьные и численные расчеты, построение графиков.

annoynimous ★★★★★
()
Ответ на: комментарий от annoynimous

Да, мне тоже кажется что димон что-то напутал.

provaton ★★★★★
()

1. у меня даже воод твой воспроизвести не удалось (9-й мэпл).

2. Для вычисления матриц надо использовать evalm, а для форсирования вычисления элементов map(evalf, _array_)

annoynimous ★★★★★
()

Не была закрыта скобка для экспоненты.

Вот так выдает ответ, совпадающий с желаемым:

tau := Vector(8, [0, 1, 3, 6, 10, 15, 21, 28]);
(добавлены запятые)

VV := Matrix(8,8,[[seq(exp(I*4*Pi*tau[k]*5.3/0.03),k=1..8)]$ m=1..8],shape=diagonal):
(добавлена закрывающая скобка после 0.03)

map(evalf, VV);
Matrix([[1.+0.*I, 0., 0., 0., 0., 0., 0., 0.], [0., -.5000004012+.8660251722*I, 0., 0., 0., 0., 0., 0.], [0., 0., 1.000000000+0.3896383345e-6*I, 0., 0., 0., 0., 0.], [0., 0., 0., 1.000000000-0.1220723331e-5*I, 0., 0., 0., 0.], [0., 0., 0., 0., -.5000040115+.8660230877*I, 0., 0., 0.], [0., 0., 0., 0., 0., 1.000000000+0.1948191672e-5*I, 0., 0.], [0., 0., 0., 0., 0., 0., .9999999999+0.1072746834e-4*I, 0.], [0., 0., 0., 0., 0., 0., 0., -.5000181604+.8660149186*I]])

annoynimous ★★★★★
()
Ответ на: комментарий от annoynimous

А вообще, следует не забывать о многозначности комплексной арифметики, в частности, аргумент экспоненты определен с точностью до 2*Pi*I

annoynimous ★★★★★
()
Ответ на: комментарий от provaton

http://en.wikipedia.org/wiki/Maple_(software)

Listed below are third party commercial products that no longer use the Maple engine:

* Versions of MathCad released between 1994 and 2006 included a Maple-derived algebra engine (MKM, aka Mathsoft Kernel Maple), though subsequent versions use MuPAD.
* Symbolic Math Toolbox in MATLAB contained a portion of the Maple 10 engine but now uses MuPAD.
* Older versions of the mathematical editor Scientific Workplace included Maple as a computational engine, though current versions include MuPAD.

теперь пишут, что MuPAD использует.
попробуй набрать в матлабе mhelp и maple, в книге
http://www.labirint-shop.ru/books/152657/

на стр 85 пишут, maple вызывается, если что, то меня обманули :)


dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

Maple 10!

А до этого было 9 других версий, которые использовались в MathCAD

annoynimous ★★★★★
()
Ответ на: комментарий от annoynimous

Сорри, скобка, конечно же есть.

Вот нашел только что:

Было так
Digits≔5
Не правильно считал.
Убрал - правильно.

Почему ? И как тогда глобально (на весь worksheet) задавать кол-во
знаков ?

drZlo
() автор топика
Ответ на: комментарий от drZlo

Хм, дело в точности оказывается. При 10 - все ОК.

drZlo
() автор топика
Ответ на: комментарий от drZlo

Просто переопределить переменную перед теми вычислениями, которые требуют более точных вычислений.

А вообще не могу понять, зачем считать с Digits==5, если это только не вычисление какого-нибудь плохо сходящегося интеграла

annoynimous ★★★★★
()
Ответ на: комментарий от annoynimous

Блин, ӕто я затупил ) Думал, что ӕто просто точность вывода, а не вычислений. Спасибо за помощь !

drZlo
() автор топика
Ответ на: комментарий от drZlo

Ясно. Как всегда, решение оказалось лежащим совсем в другой плоскости :-)

annoynimous ★★★★★
()
Ответ на: комментарий от drZlo

The Maple Digits environment variable controls the number of digits that Maple uses when calculating with software floating-point numbers.

Default value is 10

The value of Digits is changed by using the assignment operator. For example, Digits:= 20;

qnikst ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.