我想用Matlab来解决多项式。所以,我使用solve()
函数。
这是matlab代码。
% variable
Cmin = 8;
N0 = 0;
B = 8;
P_s_max = 2;
P_r_max = 10;
h_sr = 1;
h_rd = 12;
h_sd = 1;
h_li = 3;
% polynomial
syms P_sr P_rd
formula1 = (P_sr*h_sr)-(P_rd*h_li)*(2^(Cmin/B)-1)>=(2^(Cmin/B)-1)*N0;
formula2 = (P_rd*h_rd)-(P_sr*h_sd)*(2^(Cmin/B)-1)>=(2^(Cmin/B)-1)*N0;
formula3 = 0<=P_sr;
formula4 = P_sr<=P_s_max;
formula5 = 0<=P_rd;
formula6 = P_rd<=P_r_max;
sol = solve([formula1, formula2, formula3, formula4, formula5, formula6], [P_sr, P_rd]);
% solution
x = vpa(sol.P_sr, 4);
y = vpa(sol.P_rd, 4);
变量formula
是我想要解决的多项式函数。
变量x
是P_sr
的4解。
但是,我得到了x = 0.0
和y = 0.0
实际上,P_sr
可以是0.4,P_rd可以是0.3。我该如何修改代码?