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:怎么执行正确的函数?我所执行的函数是我想要的吗本回答被提问者采纳

matlab求解带积分的二元方程组,未知数在积分中
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...

带积分的二元方程组,未知数在积分中,能用matlab程序求解吗
1、创建求解带积分的二元方程组函数,f =func(x)。其内容:f1=@(t)exp(-(1-x2).*t).\/t; %定义方程 f2=@(t)exp(-x1*t).\/t; %定义方程 S1=integral(f1,1,+inf); %求积分值 S2=integral(f2,1,+inf); %求积分值 f = [x1-S1,x2-(1- S2)];2、用fsolve函数求解。即 s...

积分变量中带有未知数的积分怎么用matlab实现?
将被积函数里边的变量换成t,然后积分,这个就可以做了~假设被积函数为(t^2),假设积分上下限为(x,2x)。具体代码如下:symsxt;f=@(t)t^2;int(f,'t',x,2*x)得到的结果如下:ans= (7*x^3)\/3 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks...

用matlab求解一个两重积分方程(未知数在积分下限,含复数积分)
1、f(x)很难求出闭式表达式。2、使用符号积分计算量很大,而且可能根本就无法计算。3、可使用integral函数进行数值积分。与quad系列函数相比,integral的优势是可以计算积分限为无穷大的情况。该函数自2012a引入。4、f(x)的值应为实数,但由于数值计算的误差可能导致结果为复数,所以计算之后对结果取实部...

matlab求带参数二元方程组求得解中依然含未知数
因为你没有指定求解变量,所以得到结果就会这样。将solve()改成如下形式,就okl了。[T,t1]=solve('P*k - C*k - Cm*a + 2*a*g + C*a*g1 + T*a*a1 - 2*Cm*k*t1 - g*k*t0 + 4*g*k*t1 + 2*C*g1*k*t1 + 2*T*a1*k*t1=0','a1*t1*(a + k*t1) - 2*T=0...

如何用matlab解出此二元二次方程组?程序怎么写
1、首先看一下matlab求解方程的方法,指明所解方程的变量,然后指明方程,未知数和限制条件,最后求解方程。2、来求解sin(x)=1方程,在matlab命令行窗口中输入symsx [x,params,conds]=solve (sin(x)==1,'ReturnConditions', true) ,按回车键可以得到方程解,如下图所示。3、转换一下,可以看到sin...

积分变量中带有未知数的积分怎么用matlab实现?
而且你看书上哪有两个变量都是一样的,那不就混乱了么~~~那么我将被积函数里边的变量换成t,然后积分,这个就可以做了~假设被积函数为(t^2),假设积分上下限为(x,2x)。具体代码如下:syms x t;f=@(t)t^2;int(f,'t',x,2*x)得到的结果如下:ans = (7*x^3)\/3 ...

matlab求方程组的解里含有未知数
你把solve()括号内单引号和等号去掉,把等式改为算式,如'(t1-t)*c=sqrt((x1-x)^2+(y1-y)^2)',改为 (t1-t)*c-sqrt((x1-x)^2+(y1-y)^2),这样可以得到具体的数值。

matlab解方程组
Matlab可以通过符号计算工具箱或命令sym来解方程组。步骤如下:步骤一:创建符号变量和方程组。 使用syms函数创建符号变量,然后定义方程组的表达式。这些表达式应表示为一个等式或一个等式组的多个成员。例如,如果我们要解二元一次方程组,我们可以定义两个变量x和y,并用等于或不等于来表示它们的各种可能...

用matlab解方程
可以使用MATLAB中的符号计算工具箱来解决方程问题。具体步骤如下:1. 定义方程:使用符号变量表示未知数,并定义方程。例如,如果要解一元二次方程ax² + bx + c = 0,可以使用syms定义符号变量x和系数a、b、c。然后使用eq函数定义方程。2. 解方程:使用solve函数解方程。将方程作为solve函数的...

相似回答