链接:https://pan.baidu.com/s/1nJ5Qq5Kvz-Ie3T8VMATiAg
?pwd=6v9u 提取码:6v9u简介:《MATLAB智能算法30个案例分析(第2版)》可作为本科毕业设计、研究生项目设计、博渣运镇士低年级课题设计参考书籍,同时对广大科研人员也有很高的参考价值悄绝.
在仿真测试阶段,原代码是档腊哪:[Predict_1,error_1] = svmpredict(tn_train,pn_train,model)这个代码运行出来后,predict_1和error_1都是空矩局培阵,图行码自然出错。
需要改为:[Predict_1,error_1,decision_values1] = svmpredict(tn_train,pn_train,model)
你好
像这样的求最小值,可以用很多算法,可以用命令窗口编程,或者利用磨裤扒优化工具箱。对于初学者,可以利用optimization toolbox里面算法,只要自己写一个目标函数就可以了。
一般的有约束多变量函数都可以通过fmincon函数求解得到,但是如果初始值选取不恰当也可以可以陷入局部最优。全局最优搜索能力比较强的可能属智能算法了,如遗传算法等等下面我采用fmincon函数尝试求解:
目标函数写好好,保存为funmint.m文件,函数如下
function Z=funmint(x)x1=x(1)
x2=x(2)
x3=x(3)
x4=x(4)
S1=x(5)
S2=x(6)
eg=64.11-0.043-0.49*x2-0.06*x3-0.075*x4-3.258e-4*x1*x2+9.712e-5*x1*x3...
+2.781e-4*x1*x4-4.738e-5*x2*x3-1.212e-3*x2+6.053e-4*x3*x4+...
7.775e-4*x1^2+1.125e-3*x2^2-8.665e-4*x3^2+5.89e-3*x4^2
sd=-6.02953+0.03583*x1+0.067595*x2-2.90115e-3*x3-0.053463*x4-1.7325e-4*x1*x2+...
1.1525e-4*x1*x3-7.4375e-5*x1*x4-6.3375e-5*x2*x3+4.03125e-4*x2*x4-...
3.16562e-4*x3*x4+3.625e-6*x1^2-1.07375e-4*x2^2-2.68437e-5*x3^2-3.27344e-4*x4^2
Z=sd+1e7*abs(-eg+0.0518*sd+S1)+1e7*abs(0.1-eg-0.0518*sd+S2)
在命令窗口中输入下面这些求解代码:
clearlb=[60 瞎昌235 40 21 0 0]
ub=[80 255 80 29 Inf Inf]
x0=[70 245 60 25 10 10]
options=optimset('Algorithm','active-set')
[x,fval]= fmincon(@funmint,x0,[],[],[],[],lb,ub,[],options)
可以得到一个最小值,以及对应的6个变量如下:
x=[62.9860 244.9435 74.5278 21.3001 1.8670 2.0691]
最小值为:
fval=3.4326
当然你也可以换用其他函数,只要把纯悉fmincon换了就可以。优化函数结构都差不多。
希望对你有帮助!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)