%习题7.10 使用割线法求解方程
%参数为要求的精度
%返回值s为函数要求的解
function s=Secant_method(jingdu)
%给一开始的迭代点赋值
% x(k-1)前前点
qqd=0;
% x(k) 当前点
dq =1
% x(k+1) 新的迭代点
new_Iteration=0;
N=0;
%开始迭代
%
while 1
%打印迭代次数
N=N+1;
new_Iteration=(g(dq)*qqd-g(qqd)*dq)/(g(dq)-g(qqd));
%相对停止规则的计算
if abs(new_Iteration-dq) < abs(dq)*jingdu
fprintf('迭代次数:%d\n ',N)
fprintf('满足要求的值:%07.5f\n ',new_Iteration)
fprintf('已达到精度要求退出循环' )
break
end
%获得新的前前点和当前点
qqd=dq;
dq=new_Iteration;
end
end
%题目要求的函数写在这
%精度是10^-5
function g=g(x)
g = (2*x-1)^2+4*(4-1024*x)^4;
end