声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 982|回复: 4

[编程技巧] 急求请教大侠:变系数的最优怎么编写!!

[复制链接]
发表于 2009-5-30 23:23 | 显示全部楼层 |阅读模式

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

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

x
通过其他程序得出下面几个数值
a=cl_ma(1);b=cl_ma(2);c=cd_ma(1);d=cd_ma(2);e=cd_ma(3);r=r1(1);
由于cl_ma,cd_ma是变化的,所以赋值给全局变量
然后用a,b,c,d,e怎么编写最优化的程序呢?我试了N回没弄明白

g = fmin('-(a*x+b)/(c*x.^2+d*x+e)',0,r)
这个肯定不行
然后换成
fun=‘-(a*x+b)/(c*x.^2+d*x+e)’
g = fmin(fun,0,r)
还是一样的
请问该怎么做呢,现在很着急,因为现在程序就差这一块。。
回复
分享到:

使用道具 举报

发表于 2009-5-30 23:55 | 显示全部楼层
compare pls !
ff='x^3-2*x-5'; x = fmin(ff, 0, 2)
a=-2;b=-5; ff=['x^3',num2str(a),'*x',num2str(b)], x = fmin(ff, 0, 2)
 楼主| 发表于 2009-5-31 00:03 | 显示全部楼层
感谢主任,万分感谢
 楼主| 发表于 2009-5-31 00:27 | 显示全部楼层
还有个问题,按这种方法的话,如果其中有个变量是正负号都有的话,怎么写?
我试了下,是直接转换成字符格式,但是如果正负号变换的话,ff就会出问题啊
a=4;b=2;c=4;d=2;e=1;
>> ff=['-(',num2str(a),'*x',num2str(b),')/(',num2str(c),'*x.^2+',num2str(d),'*x+',num2str(e),')']
这个结果是ff =
-(4*x2)/(4*x.^2+2*x+1)。。。如果加上+号,但是一旦变成负值,就会变成
a=4;b=-2;c=4;d=2;e=1;
>>  ff=['-(',num2str(a),'*x+',num2str(b),')/(',num2str(c),'*x.^2+',num2str(d),'*x+',num2str(e),')']
ff=-(4*x+-2)/(4*x.^2+2*x+1)
这样也不行啊
在fmin计算的时候就会出错啊
发表于 2009-5-31 11:30 | 显示全部楼层
help num2str
试试
a=10.5;b=-10; ff=['x^3',num2str(a,'%+5d'),'*x',num2str(b,'%+5d')], x = fmin(ff, 0, 2)

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-17 03:27 , Processed in 0.055736 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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