matlab求解带积分的二元方程组,未知数在积分中

您好,看见您对之前问题的解答,给人醍醐灌顶之感,但这个问题困扰自己多天,仍然求解不出。叨扰之处,望请见谅。我想求解这个方程组,尝试了vpasolve函数,但是一直报错
clear
syms t x1 x2;
f1=exp(-(1-x2)*t)/t;
f2=exp(-x1*t)/t;
S1=integral(@(t)f1,1,+inf);
S2=integral(@(t)f2,1,+inf);
[sol_x1,sol_x2] = vpasolve([x1==S1,x2 ==1- S2], [x1,x2]);
a=eval(sol_x1);
b=eval(sol_x2);
报错:错误使用 integralCalc/finalInputChecks (line 522)输入函数必须返回 'double' 或 'single' 值。找到 'sym'。
出错 integralCalc/iterateScalarValued (line 315) finalInputChecks(x,fx);

请问这个问题该如何解决呢?期盼您的回复,谢谢!

你这样试一试:


clear

syms t x1 x2;

f1=exp(-(1-x2)*t)/t;

f2=exp(-x1*t)/t;

S1=int(f1,t,1,+inf);

S2=int(f2,t,1,+inf);

[sol_x1,sol_x2] = vpasolve([x1==S1,x2 ==1- S2], [x1,x2]);format long;

a=eval(sol_x1)

b=eval(sol_x2)


a =


   0.527612347201742



b =


   0.472387652798258


追问

好的好的 非常感谢!!!

追答

有效果的话还请采纳哟

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-01-24
从你的反馈上来看,你更需要解决的问题有两点

1:代码这么多行,你如何查出哪一行代码错了?
2:怎么执行正确的函数?我所执行的函数是我想要的吗本回答被提问者采纳