matlab语句Maina0=1;da=0.05;a1=a0;a2=a0+da;f1=fun(a1);f2=fun(a2);if(f1f3)a1=a2;a2=a3f2=f3a3=a2+daf3=fun(a3)enda=a3b=a2fun函数:function f=fun(x)f=x^2-7*x+10;end这是求函数f=x^2-7*x+10;的极小值所在的区间,可为什么得到的结果是

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/20 07:16:51
matlab语句Maina0=1;da=0.05;a1=a0;a2=a0+da;f1=fun(a1);f2=fun(a2);if(f1f3)a1=a2;a2=a3f2=f3a3=a2+daf3=fun

matlab语句Maina0=1;da=0.05;a1=a0;a2=a0+da;f1=fun(a1);f2=fun(a2);if(f1f3)a1=a2;a2=a3f2=f3a3=a2+daf3=fun(a3)enda=a3b=a2fun函数:function f=fun(x)f=x^2-7*x+10;end这是求函数f=x^2-7*x+10;的极小值所在的区间,可为什么得到的结果是
matlab语句
Main
a0=1;
da=0.05;
a1=a0;
a2=a0+da;
f1=fun(a1);
f2=fun(a2);
if(f1f3)
a1=a2;
a2=a3
f2=f3
a3=a2+da
f3=fun(a3)
end
a=a3
b=a2
fun函数:
function f=fun(x)
f=x^2-7*x+10;
end
这是求函数f=x^2-7*x+10;的极小值所在的区间,可为什么得到的结果是在3.55到3.65之间啊?我觉得最终结果应该是在3.45到355啊.

matlab语句Maina0=1;da=0.05;a1=a0;a2=a0+da;f1=fun(a1);f2=fun(a2);if(f1f3)a1=a2;a2=a3f2=f3a3=a2+daf3=fun(a3)enda=a3b=a2fun函数:function f=fun(x)f=x^2-7*x+10;end这是求函数f=x^2-7*x+10;的极小值所在的区间,可为什么得到的结果是
步长太大了,da=0.05就不会了,你format long 在运行会发现
a2 =
3.450000000000002
f2 =
-2.247499999999999
a3 =
3.550000000000002
f3 =
-2.247500000000001
这个matlab计算时出了点小问题,精度问题使得f2>f3但是已经越过极值点了
你把da就定为0.05就不会了