这样的指数方程组用matlab怎么解?我就这么多财富了,全给高手了

来源:百度知道 编辑:UC知道 时间:2024/06/21 17:53:42
A*(1-exp(-t1/l1)).*exp(-t1/l2)-0.1=0;
A*(1-exp(-t2/l1)).*exp(-t2/l2)-0.9=0;
A*(1-exp(-t4/l1)).*exp(-t4/l2)-0.5=0;其中t1,t2,t4是已知量,A,l1,l2是待求的量,请高手帮忙,指条明路,我实在没辙,忙活了几天也搞不定。我用fsolve命令也解不出来,给定初值,解出来的竟然还是初值
已经解决了,用数值分析中牛顿迭代的方法,自己编程,这种复杂的方程看来是不能指望matlab给我们做了

你见过solve解.*的方程了吗?
你这里怎么出来.*了呢,A是矩阵啊?如果是矩阵的话,你就不应该用solve求了,那就属于矩阵方程了!!!

回答补充:
A不是变量,你为什么写个.*呢,这就是矩阵的.*公式啊
呵呵,
看看下面的大侠怎么解决!!

A首先是个矩阵,我猜想t1,t2,t4只是个数,l1,l2也只是数,那你这样列
A*(1-exp(-t1/l1)).*exp(-t1/l2)-0.1=0是不行的。矩阵和一个数相乘跟一个矩阵相乘结果和表达方式都不一样。A是不是一行3列的矩阵?
这样解决,你把A分别改为A1,A2,A3这样一个个数代回原来方程
这样就变成求有3个未知数非线性方程组的解了,现在用solve命令试一下。

应该用fsolve解吧,非线性方程,迭代。
f=@(x)([x(1)*(1-exp(-1/x(2))).*exp(-1/x(3))-0.1;x(1)*(1-exp(-2/x(2))).*exp(-2/x(3))-0.9;x(1)*(1-exp(-4/x(2))).*exp(-4/x(3))-0.5]);你把1 2 4换成你的t1,t2,t4的值。
x=fsolve(f,[1 1 1],options);
options的具体参看doc fsolve

A,l1,l2值 拿上来看看。解不出来很正常,三个未知数是不假,但不是线性关系,当然有多组解了。。。

还有选 初始值 的问题,你首先估计一个近似解出来,用它当初始值,不然的话容易跑偏 。。。

先将方程组
A*(1-exp(-t1/l1)).*exp(-t1/l2)-0.1=0;
A*(1-exp(-t2/l1)).*exp(-t2/l2)-0.9=0;
A*(1-exp(-t4/l1)).*exp(-t4/l2)-0.5=0;
假设exp(-1/l1) = a1, exp(-1/l2) = a2
变形为
A*(1-a1^t1)*a2^t1 = 0.1
A*(1-a1^t2)*a2^t2 = 0.9
A*(1-a1^t4)*a2^