関数を作成して、シンプソンの法則を再現しようとしています。ただし、 eval を使用して文字列を MatLab の実際の関数に変換する方法はまだ明確ではありません。
機能は次のとおりです。
function result = simpson(fun, x0, xn, n)
f = eval(fun);
h = (xn-x0)/2;
xstart = f(x0) + f(xn);
x1 = 0;
x2 = 0;
for i = 1:n-1
x = x0 + h*i;
if (mod(i,2) == 0)
x2 = x2 + f(x);
else
x1 = x1 + f(x);
end
end
result = h*(xstart + 2*x2 + 4*x1)/3;
報告されたエラーは
Error using eval
Undefined function or variable 'x'
関数の文字列形式に x を渡すにはどうすればよいですか?