Вход/Регистрация
Maple 9.5/10 в математике, физике и образовании
вернуться

Дьяконов Владимир Павлович

Шрифт:
∫ p(x)exdx,

где р(х) — выражение, представляющее полином.

Вначале подготовим процедуру IntExpMonomialR, реализующую вычисление уже рассмотренного ранее интеграла, но рекурсивным способом (файл р9):

> IntExpMonomialR:=proc(n::nonnegint,х::name)

local i;

if n=0 then RETURN(exp(x)) fi;

х^n*ехр(x)-n*IntExpMonomialR(n-1, x);

end;

 IntExpMonomialR: = proc(n::nonneg int, x::name)

 local i;

if n = 0 then RETURN(exp(x)) end if;

x^n × exp(x) -n × IntExpMonomialR(n - 1, x)

 end proc

Проверим ее в работе:

> IntExpMonomialR(4, х);

x4еx– 4x3еx + 12x2ex– 24хеx + 24 еx

> collect(%,exp(х));

(х4– 4х3 + 12x2– 24x + 24) еx

Теперь составим процедуру для вычисления по частям нашего интеграла:

> IntExpPolynomial:=proc(р::polynom,x::name) local i, result;

### WARNING: degree(0,x) now returns -infinity

result:=add(coeff(p,x,i)*IntExpMonomialR(i,x),i=0..degree(p, x));

collect(result,exp(x));

end;

 IntExpPolynomial: = proc(p::polynom, x::name)

 local i, result;

result:= add(coeff(p, x, i) × IntExpMonomialR(i, x), i = 0..degree(p, x)); collect(result, exp(x))

 end proc

В этой процедуре имеется обращение к ранее составленной процедуре IntExpMonomialR. Обратите внимание на то, что в процедуре введено предупреждение об определенных проблемах, связанных с использованием функции degree (сообщение начинается с символов ###). Тем не менее, процедура работает, в чем убеждают, по крайней мере, следующие примеры:

> р:=(х^2+1)*(1-3*х);

р := (х² + 1)(1 - 3х)

> expand(р);

х² - 3х³ + 1 - 3x

> int(р*ехр(х),х);

– ех(-24 + 23х - 10х² + 3х³)

> IntExpPolynomial(р,х);

(24 - 23х + 10х² - 3х³)еx

> IntExpPolynomial(р,х);

(24 - 23х + 10х² - 3х³)еx

10.7. Дополнительные возможности Maple-языка

10.7.1. Переназначение определений

В большинстве случаев Maple-язык использует достаточно длинные идентификаторы для своих определений, например функций. Однако с помощью функции alias можно изменить любое определение на другое, если оно кажется пользователю более удобным. Функция alias записывается в виде

alias(e1, е2, ..., eN)

где е1, е2, …, eN — ноль или более равенств.

Эта функция возвращает список переназначений и осуществляет сами переназначения. Например, для замены имени функции BesselJ на более короткое имя BJ достаточно параметром функции alias записать BJ=BesselJ:

> alias(ВJ=BesselJ);

BJ, Fx

> [BJ(0,1.),BesselJ(0,1.)];

[.7651976866, .7651976866]

Можно также переназначить функцию пользователя:

> alias(Fx=F(x));

BJ, Fx

> diff(F(x),x);

> int(F(x),x=a..b);

Для отмены переназначения, например BJ, используется та же функция alias с повтором переназначения:

  • Читать дальше
  • 1
  • ...
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: