24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1507  |  回复: 4

周宁_fish

新虫 (初入文坛)

[求助] matlab解方程组求助攻已有2人参与

方程组如下,求解x  y  z
f1=0.00124*y+0.114094*z-0.1*y+0.1*y*exp(-900*x)=0
f2=0.00549*y+0.648922*z-0.1*y+0.1*y*exp(-1800*x)=0
f3=0.00607*y+0.750408*z-0.1*y+0.1*y*exp(-2700*x)=0
f4=0.00821*y+1.251459471*z-0.1*y+0.1*y*exp(-3600*x)=0
还有f5...
用matlab的fsolve函数求解的时候3个未知数只能编辑三个方程,否则会提示Warning: Trust-region-dogleg algorithm of FSOLVE cannot handle non-square systems; using Levenberg-Marquardt algorithm instead. 用前三个方程来解方程,x的解和所选的初值完全相同。请问这是什么原因,程序如下请问解出来的解对不对。
function q=myfun(p)
x=p(1);
y=p(2);
z=p(3);
q(1)=0.00124*y+0.114094*z-0.1*y+0.1*y*exp(-900*x);
q(2)=0.00549*y+0.648922*z-0.1*y+0.1*y*exp(-1800*x);
q(3)=0.00607*y+0.750408*z-0.1*y+0.1*y*exp(-2700*x);
x = fsolve('myfun',[10,100000,3000]',optimset('Largescale','off'))

在网上搜的 Levenberg-Marquardt 方法来解这个方程组,程序如下
f()={"0.00124*y+0.114094*z-0.1*y+0.1*y*exp(-900*x)","0.00549*y+0.648922*z-0.1*y+0.1*y*exp(-1800*x)","0.00607*y+0.750408*z-0.1*y+0.1*y*exp(-2700*x)"}
x()={"x","y","z"}
x0()={10,100000,3000}
d()={0,0,0}
erro=1e-8
Loopn=3000
nonlin_LM(f,x,x0,d,erro,Loopn)
运行时显示Error: File: Untitled4.m Line: 1 Column: 2
An indexing expression on the left side of an assignment must have at least one subscript.

我对matlab不懂,请大神帮忙解一下这个方程组,望附上程序,谢谢!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
方程没问题吗?如果个方程右边均为0,那就只有解:
y: 0
z: 0
x: 0
2楼2014-02-17 14:49:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

周宁_fish

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by dingd at 2014-02-17 14:49:14
方程没问题吗?如果个方程右边均为0,那就只有解:
y: 0
z: 0
x: 0

方程没有问题    怎么会只有0解   方程组的系数矩阵肯定不是0,那肯定有非零解的啊
3楼2014-02-17 15:54:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

戴钢盔的猪头

木虫 (知名作家)

【答案】应助回帖

感谢参与,应助指数 +1
你的问题没表述清楚吧?首先二楼说的全为零的解肯定是可行解,其次你求解超定问题,需要定义成求最小二乘解,然后你需要对变量做不等式约束,否则只能找到全零解。信赖域折线法可以求解超定最小二乘问题的,但是你的问题提的不对。

[ 发自手机版 http://muchong.com/3g ]
4楼2014-02-18 01:29:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

戴钢盔的猪头

木虫 (知名作家)

【答案】应助回帖

哦不好意思,之前看的不够仔细,实际上你的方程组应该有无数组解。爱渴死可以取任意值,歪和贼只要都是零就能满足了。还是那句话,你要定义三个变量的可行取值范围才有可能计算出唯一解。

[ 发自手机版 http://muchong.com/3g ]
5楼2014-02-18 09:43:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 周宁_fish 的主题更新
信息提示
请填处理意见