用弦割法解x+sinx=1,精度要求为10^-4,取初值xo=0,x1=1. 要C程序的代码 5
1个回答
展开全部
% 运行方法
% SecantV1a(0.5,0.6,0.0001)
function x=SecantV1a(x0,x1,eps)
% 用弦截法求方程xe^x-1 的一个实根,
% 初始值x0、x1分别取0.5和10.6,
% 精度要求为 0.0001
% 弦截法迭代公式:x=x1-(x1-x0)*f(x1)/(f(x1)-f(x0))
i=0; %迭代此处记数
%x0=0.5; %迭代初值1
%x1=0.6; %迭代初值2
%eps=0.0001; %迭代精度
while i<=100;
x=x1-(x1-x0)*f(x1)/(f(x1)-f(x0)); %弦截法迭代公式
[x f(x)]
if abs(x0-x1)<eps; %收敛判据
break;
else
if f(x)*f(x0)>0
x0=x;
else
x1=x;
end
end
i=i+1;
end
fprintf('迭代次数i=%d\n',i)%输出结果
fprintf('x=%d\ny=%d\n',x,f(x))%输出结果
function y=f(x)
y=x*exp(x)-1;
% SecantV1a(0.5,0.6,0.0001)
function x=SecantV1a(x0,x1,eps)
% 用弦截法求方程xe^x-1 的一个实根,
% 初始值x0、x1分别取0.5和10.6,
% 精度要求为 0.0001
% 弦截法迭代公式:x=x1-(x1-x0)*f(x1)/(f(x1)-f(x0))
i=0; %迭代此处记数
%x0=0.5; %迭代初值1
%x1=0.6; %迭代初值2
%eps=0.0001; %迭代精度
while i<=100;
x=x1-(x1-x0)*f(x1)/(f(x1)-f(x0)); %弦截法迭代公式
[x f(x)]
if abs(x0-x1)<eps; %收敛判据
break;
else
if f(x)*f(x0)>0
x0=x;
else
x1=x;
end
end
i=i+1;
end
fprintf('迭代次数i=%d\n',i)%输出结果
fprintf('x=%d\ny=%d\n',x,f(x))%输出结果
function y=f(x)
y=x*exp(x)-1;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询