Как найти значение функции после интерполяции и дифференцирования в Maxima
Есть такой максима код
kill(all);load("interpol")$
q1:[[0,0.1], [0.25,0.2], [0.5,0.3], [0.75,0.4]];
f1(x):=''(cspline(q1));
qt1(x):=''(diff(f1(x),x,1));
Я хочу найти значение полученной функции qt1(x)
за x=1
, Тогда я пишу qt1(0.3);
и я получаю массаж
diff: variable must not be a number; found: 0.3
#0: qt1(x=0.3) (interpol.mac line 106)
-- an error. To debug this try: debugmode(true);
Что нужно сделать?
1 ответ
Решение
Максима не знает, как дифференцировать charfun2
, Вы можете научить этому.
load("interpol") $
q: [[0,0.1], [0.25,0.2], [0.5,-0.3], [0.75,1.4]] $
gradef(charfun2(x, A, B), 0) $
e: cspline(q) $
de: diff(e, 'x) $
define( f('x), e) $
define(df('x), de) $
draw2d(explicit(f('x), 'x, 0, 1), 'color='red, explicit(df('x), 'x, 0, 1)) $
Я изменил точки в `q'.