matlab用fminbnd求最值的时,如何使得到的x为整数function f=fun(x)f=50*1.05.^x-50*exp(sqrt(x)/6);[x,fval]=fminbnd(@fun,1,15)如何使结果x为整数

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/04 20:42:58
matlab用fminbnd求最值的时,如何使得到的x为整数function f=fun(x)f=50*1.05.^x-50*exp(sqrt(x)/6);[x,fval]=fminbnd(@fun,1,15)如何使结果x为整数

matlab用fminbnd求最值的时,如何使得到的x为整数function f=fun(x)f=50*1.05.^x-50*exp(sqrt(x)/6);[x,fval]=fminbnd(@fun,1,15)如何使结果x为整数
matlab用fminbnd求最值的时,如何使得到的x为整数
function f=fun(x)
f=50*1.05.^x-50*exp(sqrt(x)/6);
[x,fval]=fminbnd(@fun,1,15)
如何使结果x为整数

matlab用fminbnd求最值的时,如何使得到的x为整数function f=fun(x)f=50*1.05.^x-50*exp(sqrt(x)/6);[x,fval]=fminbnd(@fun,1,15)如何使结果x为整数
你是不是要在[1,15]上找f的最小值?如果要求x必须是整数的话建议直接穷举:
x = 1:15;
f=50*1.05.^x-50*exp(sqrt(x)/6);
[fmin,idx] = min(f);
xmin = x(idx);
则xmin是最小值点,fmin是最小值

是要找整数根么?
可以试试楼上建议的穷举法, 但这个函数明显没有整根啊
如果是要找最接近根的整数
fminbnd之后
x=round(x)