这种求累加和,求解的未知数在上下限 matlab程序怎么写?
完全没有思路,以前用for solve解 但是syms K 之后 for里面不能是符号啊,我就蒙了,有没有教教我
(1)问题分析
由于K肯定是在1到NM之间的整数,因此相应的非线性优化问题不需要采用复杂的优化算法,直接对K在1和NM之间遍历就可以了。此外,题主的问题描述似乎有笔误,公式中1/2的指数应该是k而不是N*M,否则得到的解不是127。
(2)问题的matlab解决代码
rho_fa=1e-4;
N=10;
M=16;
min_obj_val=inf;
warning off;
for K=1:N*M
tmp_rho_fa=0;
for k=K:N*M
tmp_rho_fa=tmp_rho_fa+(1/2)^(k)*nchoosek(N*M,k);
end
obj_val=abs(rho_fa-tmp_rho_fa);
if obj_val<min_obj_val
min_obj_val=obj_val;
solution_K=K;
end
end
warning on;
fprintf('solution_K=%d\n',solution_K);
(3)代码运行结果