matlab代码设置的应该是输出的是 xi和A的实数根,结果出来的都是复数?怎么改呢?

我的代码是:
syms be k xi Ic A mu
vars=[xi A ];
for be=[0.1:0.05:1.5]
for k=[0.3:0.1:3]
for Ic=[0.1:0.04:0.3]
for mu=[0.1:0.1:1.4]
syms xi A
cond1=-mubebe0.75^5+(ximu^2be+Abebe+kIcbebe)0.75^4+(mu^2be+kmube-2Aximube)0.75^3+( xiAAbe-ximu^3-mubeA-kAbe)0.75^2+2xiAmu^20.75-ximuAA+0.07==0;
cond2=-mu
bebe0.5^5+(ximu^2be+Abebe+kIcbebe)0.5^4+(mu^2be+kmube-2Aximube)0.5^3+( xiAAbe-ximu^3-mubeA-kAbe)0.5^2+2xiAmu^20.5-ximuAA-0.15==0;
conds=[cond1 cond2 ];
[xi,A]=solve(conds,vars);

if (~isempty(xi))&&(~isempty(A))
for ii =[1:length(xi)]
    if isreal(xi(ii))&&isreal(A(ii))
        xi(ii)=vpa(xi(ii));A(ii)=vpa(A(ii));
    if (xi(ii)>0)&&(xi(ii)<5)&&(A(ii)>0)&&(A(ii)<1)
        b=[Ic,be,k,A(ii),mu,xi(ii)]
    end
    end
end
end

end
end
end
end
syms be k xi Ic A mu
vars=[xi A ];
for be=[0.1:0.05:1.5]
for k=[0.3:0.1:3]
for Ic=[0.1:0.04:0.3]
for mu=[0.1:0.1:1.4]
syms xi A
cond1=-mubebe0.75^5+(ximu^2be+Abebe+kIcbebe)0.75^4+(mu^2be+kmube-2Aximube)0.75^3+( xiAAbe-ximu^3-mubeA-kAbe)0.75^2+2xiAmu^20.75-ximuAA+0.07==0;
cond2=-mu
bebe0.5^5+(ximu^2be+Abebe+kIcbebe)0.5^4+(mu^2be+kmube-2Aximube)0.5^3+( xiAAbe-ximu^3-mubeA-kAbe)0.5^2+2xiAmu^20.5-ximuAA-0.15==0;
conds=[cond1 cond2 ];
[xi,A]=solve(conds,vars);

if (~isempty(xi))&&(~isempty(A))
for ii =[1:length(xi)]
    if isreal(xi(ii))&&isreal(A(ii))
        xi(ii)=vpa(xi(ii));A(ii)=vpa(A(ii));
    if (xi(ii)>0)&&(xi(ii)<5)&&(A(ii)>0)&&(A(ii)<1)
        b=[Ic,be,k,A(ii),mu,xi(ii)]
    end
    end
end
end

end
end
end
end

img

我以前研究过声学方面的问题,会涉及到复数的处理,不知道你是做哪个领域?你上面判断完是否是复数后,跳出去又判断xi大于0小于5同时A的模大于0小于1,表示如果有两个复数,他们的模满足条件,就会输出。