Вопрос про символьное интегрирование в Матлабе..

ivirkrip

Предистория вопроса.
Проинтегрировать символьно очень простую функцию на интервале от a до b в Матлабе.
для этого пишем.
syms f x a b
F=int(f,x,a,b);
ответом будет
F = f*(b-a)
если сделать f(a)=x^2 то матлаб выдаёт решение. 1/3*b^3-1/3*a^3 всё круто и все счастливы..
А вот если надо приоинтегрировать дельта функцию, на интервале [a b] то матлаб это тоже делает, только в решение всегда запихивает функцию Хевисайда ( heaviside(x) has the value 0 for x
< 0, 1 for x > 0, and NaN for x
== 0.
чтобы при перевороте интервала интегрирования решение не утеряло знак.
т.е.
syms A x a b
F=int( A * dirac( x-(a+b)/2 x, a, b );
F = A *heaviside(-1/2*a+1/2*b) - A *heaviside(1/2*a-1/2*b) => при а=1 и b=2 имеем F = A при а=2 и b=1 имеем F = -A
ВОПРОС. Как сделать так, чтобы матлаб понял, что b больше, чем a и интегрировал спкойно без Хевисайда..

ivirkrip

Господа, идей что вообще нет?

Maurog

нет

leqasa

А тебе обязательно в матлабе? Mathematica не подойдет?

Vladu

syms a A x real
syms delta positive
b = a + delta
F=int(A*dirac(x-(a+b)/2 x, a, b)

ivirkrip

code:syms a A x real
syms delta positive
b = a + delta
F=int(A*dirac(x-(a+b)/2 x, a, b)
syms delta positive - это просто супер строка!
ААААА Мыжик ты просто гений!
 работает!

tipnote

Вообще, если не ошибаюсь, то вся "символика" в матлабе на основе какого-то из младших ядер мапл, а потому, иногда имеет смысл искать по маплу. Хотя мб у меня устаревшие сведения...
Оставить комментарий
Имя или ник:
Комментарий: