谁可以帮我看看 怎么改一下可以求得出一个实数 而不是 有实部虚部的复数

img

S2 = int(int((155.44+398.87*((x+y+3840-3828.342)/3828.342-0.002179)^0.154)*(abs(-x-y+23.316)/sqrt(2)),y,-11.658,20),x,-3.316,20)+...
     int(int((155.44+((x+3840-3828.342)/3828.342-0.002179)^0.154*398.87+(y+3840-3828.342)/3828.342*71320)*(abs(-x-y+23.316)/sqrt(2)),y,-14.974-x,-11.658),x,-3.316,5.026)+...
     int(int((155.44+((x+3840-3828.342)/3828.342-0.002179)^0.154*398.87+(y+3840-3828.342)/3828.342*71320)*(abs(-x-y+23.316)/sqrt(2)),y,-20,-3.316),x,5.026,20)


你好,正常按照你的式子计算是会有虚部存在的,你需要仔细比对参数是否都写对了(然后建议用数值积分代替符号积分):

syms x y
f1 = (155.44+398.87*((x+y+3840-3828.342)/3828.342-0.002179)^0.154)*(abs(-x-y+23.316)/sqrt(2));
f2 = (155.44+((x+3840-3828.342)/3828.342-0.002179)^0.154*398.87+(y+3840-3828.342)/3828.342*71320)*(abs(-x-y+23.316)/sqrt(2));
f3 = (155.44+((x+3840-3828.342)/3828.342-0.002179)^0.154*398.87+(y+3840-3828.342)/3828.342*71320)*(abs(-x-y+23.316)/sqrt(2));
f1 = matlabFunction(f1, 'vars', {x,y});
f2 = matlabFunction(f2, 'vars', {x,y});
f3 = matlabFunction(f3, 'vars', {x,y});
s1 = integral2(f1,-20,-3.316,-11.658,20); % 前面x的范围,后面y的范围
ymin = @(x)-14.974-x;
s2 = integral2(f2,-3.316,5.026,ymin,-11.658);
s3 = integral2(f3,5.026,20,-20,-11.658);
S2 = s1+s2+s3

结果:
S2 =

4.1841e+06 + 6.4614e+05i