查看单个帖子
旧 2009-03-13, 18:09   #2
20wangz
初级会员
 
注册日期: 2007-12-29
帖子: 7
声望力: 0
20wangz 正向着好的方向发展
默认 回复: [求助]高手来帮帮我吧 MATLAB优化的问题!???

我也是低手,试着回答你的问题吧。

第一个问题:安装Matlab的时候就有机会选择安装它的哪些工具箱,其中就包括优化工具箱,英文是optimization toolbox。你做优化工作当然要选择这个安装这个工具箱,否则,许多函数根本就不存在,你在matlab中当然更无法使用。

第二个问题:不知道你是从哪里的书上拷的程序,反正在我看来问题是很多的,也许人家没有问题是我不懂吧。我觉得问题主要有这么几个:

(一)看你的架势,程序的上半部分原本应该是个脚本文件的,可你却使用的是函数的定义方法,并且也还是错的!脚本文件无需你程序中的第一句;函数文件的定义方法是function [y1,y2,...]=funname(x1,x2,...)。你两头都没有靠上,程序当然无法正常运行。因为你使用了function关键字,语法却又不正确,matlab认为你是想定义函数,所以提示你函数不允许在命令行或脚本文件中定义。

(二)程序的后半部分应该单独存为一个函数文件的,文件名可以就叫objfunc.m,而不应该混在上面的脚本文件当中。

(三)你的fprintf弄了三句,其实没有什么必要,一句话就可以搞定的。如写成:fprintf('Results:\nOptimum solution:%f\nObjective value:%f\n',x,fval)。这么写可能看上去简洁些,不过不影响程序的正确性。

最后,建议你好好看一下函数文件与脚本文件的区别,以及函数文件的定义方法。

有说得不对的地方,请指正。
20wangz 当前离线   回复时引用此帖