LINUX.ORG.RU

maxima чудит


0

0

Нужно получить граффик следующей функции:

W(x):=1/(%pi*sqrt(2*%pi*P))*integrate(exp(-(x-U*cos(phi))^2/(2*P)), phi, 0, %pi);

При попытке этот граффик нарисовать, maxima выдаёт

Exponent out of range

#0: W(x=x)

U и P - действительные положительные константы

Как не извращался всёравно на выходе ошибка, причём MathCad рисует и не заикается. Может это баг какой?

★★★★

1. ну для начала посчитайте integrate(exp(-(x-U*cos(phi))^2/(2*P)), phi, 0, %pi) - максима не может посчитать этот интеграл. соответственно не может и построить график

2. gnuplot(с помощью которого строит графики maxima) не умеет работать с произвольными константами

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

>2. gnuplot(с помощью которого строит графики maxima) не умеет работать с произвольными константами

А где здесь произвольные константы?

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

догадка в W(x) откладывается вычисление интегралла => определи W(x) так: W(x):=''(1/(%pi*sqrt(2*%pi*P))*integrate(exp(-(x-U*cos(phi))^2/(2*P)), phi, 0, %pi));

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

>W(x):=''(1/(%pi*sqrt(2*%pi*P))*integrate(exp(-(x-U*cos(phi))^2/(2*P)), phi, 0, %pi));

Exponent out of range

Maxima таже так говорит если попробовать посчитат исходную функцию не от нуля

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

я только что попробовал вычислить ваш интеграл в аксиоме, могу вас растроить, скорее всего он не берется

т.к. exp(cos(x)) - тоже не берется, в настоящее время это проблема для символьной арифметики (в гугле есть пару статей на эту тему)

выриант решения проблемы: либо использовать численное дифференцирование (не знаю как это сделать стандартными методами в максиме, но реализуется ручками не так долго), либо числодробилку на подобии октэйва

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

В MathCad'е интеграл из исходной фукции также не берётся, но график выводит. По какому принципу там это делается?

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

Я так понял максима пытается вычислить интеграл символьно, но можно ли тогда как нибудь сделать это численно?

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

я же вам написал:

>выриант решения проблемы: либо использовать численное дифференцирование (не знаю как это сделать стандартными методами в максиме, но реализуется ручками не так долго), либо числодробилку на подобии октэйва

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