【源码】迭代法求根的matlab算法
【源码】迭代法求根的matlab算法
本篇是在课程学习中自己编程实现的迭代法计算非线性方程或者超越方程近似根的算法,写一下,后边便于复习和期末课程设计引用。
% 迭代法求根的matlab算法
function [X_k,x0,counter]=interation(a,err,f_x)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%输入参数a为迭代初值 %
%输入参数err为误差精度 %
%输入参数f_x为迭代函数,即满足x=f_x(x)的函数 %
%输出参数X_k为迭代序列 %
%输出参数x0为满足精度要求的根 %
%输出参数counter为迭代的次数 %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
counter=0;%计数器初始化
X_k=(0);%序列初始化
while(sign(f_x(a))==0)%如果a的函数值为0停止迭代输出x0为a的值,迭代次数为0
x0=a;
X_k(1)=a;
counter=0;
return;
end
while(sign(f_x(a))~=0&&abs(f_x(a)-a)>=err)%a的函数不为零且不满足误差精度进行迭代
X_k(1)=a;%将a赋给序列第一个值
a=f_x(a);%迭代
counter=counter+1;%每迭代一次计数器加一
X_k(