Построение кусочно-символьной функции в Matlab

Я пытаюсь сгенерировать кусочно-символьную функцию в Matlab. Причина, по которой он должен быть символическим, заключается в том, что я хочу иметь возможность интегрировать / дифференцировать функцию после этого и / или вставлять фактические значения. У меня есть следующая функция:

x^3/6   ->   0 < x <= 1
(1/6)*(-3*x^3+12*x^2-12x+4)   ->   1 < x <= 2
(1/6)*(3*x^3-24*x^2+60x-44)   ->   2 < x <= 3
(1/6)*(4-x)^3   ->   3 < x <= 4
0   ->   otherwise

Например, я хочу поместить эту функцию в переменную (скажем, f), а затем вызвать

int(diff(f, 1)^2, x, 0, 4) % numbers could be different

и получить (скалярный) результат 2/3.

Я пробовал разные вещи , включая функцию кусочно () и символические сравнения, но ничего не сработало ... не могли бы вы помочь? : -)

11
задан Maximilian Csuk 28 October 2010 в 08:00
поделиться