matlab求方程实根,简单迭代法求方程根的MATLAB程序

function [x_reality,n_reality] = Simple_stepit( f_name,x_start,tolerance,n_limit)

%%

% 简单迭代法(也叫不动点迭代法)求解方程f_name = 0根的MATLAB实现

% f_name为迭代函数

% x_start为开始迭代的初始坐标

% tolerance为函数迭代的精度要求

% n_limit为函数的最大迭代次数

%%

% x_reality为最终迭代结果

% n_reality为最后的迭代次数

%%

format long; % 计算结果保留到小数点后14位

fprintf('简单迭代法求方程: %s = 0 的近似根\n',f_name);

n_reality = 1;

fprintf(' n x_start f(x_start)\n');

x_reality = feval(f_name,x_start); % 求方程f_name在x_start处的值,也是初次迭代

fprintf('%3.0f,%14.14f,%14.14f\n',n_reality,x_start,x_reality);

%%

while 1

if(abs(x_reality - x_start) <= tolerance) % 如果满足精度要求,输出结果,跳出while循环

fprintf('在精度不超过%.14f的条件下,方程:%s = 0 的根为 %.14f\n迭代次数为:%d\n',...

tolerance,f_name,x_reality,n_reality);

break;

elseif(n_reality > n_limit) % 如果迭代次数超过限制,输出提示语,结束循环

disp('迭代次数超界');

break;

else

n_reality = n_reality + 1; % 迭代次数加1

x_start = x_reality; % 把上一次迭代的结果赋给x_start

x_reality = feval(f_name,x_start); % 继续下一次迭代

fprintf('%3.0f,%14.14f,%14.14f\n',n_reality,x_start,x_reality);

end

end

disp('简单迭代法结束');

end

%%

% 简单迭代法的优点:

% 1.方法简单,易于在计算机上实现

% 2.迭代公式不唯一

% 简单迭代法的缺点

% 1.要求迭代序列收敛

% 2.选取迭代函数,使迭代过程收敛较麻烦

%%

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值