>> trapapadbl(0,1,0.1,0,1,0.1,@sin)
??? Undefined function or variable "y".
Error in ==> trapapadbl at 12
y= y + feval(g,i);
Не слишком усердно пытаясь понять ваш код (!), Ошибка в том, что y
никогда не инициализировался. Вы не можете ничего добавить к y
, пока оно не будет иметь значения. Когда я инициализирую y
в 0, код запускается, но я получаю 0
в качестве вывода, чего не происходит, когда вы интегрируете sin
от 0 до 1. Возможно, я вызываю функцию неправильно, но это что-то высматривать!
Кроме того, ваш код сбивает с толку, потому что вы используете переменную g
как двойное число (число) и функцию, даже в одной строке! Та же проблема возникает, когда y
является вводом для вашей анонимной функции, но также удваивается позже. Это синтаксически правильно, но немного сложно для чтения. Попробуйте использовать другое имя переменной или включить четкие комментарии (или оба!)