Можно ли интегрировать по векторному произведению? Например:
integral(@(x) [x,1]*[x;1],0,1)
integral(@(x) dot([x;1],[x,1]),0,1)
Можно ли интегрировать по векторному произведению? Например:
integral(@(x) [x,1]*[x;1],0,1)
integral(@(x) dot([x;1],[x,1]),0,1)
Проблема в том, как Matlab вызывает вашу функцию. Внутри вызывается что-то вроде fkt(0:.1:1), что невозможно с вашей функцией. Вы можете обернуть свою функцию в arrayfun, чтобы получить интеграл:
fkt=@(x) dot([x;1],[x,1])
afkt=@(a)arrayfun(fkt,a)
integral(afkt,0,1)
В то время как fkt и afkt возвращают одно и то же для скаляра (например, fkt(.3)
afkt(.3)
), функция afkt
может обрабатывать векторные входные данные, такие как afkt(0:.1:1)
, чтобы получить несколько значений одновременно.