interpolation.m
来自「给出插值算子的算法」· M 代码 · 共 29 行
M
29 行
% function x3=interpolation(x1,x2)
% function varargout=interpolation(x1,x2)
clc
tic
nargout=3;
x1=0;x2=1;
k=0;
while k<=4 | (abs(fx3)>1e-6)
% while (abs(x2-x1)>1e-4) | (abs(fx3)>1e-6)
fx1=3*x1+sin(x1)-exp(x1);
fx2=3*x2+sin(x2)-exp(x2);
% fx1=x1^3+x1^2-3*x1-3;
% fx2=x2^3+x2^2-3*x2-3;
x3=x2-fx2*(x2-x1)/(fx2-fx1);
fx3=3*x3+sin(x3)-exp(x3);
% fx3=x3^3+x3^2-3*x3-3;
if fx1*fx3<0
x2=x3;
else
x1=x3;
end
k=k+1;
end
x3
k
fx3
toc
%若fx在[x1,x2]不连续,这方法可能得到错误的根
%一个严重的缺陷:根的趋近是单边的,假若在x1和x之间已曲率的话,可能影响到趋近的速度
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?