2012-06-20 3 views
0

У меня возникают проблемы с динамической командой в Mathematica, следующий код показывает интерактивную графику функции f (x) = 1 - x^2. Заголовок графика также показывает текущую область под кривой (определенный интеграл), которая изменяется с помощью ползунка.Динамика не работает должным образом

Manipulate[Show[Plot[1 - x^2, {x, 0, 1}, PlotLabel -> Integrate[1 - x^2, {x, 0, Limite - 0.000000000001}]], 
Plot[-x^2 + 1, {x, 0, Limite}, PlotRange -> {0, 1}, Filling -> Axis] ], {Limite, 0.000000000001, 1}, LocalizeVariables -> False] 

Я хотел бы показать текущую область, используя следующую команду:

Integrate[1 - x^2, {x, 0, Dynamic[Limite]}] 

но результат не то, что я ожидал. Mathematica оценивает это как 0.529 - (0.529)^3/3 , который является правильным, но я не понимаю, почему он отображает выражение вместо одного числа. Команды //FullSimplify и //N просто не решают проблему.

Есть ли лучший способ получить результат?

Правильно ли я использую динамическую команду?

Спасибо!

+0

Код с 'Manipulate' показывает номер в моей системе. –

+0

Работает для меня с mma 8.0.1 и win7. – Ajasja

+0

Это работает, проблема заключается в различии между форматом заголовков графического изображения (например, 0.6667) и интегратом [1 - x^2, {x, 0, Dynamic [Limite]}] (0.529 - (0.529)^3/3) – Gotenks

ответ

1

В вашем примере команда Integrate выполняется один раз с символическим верхним пределом. Когда значение этого верхнего предела изменяется, интеграл не пересчитывается. Вы получите желаемый результат, если вы переместите обертку Dynamic [] из спецификации итератора и оберните ее вокруг команды Integrate, которая заставит интеграл быть пересчитанным всякий раз, когда Limite изменится.

Dynamic[Integrate[1 - x^2, {x, 0, Limite}]] 
+0

Он отлично работал !!, спасибо – Gotenks

Смежные вопросы