求复杂积分方程的数值解

img

根据上图式子,构造方程组求解未知数L,A的值,采用vpasolve进行求解,发现求不出数值解


clear;clc
va=1113;
syms l a x y1 
T1=2;
T2=300;
hbar=1.05457266e-34;
k=1.3806505e-23;
y1=(x.^4).*exp(x)./(((va./l)+(a.*(k.*T1./hbar).^4.*(x.^4))).*((exp(x)-1).^2));
y2=(x.^4).*exp(x)./(((va./l)+(a.*(k.*T2./hbar).^4.*(x.^4))).*((exp(x)-1).^2));
f1=(k./(2*((pi)^2).*va)).*((k./hbar).^3).*(T1.^3).*int(y1,x,0,101)-0.0071;
f2=(k./(2*((pi)^2).*va)).*((k./hbar).^3).*(T2.^3).*int(y2,x,0,0.6767)-1.7;
[l,a]=vpasolve(f1,f2,l,a);
disp([l,a]);

运行结果及报错内容

运行无报错内容,但是给不出数值解

我想要达到的结果

如何列出方程,求出两字母的数值解

要数值解用fsolve,自己选一个合适的初值

clear;clc
va=1113;
syms l a x y1 
T1=2;
T2=300;
hbar=1.05457266e-34;
k=1.3806505e-23;
y1=(x.^4).*exp(x)./(((va./l)+(a.*(k.*T1./hbar).^4.*(x.^4))).*((exp(x)-1).^2));
y2=(x.^4).*exp(x)./(((va./l)+(a.*(k.*T2./hbar).^4.*(x.^4))).*((exp(x)-1).^2));
f1=(k./(2*((pi)^2).*va)).*((k./hbar).^3).*(T1.^3).*int(y1,x,0,101)-0.0071;
f2=(k./(2*((pi)^2).*va)).*((k./hbar).^3).*(T2.^3).*int(y2,x,0,0.6767)-1.7;
f1 = matlabFunction(f1, 'vars', {'l', 'a'});
f2 = matlabFunction(f2, 'vars', {'l', 'a'});
flag = 0;
while(flag<=0)
[la, fval, flag]= fsolve(@(x)[f1(x(1),x(2)); f2(x(1),x(2))], 1e-5*rand(2,1)); % 1e-5*rand(2,1)是初值
end
disp(la);


您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632