建站软件有哪些功能,北京建行网站,河南建设厅证件查询平台,兰溪建设网站给本科生助课#xff0c;需要用到二分法#xff0c;所以就编写了一下二分法的matlab代码#xff0c;while循环、for循环都用到了#xff1b;
个人认为这两段程序编写的比较细致#xff0c;该涉及到的输入输出都有。都是比较简单的知识#xff0c;所以给大家分享出来需要用到二分法所以就编写了一下二分法的matlab代码while循环、for循环都用到了
个人认为这两段程序编写的比较细致该涉及到的输入输出都有。都是比较简单的知识所以给大家分享出来供交流讨论
第一个 %% erfenfa new use one
% Author:jfsufengfoxmail.com
% Version:
% DateTime:
% Description:function [i,x,fx]erfenfa_new_use1(f,bot,top,err)
%输入f为要求解的方程函数表达式bot为求解区间的下界top为求解区间的上界err为所要求的误差范围
%输出i为二分法求解的次数x为最终的根fx为方程的根x对应的函数值精度要求内接近于零或等于零
if f(bot)*f(top)0disp(\n注意f(bot)*f(top)0,无法继续运算请重新调整区间端点bot和top.\n);return
end
%wuchaabs(top_new-bot_new)/2; % put that into for loop || while loop
nceil((log(top-bot)- log(err))/log(2))-1; %n为二分法运算总的次数ceil是上取整 ,相对应的floor是下取整
for i0:1:n % 步长默认为1中间的1加不加都可以x(bottop)/2;fxf(x);if fx0botx; topx;elseif f(bot)*fx0topx;elsebotx;end
% if abs(top-bot)err % 结合题意加不加1/2都行只是有着多二分运算一次的影响
% %此外实际这里的if判断err的语句part针对for循环是无必要的
% break % 这里用break不用return
% end
end
fprintf(\nThe result:\n二分法运算次数i%d;方程的根x%.4f;f(x)%.4f\n,i,x,fx);%保留4位小数第二个 %% erfenfa new use two
% Author:jfsufengfoxmail.com
% Version:
% DateTime:
% Description:function [i,x,fx]erfenfa_new_use2(f,bot,top,err)
%输入f为要求解的方程函数表达式bot为求解区间的下界top为求解区间的上界err为所要求的误差范围
%输出i为二分法求解的次数x为最终的根fx为方程的根x对应的函数值精度要求内接近于零或等于零
if f(bot)*f(top)0disp(\n注意f(bot)*f(top)0,无法继续运算请重新调整区间端点bot和top.\n);return
end
iceil((log(top-bot)- log(err))/log(2))-1; %n为二分法运算总的次数ceil是上取整 ,相对应的floor是下取整
while abs(top-bot)errx(bottop)/2;fxf(x);if fx0botx; topx;elseif f(bot)*fx0topx;elsebotx;end
end
fprintf(\nThe result:\n二分法运算次数i%d;方程的根x%.4f;f(x)%.4f\n,i,x,fx);%保留4位小数执行示例1和2的执行一致 In Command Window [i,x,fx]erfenfa_new_use2((x)x^34*x^2-10,1,2,5e-4) The result: 二分法运算次数i10;方程的根x1.3647;f(x)-0.0080 i 10 x 1.3647 fx -0.0080 注个人手敲linkhttps://blog.csdn.net/jfsufeng/article/details/46116501