作者celestialgod (攸蓝)
看板MATLAB
标题Re: [问提] 新手一问
时间Mon Apr 14 15:34:13 2014
你应该是要写下面的演算法,我用Newton's做的
你自行再改成你要的...
%% fixed_point.m
function [x,ea] = fixed_point(g, x0, es, N)
x = zeros(N, 1);
ea = zeros(N, 1);
i = 1;
x(i) = x0;
i = i + 1;
x(i) = g(x(i-1));
ea(i) = abs((x(i)-x(i-1))/x(i))*100;
while ea(i) > es
i = i + 1;
gprime = (g(x(i-1)+1e-6) - g(x(i-1)))/1e-6;
x(i) = x(i-1)- g(x(i-1))/gprime;
ea(i) = abs((x(i)-x(i-1))/x(i));
if i >= N
break;
end
end
x = x(1:i);
ea = ea(1:i);
end
%% Run.m
g= @(x) cos(x)-x^3;
x0=5;
es=1e-10;
N=100;
[x,ea] = fixed_point(g, x0, es, N);
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.116.152.221
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/MATLAB/M.1397460856.A.C34.html
1F:推 XINGUAN:谢谢大大,虽然我还是没搞懂我错在哪QQ 04/15 01:10