Ошибка в RealDomain:-solve

Форум пользователей пакета Maple

Модератор: Admin

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

Ошибка в RealDomain:-solve

Сообщение Markiyan Hirnyk » Чт дек 06, 2018 8:11 pm

Ярким примером халтуры Мэйплсофта является пакет RealDomain. В частности, команда solve указанного пакета не документирована вообще: пользователя отсылают к обычной команде solve. Один из результатов налицо.

Код: Выделить всё

with(RealDomain):ыolve(log[x](sqrt(x^2+2*x-3)+2)*log[5](x^2+2*x-2) = log[x](4), x);
-1-sqrt(3+exp(RootOf(-625^(ln(2)/_Z)+4*25^(ln(2)/_Z)+exp(_Z)-5, 1.609437912))), -1+sqrt(3+exp(RootOf(-625^(ln(2)/_Z)+4*25^(ln(2)/_Z)+exp(_Z)-5, 1.609437912)))
evalf(%);
                   -3.828427124, 1.828427124

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

Re: Ошибка в RealDomain:-solve

Сообщение Markiyan Hirnyk » Чт дек 06, 2018 9:20 pm

Та же ошибка в

Код: Выделить всё

restart; Student[Calculus1]:-Roots(log[x](sqrt(x^2+2*x-3)+2)*log[5](x^2+2*x-2) = log[x](4));
Warning, some roots are returned as numeric approximations
                  [-3.828427124, 1.828427125]

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

Re: Ошибка в RealDomain:-solve

Сообщение Markiyan Hirnyk » Вс дек 09, 2018 4:07 pm

Еще одна жемчужина в короне:

Код: Выделить всё

with(RealDomain):
solve((x^2-4)*sqrt(x+1) = 0, x);
                           -1, 2, -2

NikitaTsybin
Сообщения: 17
Зарегистрирован: Чт ноя 22, 2018 2:10 pm

Re: Ошибка в RealDomain:-solve

Сообщение NikitaTsybin » Пн дек 10, 2018 3:57 pm

Код: Выделить всё

eq := proc (x) options operator, arrow; x^2*sqrt(x+1)-4*sqrt(x+1) end proc
eq1 := proc (x) options operator, arrow; (x^2-4)*sqrt(x+1) end proc
eq(-1), eq1(-1), eq(2), eq1(2), eq(-2), eq1(-2)
0, 0, 0, 0, 0, 0
with(RealDomain)
eq(-1), eq1(-1), eq(2), eq1(2), eq(-2), eq1(-2)
0, 0, 0, 0, undefined, undefined

т.е. 0*I=undefined???? Действительно, странно..

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

Re: Ошибка в RealDomain:-solve

Сообщение Markiyan Hirnyk » Пн дек 10, 2018 5:04 pm

NikitaTsybin, Вы пишите
т.е. 0*I=undefined???? Действительно, странно..
Подробно объясняю, почему результат

Код: Выделить всё

with(RealDomain):
solve((x^2-4)*sqrt(x+1) = 0, x);
                           -1, 2, -2
                           

ошибочный. Областью определения функции (x^2-4)*sqrt(x+1) , рассматриваемой на множестве действительных чисел, согласно общепринятым соглашениям, является луч {x: x >= -1} . Число -2 ему не принадлежит и корнем рассматриваемого уравнения над полем действительных чисел не является. Это задача 2.3.1 из "3000 конкурсных задач по математике.-5-е изд., испр.-М.:Айрис- Пресс, 2003.- 624 с. илл". Задача предлагалась на вступительных экзаменах на мех-мат Московского государственного университета.

NikitaTsybin
Сообщения: 17
Зарегистрирован: Чт ноя 22, 2018 2:10 pm

Re: Ошибка в RealDomain:-solve

Сообщение NikitaTsybin » Пн дек 10, 2018 5:23 pm

Markiyan Hirnyk, Да, я с Вами совершенно согласен. В этом и странность, что с RealDomain фунциия над полем действительных чисел не существует в точке -2 (равна 0*I), однако данный корень находится командой solve.

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

Re: Ошибка в RealDomain:-solve

Сообщение Markiyan Hirnyk » Пн дек 10, 2018 5:38 pm

NikitaTsybin, пожалуйста, впредь формулируйте ваши отзывы точно и аккуратно. Без ваших разъяснений ваш коментарий
т.е. 0*I=undefined???? Действительно, странно..

мне был непонятен.

NikitaTsybin
Сообщения: 17
Зарегистрирован: Чт ноя 22, 2018 2:10 pm

Re: Ошибка в RealDomain:-solve

Сообщение NikitaTsybin » Ср дек 12, 2018 11:44 pm

Markiyan Hirnyk, Спасибо за замечание! Буду стараться!

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

Re: Ошибка в RealDomain:-solve

Сообщение Markiyan Hirnyk » Чт дек 20, 2018 7:44 pm

Очередная ошибка:

Код: Выделить всё

with(RealDomain): solve(log[1-2*cos(x)](cos(2*x)+sin(x)+2) = 0, [x]);
[[x = -arctan((-1+sqrt(17))/sqrt(-2+2*sqrt(17)))], [x = arctan((-1+sqrt(17))/sqrt(-2+2*sqrt(17)))-Pi]]
evalf(%);
           [[x = -0.8959074809], [x = -2.245685173]]
           
evalf(eval(1-2*cos(x), x = -arctan((-1+sqrt(17))/sqrt(-2+2*sqrt(17)))));
-.249621068
, т.е. основание логарифма - отрицательное число. Та же ошибка в

Код: Выделить всё

restart; Student[Calculus1]:-Roots(log[1-2*cos(x)](cos(2*x)+sin(x)+2), x = -Pi .. Pi);
[-Pi+arctan((1/2)*sqrt(-2+2*sqrt(17))), -arctan((1/2)*sqrt(-2+2*sqrt(17)))]