声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1686|回复: 12

[综合讨论] 一个优化问题

[复制链接]
发表于 2007-6-20 22:10 | 显示全部楼层 |阅读模式

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

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

x
问题是:有一个AX=b的线性方程组,X是n*1的未知数矩阵,A是n*n的系数矩阵,b是n*1的数矩阵。
              A系数矩阵中有m个参数,这些参数有确定的取值范围,所以,可以说这个方程组为符号方程组。
现在是,比如给定一组m个参数,然后解AX=b方程,得到一组X值,然后用这组X值求一个关系式F(X),使得F(X)最小。求得这时的m个参数、X值、F(X)。

不知道我说明白了没有。希望大家给我一个建议,谢谢!
回复
分享到:

使用道具 举报

发表于 2007-6-20 22:42 | 显示全部楼层
问题本身挺清楚,不过你自己有什么问题好像不太清楚哦:@)
发表于 2007-6-20 23:33 | 显示全部楼层
请直接将问题及你的处理贴出来,以便他人给出建议.
发表于 2007-6-21 07:00 | 显示全部楼层
大概属于有约束优化问题
 楼主| 发表于 2007-6-21 15:22 | 显示全部楼层
不知道该怎么说,因为源程序很长。

我用一个小例子吧,A=[2*a,1,1;1,b,c;2*b,c,0],X=[x;y;z],b=[0;1;0],
其中,参数a,b,c,有一定范围,0<a<1,1<b<2,2<c<3,
当给定一组:a=0.5,b=1.5,c=2.5,这时,解方程组AX=b(方程组直接用X=A\b解就行,这个我会),然后得到一组X的解,用这组X求的一个F(X),反复取abc直到F(X)最小。

我的问题是,不知道该怎么实现反复在abc的取值范围内达到F(X)最小。就是,我不能每次自己输进去一个abc,然后看看F(X)是多少,再输进一次abc,看看F(X)是多少,再比较一下这两次的F(X),哪个最小。把abc的组合输遍,找到最小的F(X)。我想让大家帮我实现这个。
不知道这次说清楚了么有。
发表于 2007-6-21 17:21 | 显示全部楼层
通过线性方程组先将x、y、z的解析解求出来(包含a、b、c),再代入F(X),然后用一般的优化方法求F(X)的最小值不行吗?
发表于 2007-6-21 17:23 | 显示全部楼层
好像没那么复杂,随便找本线性规划书看看。
我是差不多忘干净了
 楼主| 发表于 2007-6-22 09:26 | 显示全部楼层
谢谢各位
我用了一个三重循环,设一定步长,取遍所有的abc组合,找到最小的F(X)。
发表于 2007-6-22 09:53 | 显示全部楼层
matlab里面不建议用循环  浪费了工具箱了  建议试试fmincon

评分

1

查看全部评分

 楼主| 发表于 2007-6-22 10:05 | 显示全部楼层
我也这么想的,这样做个循环计算起来很慢,比较无奈的方法
但是,还不知道用什么好
你说的我试试吧
谢谢
发表于 2007-6-22 16:25 | 显示全部楼层
s=solve('2*a*x+y+z=0','x+b*y+c*z=0','c*y=1','x','y','z');
求出x、y、z的表达式代入f,求得f的解析表达式,再求极值不好吗?
发表于 2007-6-22 18:00 | 显示全部楼层
带目标的优化问题,建议看看智能算法方面的书,比如蚁群算法,粒子群算法等
 楼主| 发表于 2007-6-25 15:55 | 显示全部楼层

回复 #11 TurtleRock 的帖子

源程序里,如果将abc直接用符号方进去计算的话,构成的方程组就成非线性方程组了,因为,有abc的地方有ln、平方计算。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-14 06:59 , Processed in 0.069731 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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