1011820111 发表于 2009-5-30 23:23

急求请教大侠:变系数的最优怎么编写!!

通过其他程序得出下面几个数值
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)
还是一样的
请问该怎么做呢,现在很着急,因为现在程序就差这一块。。

ChaChing 发表于 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)

1011820111 发表于 2009-5-31 00:03

感谢主任,万分感谢

1011820111 发表于 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计算的时候就会出错啊

ChaChing 发表于 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]
查看完整版本: 急求请教大侠:变系数的最优怎么编写!!