Дефект в команде Solve

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

Модератор: Admin

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

Дефект в команде Solve

Сообщение Markiyan Hirnyk » Вс окт 14, 2018 10:16 am

Просьба сообщить в Мэйплсофт о следующем изъяне

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

with(RealDomain): sol :=solve(x^2-a = abs(x-b), [x]) ;
eval(sol, [a = -2, b = 3]);
                               []
solve(eval(x^2-a = abs(x-b), [a = -2, b = 3]), [x]);
[[x = -1/2-(1/2)*sqrt(5)], [x = -1/2+(1/2)*sqrt(5)]]

Я не имею возможности сделать это лично.

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

Re: Дефект в команде Solve

Сообщение Markiyan Hirnyk » Пн окт 15, 2018 10:39 am

Еще один ляпсус

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

taylor(Dirac(x), x, 3)
Dirac(0)+Dirac(1, 0)*x+(1/2)*Dirac(2, 0)*x^2+O(x^3)

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

Re: Дефект в команде Solve

Сообщение Markiyan Hirnyk » Вт окт 23, 2018 10:19 pm

Еще один промах:

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

with(RealDomain):
solve({log[x+5](-2*y+23)+log[y-10](2*x+9) = 2, log[x+5](y^2-20*y+100)+log[y-10](x^2+10*x+25) = 4});
{x = -4, y = 11}, {x = -22/5, y = 53/5}
 

Первое решение ложно. Отмечу, что ММА вообще не решает эту систему.

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

Re: Дефект в команде Solve

Сообщение Markiyan Hirnyk » Чт окт 25, 2018 10:39 pm

Еще один дефект.

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

series(log(factorial(n))/n, n = infinity, 1);
                              O(1)
MultiSeries:-series(log(factorial(n))/n, n = infinity, 1);
ln(n)-1+O(ln(n)/n)

Все, конец математики: 2 + 2 = 5 и 2 + 2 = 4.

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

Re: Дефект в команде Solve

Сообщение Markiyan Hirnyk » Чт окт 25, 2018 11:49 pm

Результат команды

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

plots:-implicitplot([log[x+5](y^2-20*y+100)+log[y-10](x^2+10*x+25) = 4, log[x+5](-2*y+23)+log[y-10](2*x+9) = 2], x = -9/2 .. -3, y = 10 .. 23/2, color = [red, blue], gridrefine = 3, style = [point, line]);

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

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

Re: Дефект в команде Solve

Сообщение Markiyan Hirnyk » Вс дек 30, 2018 1:08 pm

Мэйпл порой не внимателен к строгим неравенствам. Вот очередной пример

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

solve(arcsin(5*arccos(x)/(2*Pi)) > arccos(10*arcsin(x)/(3*Pi)), x);
RealRange(cos(2*Pi*(1/5)), sin(3*Pi*(1/10)))

В действительности из отрезка надо изъять точку

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

eval(arcsin(5*arccos(x)/(2*Pi))-arccos(10*arcsin(x)/(3*Pi)), x = sin(9*Pi*(1/50))):
arcsin(4/5)-arccos(3/5)
simplify(%);
                               0
plot(arcsin(5*arccos(x)/(2*Pi))-arccos(10*arcsin(x)/(3*Pi)), x = -1 .. 1);

Математика дает правильный ответ в этом примере.

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

Re: Дефект в команде Solve

Сообщение Markiyan Hirnyk » Пн фев 04, 2019 12:43 am

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

restart; solve({x >= -Pi, 2*cos(2*x)/(6-3*cos(3*x)) = (cos(2*x)+1)/(cos(3*x)+2), x <= Pi}, x);
Error, (in type/algext) too many levels of recursion

Имеется обход

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

Student[Calculus1]:-Roots(2*cos(2*x)/(6-3*cos(3*x)) = (cos(2*x)+1)/(cos(3*x)+2), x = -Pi .. Pi);
                              [0]

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

Re: Дефект в команде Solve

Сообщение Markiyan Hirnyk » Чт фев 07, 2019 10:52 am

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

restart; solve(S1^2*w1^2+S2^2*w2^2+S3^2*w3^2+2*S12*w1*w2+2*S13*w1*w3+2*S23*w2*w3 = SG^2, S1P*w1+S2P*w2+S3P*w3 = SGP, w1*ws1+w2*ws2+w3*ws3 = 1, {w1, w2, w3});
Error, invalid input: too many and/or wrong type of arguments passed to solve; first unused argument is S1P*w1+S2P*w2+S3P*w3 = SGP

Некачественное программирование.

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

Re: Дефект в команде Solve

Сообщение Kitonum » Чт фев 07, 2019 11:07 am

Нужно просто поставить соответствующие скобки вокруг системы и всё заработает:
restart;
solve({S1^2*w1^2+S2^2*w2^2+S3^2*w3^2+2*S12*w1*w2+2*S13*w1*w3+2*S23*w2*w3 = SG^2, S1P*w1+S2P*w2+S3P*w3 = SGP, w1*ws1+w2*ws2+w3*ws3 = 1}, {w1, w2, w3}, explicit);

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

Re: Дефект в команде Solve

Сообщение Markiyan Hirnyk » Чт фев 07, 2019 11:12 am

Kitonum, Спасибо. Виноват, не доглядел.

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

Re: Дефект в команде Solve

Сообщение Markiyan Hirnyk » Сб фев 16, 2019 11:27 am

Еще ошибка и в RealDomain:-solve и в Roots:

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

restart; with(RealDomain): solve(log(x*(x+9)) = log(x/(x+9)), x);
-8, -10
restart; Student[Calculus1]:-Roots(log(x*(x+9)) = log(x/(x+9)));
                           [-10, -8]


Понятно, что -8 -- сторонний корень. Как видим, мэйплсофтовская математика отличается от традиционной математики.