我有一个优化问题,我必须使用拉格朗日乘数来解决。 我有以下代码:
clear all
clc
p = @(r,sig) (r./sig.^2) .* exp(-r.^2/2*(sig.^2));
sig = 1;
Pa = 1;
Pc = 20;
a = 0.5;
b = 1;
phi = @(h_AB,h_AC,h_CB) abs(h_AB).^2 +((b .* a.^2*abs(h_AC).^2 .* abs(h_CB).^2)
.* Pc ./ (1 + b * a .^2 .* abs(h_CB) .^2 * Pc));
f1 = @(h_AB,h_AC,h_CB) .5*log((1+phi(h_AB,h_AC,h_CB)*Pa)/(1+abs(h_AC).^2*Pa));
f2 = @(h_AB,h_AC,h_CB) f1(h_AB,h_AC,h_CB) .* p(h_AB,sig) .* p(h_AC,sig).* (h_CB,sig);
q = integral3(f2,-inf,inf,-inf,inf,-inf,inf);
我定义的常量b
应该是变量(q
是b
的函数),以便我在下一步中找到e = jacobian(q,[b]);
。
问题在于我无法将b
定义为符号,而其他函数不是符号的,当我以符号形式定义所有函数时,我的内存解析e = jacobian(q,[b]);
< / p>