matlab含变上限积分方程,遇到了很奇怪的问题,
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/12 04:22:32
matlab含变上限积分方程,遇到了很奇怪的问题,
要求解的方程如图:
要求解alpha;
我写出的matlab程序如下:
t=0.7256;
syms a x;
f=int(x/(exp(x)-1),0,a);
f1=1+4/a*(f/a-1)-t;
answer=solve('f1',a);
matlab告诉我说没有显式解,但是f和f1都能表示出来,
f1 =
((4*(polylog(2,exp(a)) - pi^2/6 + a*log(1 - exp(a)) - a^2/2))/a - 4)/a + 21/100
我直接解等号右边这部分可以解出a来,但是解f1就不行.
哪位熟悉matlab的可以给我解释一下这是怎么回事啊?
要是能给出一个完整的解决方案就更好了,
要完成导师的任务,很愁人.
要求解的方程如图:
要求解alpha;
我写出的matlab程序如下:
t=0.7256;
syms a x;
f=int(x/(exp(x)-1),0,a);
f1=1+4/a*(f/a-1)-t;
answer=solve('f1',a);
matlab告诉我说没有显式解,但是f和f1都能表示出来,
f1 =
((4*(polylog(2,exp(a)) - pi^2/6 + a*log(1 - exp(a)) - a^2/2))/a - 4)/a + 21/100
我直接解等号右边这部分可以解出a来,但是解f1就不行.
哪位熟悉matlab的可以给我解释一下这是怎么回事啊?
要是能给出一个完整的解决方案就更好了,
要完成导师的任务,很愁人.
在Matlab中这个问题非常简单.你不要符号求解,这样是达不到目的的.你可以尝试数值求解,具体:fsolve(@(x,t) (1-t)*x.^2+4*(quad(@(u) u./(exp(u)-1),0.00001,x)-x),0.1,[],0.7256)就ok.对于你这样问题,对于不同的初值,结果波动较大. 当初值在小于8时,会得到接近0的值,但是波动很大,主要原因是在做积分数值解时,下限近似0;当初值大于等于8时,搜索的结果是12.6874,而且非常稳定.