matlab语句Maina0=1;da=0.05;a1=a0;a2=a0+da;f1=fun(a1);f2=fun(a2

问题描述:

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啊.
1个回答 分类:综合 2014-09-17

问题解答:

我来补答
步长太大了,da=0.05就不会了,你format long 在运行会发现
a2 =
3.450000000000002
f2 =
-2.247499999999999
a3 =
3.550000000000002
f3 =
-2.247500000000001
这个matlab计算时出了点小问题,精度问题使得f2>f3但是已经越过极值点了
你把da就定为0.05就不会了
 
 
展开全文阅读
剩余:2000