나는 Simpson의 규칙에 함수를 작성하여 복제하려고합니다. 그러나 MatLab에서 문자열을 실제 함수로 변환하는 데 eval을 사용하는 방법이 아직 명확하지 않습니다.Simpson의 규칙, eval과의 오류를 복제하십시오.
기능은 다음과 같습니다
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를 전달할 수있다?
감사하지만 내 질문에 대답하지 않았다. 함수 핸들을 사용하는 법을 알고 있습니다. eval()을 사용하여이 문제를 해결하도록 요청 받았습니다. – user2431438