function root=QBS(f,a,b,x,eps)
format long;
if(nargin==4)
eps=1.0e-6;
end
fa=subs(sym(f),findsym(sym(f)),a);
fb=subs(sym(f),findsym(sym(f)),b);
fx=subs(sym(f),findsym(sym(f)),x);
if(fa==0)
root=a;
return;
end
if(fb==0)
root=b;
return;
end
if(fx == 0)
root = x;
return;
else
tol=1;
t=zeros(3);
t(1)=a;
t(2)=x;
t(3)=b;
while(tol>eps)
f1=subs(sym(f),findsym(sym(f)),t(1)); %计算三点的函数值
f2=subs(sym(f),findsym(sym(f)),t(2));
f3=subs(sym(f),findsym(sym(f)),t(3));
d1=f2-f1;
d2=f3-f2;
d3=f3-f1;
if (d1 == 0 || d2 == 0 || d3 == 0)
disp('除0错误,请重新选择三个初始点!');
root = NaN;
return;
end
root=t(1)*f2*f3/d1/d3+t(2)*f1*f3/d1/d2+t(3)*f2*f1/d2/d3;
tol=abs(root-t(3));
ft = subs(sym(f),findsym(sym(f)),root);
if( f2*ft < 0)
if root > t(2)
t(1)=t(2);
t(2)=root;
else
t(3) = t(2);
t(2) = root;
end
else
if f2 < 0
if root > t(2)
t(1)=t(2);
t(2)=root;
else
t(1) = root;
end
else
if root > t(2)
t(3) = root;
else
t(3) = t(2);
t(2) = root;
end
end
end
end
end
format short;
没有合适的资源?快使用搜索试试~ 我知道了~
33.MATLAB编程 方程求根 源程序代码.zip
共26个文件
m:26个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 12 浏览量
2023-09-01
21:24:21
上传
评论
收藏 17KB ZIP 举报
温馨提示
33.MATLAB编程 方程求根 源程序代码.zip
资源推荐
资源详情
资源评论
收起资源包目录
33.MATLAB编程 方程求根 源程序代码.zip (26个子文件)
33.MATLAB编程 方程求根 源程序代码
Montecarlo.m 414B
QBS2.m 917B
QBS.m 2KB
SinleSecant.m 711B
StevenStablePoint.m 296B
NewtonRoot.m 810B
NewtonDown.m 956B
BenvliMIN.m 389B
MultiRoot.m 845B
DblSecant.m 767B
Union2.m 699B
ModifSecant.m 886B
Parabola.m 1KB
BenvliMAX.m 299B
TwoStep.m 1KB
AtkenStablePoint.m 387B
hj.m 979B
Union1.m 689B
StablePoint.m 222B
SimpleNewton.m 766B
PYZ.m 629B
StevenSecant.m 664B
HalfInterval.m 744B
YSNewton.m 459B
PallSecant.m 627B
Secant.m 748B
共 26 条
- 1
资源评论
Matlab科研辅导帮
- 粉丝: 1w+
- 资源: 7553
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功