记录|二分法求根及其代码

    最近学习matlab及其相关的数学内容,正好老师留了用二分法进行求根,在寻找过程中,代码均需要记录循环k次,每一次的结果,我问了些人,最后求出结果,将代码及其结果呈现如下,由于二分法原理很简单,故而这里就不进行赘述,有问题随时交流哦

一:先呈现出代码运行后的结果
代码运行结果:一共运行了20次
在这里插入图片描述
function y=myfunction(t)
% y=0.25t4+5*t2-20t+3
y=t.^3+10*t-20;
end

function
[iterations,y]=dichotomyRoot(a,b,e,k)
x=(a+b)/2;
f3=myfunction(x);
f1=myfunction(a);
if(f1*f3<0)
m=x-a;
if(m>e)
b=x;
k=k+1;
disp('结果为 ') ,disp([k,a,b]);
[k,y]=dichotomyRoot(a,b,e,k);
else
z=x;
end
else
m=b-x;
if(m>e)
a=x;
k=k+1;
disp(‘结果为:’) ,disp([k,a,b]);
[k,y]=dichotomyRoot(a,b,e,k);
else
y=x;
end
end
iterations=k;
end

clc;
clear;
a=input(‘请输入求根的下限,a=’);
b=input(‘请输入求根的上限,b=’);
e=input(‘请输入求根的精度,e=’);
iterations=0;
ya=myfunction(a);yb=myfunction(b);%程序中调用的myfunction.m为函数
if yayb>0
disp('注意:ya
yb>0,请重新调整区间端点a和b.’),return;
else
[iterations,y]=dichotomyRoot(a,b,e,iterations);
end
disp(‘k=’),disp([iterations]);
disp(‘Root=’),disp(y);
Y=myfunction(y);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值