如程序所见,错误使用 symengine Unable to convert expression into double array.希望有大​佬能帮忙解决。最后一​行sym转doubl​e错误。

조회 수: 5 (최근 30일)
qurbetla
qurbetla 2023년 5월 18일
답변: yooizeng 2023년 5월 18일
clear;clc
syms y
gt = 4.2374;
atm = 2;
utm = 2;
A0t = 0.0620;
hlt = 0.1219;
hfm = 0.8660;
xishut = utm/(A0t*hlt*hfm)^atm;
k1 = 1 - gt^2/atm;
k2 = (atm*utm - gt^2)/atm;
k3 = -gt^2/atm;
ft = y^(gt^2/2)* meijerG([k1], [1], [0, k2], [k3], xishut*y^(atm/2));
gf = 4.5749;
afm = 4.4948;
bfm = 2.5442;
A0f = 0.3900;
hlf = 0.8603;
xishuf = ((afm*bfm)/(4*A0f*hlf))^2;
k4 = (gf^2 + 1)/2;
k5 = (gf^2 + 2)/2;
k6 = (gf^2)/2;
k7 = (gf^2 + 1)/2;
k8 = (afm)/2;
k9 = (afm + 1)/2;
k10 = (bfm)/2;
k11 = (bfm + 1)/2;
ff = meijerG([1], [k4, k5], [k6, k7, k8, k9, k10, k11], [0], xishuf*y);
fx = (1 - exp(-y))^(1 - 1)*(exp(-y))^(3 - 1 + 1);
f=ft.*ff.*fx
j2=int(f,y,-10.6855,50)
j2=abs(double(j2))

채택된 답변

yooizeng
yooizeng 2023년 5월 18일
仅供参考,估计积分区间存在奇异点
clear;clc
syms y
gt = 4.2374;
atm = 2;
utm = 2;
A0t = 0.0620;
hlt = 0.1219;
hfm = 0.8660;
xishut = utm/(A0t*hlt*hfm)^atm;
k1 = 1 - gt^2/atm;
k2 = (atm*utm - gt^2)/atm;
k3 = -gt^2/atm;
ft = y^(gt^2/2)* meijerG([k1], [1], [0, k2], [k3], xishut*y^(atm/2));
gf = 4.5749;
afm = 4.4948;
bfm = 2.5442;
A0f = 0.3900;
hlf = 0.8603;
xishuf = ((afm*bfm)/(4*A0f*hlf))^2;
k4 = (gf^2 + 1)/2;
k5 = (gf^2 + 2)/2;
k6 = (gf^2)/2;
k7 = (gf^2 + 1)/2;
k8 = (afm)/2;
k9 = (afm + 1)/2;
k10 = (bfm)/2;
k11 = (bfm + 1)/2;
ff = meijerG([1], [k4, k5], [k6, k7, k8, k9, k10, k11], [0], xishuf*y);
fx = (1 - exp(-y))^(1 - 1)*(exp(-y))^(3 - 1 + 1);
f=ft.*ff.*fx;
fun=matlabFunction(f);
j2=integral(fun,-10.6855,50)
j2=abs(double(j2))

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Simulation, Tuning, and Visualization에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!