3
Мне нужно написать алгоритм неподвижную точку итерации, и это в основном закодированы, но я бегу в эту ошибку:Неопределенная функция или переменная Matlab
Неопределенная функция или переменная «г».
Я хочу определить g как g (x) = 1/2 * (1 + 5/x). Тем не менее, я - matlab n00b и не знаю, как это сделать. Любая помощь будет высоко оценена, спасибо.
function [y,k] = fixedpoint(g,p0,tol,max1)
for k=1:max1
p = g(p0);
err = abs(p-p0);
abserr = abs(sqrt(5)-p);
ratioerr = abserr/(abs(sqrt(5)-p0));
if (err<tol)
break
end
p0 = p;
end
if (k==max1)
disp('The algorithm did not converge')
end
y = p;
Вы также можете передать дескриптор функции M файла пропускания @funcname , – chappjc
Будьте VEWY, VEWY внимательно следите за этим советом. Обратите внимание, что код P0W показывает использование/not ./ so, если он вызван с вводом вектора или массива, это приведет к совершенно неожиданным результатам. Тогда вы следующий мучительный вопрос будет спрашивать, почему ваш код не работает. Намного лучше использовать технологию ./ на таких вещах, даже если вы обычно ожидаете передать ее скалярный ввод, потому что в один прекрасный день вы этого не сделаете. –