matlab里解最优化函数,matlab最优化问题求解中,复杂的目标函数和约束条件无法直接表示的问题...

请问,如果matlab 优化当中, 目标函数 和 约束条件都很复杂,没有办法直接用x 表示出来,该怎么处理?     而且,对于要求出的x, 我有多个目标函数,这又该如何处理?

例如:

图像1, 图像2 ,图像3, 图像4,图像5 。。图像10 , 根据这10个图像,求最优解x ,目标是 :5个图像使用x(向量)作为权重叠加之后的图像中的叠加图像中的某个部分的值为优化目标。

主函数:imageVectorChild里面存了 10个图像的向量形式。

----------

x0=2*rand(1,size(imageVectorChild,2))-1;  % 10个随机数作为参数x的初始值

options = optimoptions(@fmincon,'display','iter');

Aeq=ones(1,endPic-startPic+1);  % 想说让x的和是1,作为约束,不过也可以不要这个约束

beq=1;                                        %约束可以任意,不是重点

[x,resnorm] = fmincon(@objfun2,x0,[],[],Aeq,beq,[],[],[],options,imageVectorChild)

优化(目标)函数:objfun2.m

--------------

function Objval = objfun2(x,imageVectorChild)

finalImage = x * imageVectorChild;   %   就是利用x系数,把10个图像简单的叠加在一起。相当于:x(1).*图像1+x(2).*图像2+x(3).*图像3+。。。

theta = direction(finalImage )  %  根据叠加结果,求得方向场角度theta, 这里面对finalImag进行了复杂的转化。所以x已经无法直接表示成为theta。同时,theta也是一个向量。

theta(1) = 0.24  % 优化目标

theta(2) = 0.38  % 优化目标

。。。

theta (m) = 0.42  % 优化目标

也就是说优化目标有多个,数量根据theta向量的维度决定。 同时,优化目标也不应该用等式表示,也不清楚该怎么表示。

例如: 如果优化目标就只有一个,可以用 Objval  = theta(1) - 0.24  。

麻烦了解的同学 给些指导  真谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值