声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1852|回复: 2

[编程技巧] Matlab-fsolve 函数-动态方程组如何处理(内附个人思路)

[复制链接]
发表于 2010-4-1 09:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
问题是这样的:
一个非常棘手的问题。。。在matlab中生成动态方程组(方程个数不确定),并用fsolve计算
我的思路是:先把方程组用字符串函数构造好,然后用fsolve计算。已经得到方程组矩阵,例如:

ans =
    'x(1)-1-x(2)'
    '0+x(4)-x(1)'
    '1-2*x(5)'
    '(x(7))*x(2)*(2-2*x(5))-1'
    '2*x(7)-x(2)+(x(6)-1)^2'
    '0+(x(3)>=0)*x(7)-x(4)'

上面只是个例子,不同的情况会有不同的方程个数,而且这些都是有单引号的,如何fsolve模拟?非常感谢!!!

[ 本帖最后由 ChaChing 于 2010-4-1 11:07 编辑 ]
回复
分享到:

使用道具 举报

发表于 2010-4-1 09:26 | 显示全部楼层
个人水平专业有限, 建议楼主再说清楚些
 楼主| 发表于 2010-4-1 09:59 | 显示全部楼层
已经解决。呵呵,还是感谢楼上的热心
fun1=inline(MEquationString,'x')

我的思路就是先把MEquationString这个字符串构造好,例如:
MEquationString='[x(1)-1-x(2);(x(3)+2*x(5)-2*x(5)^2)*1-x(5)+(0*(x(1)/1)+x(7))*x(2)*(1-x(6))^2-x(6)-x(7)^2-1;0+x(4)-x(1);1-2*x(5);(x(7))*x(2)*(2-2*x(5))-1;2*x(7)-x(2)+(x(6)-1)^2;0+(x(3)>=0)*x(7)-x(4)]'

字符串的形式不是固定的。也就先要写程序构造出这个字符串,然后用inline函数传递, fsolve函数解决

还是感谢chaching!

[ 本帖最后由 ChaChing 于 2010-4-1 11:04 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-29 19:59 , Processed in 0.059837 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表