Matlab 优化工具箱目标函数写法
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/17 17:07:59
Matlab 优化工具箱目标函数写法
我现在需要做一个线性规划.目前函数是这样的:目标函数建立了一个m文件:
function [ output] = Caly(x,A,B )
%A和B是固定的两个值,因为每次优化都需要导入不同的A和B,所以只能这么写了.
for i=1:A
output=x(1)+B*x(2);
end
我希望对这里面的x进行优化,怎么处理?
x有个范围,是整数.
感谢各位网友热心回答,针对我没有描述清楚的问题,我再补充说明一下:
一.是这样的,问题的关键是我如何修改或者能够使用matlab解决我这个目标函数优化问题,也许是我的定义有误,他可能不是个线性规划问题,仅仅是需要拿matlab解决的优化问题.
二.我想说明的问题是A、B都是已知的参数.
假设A=[10,5,6……],B=[1,2,3;4,5,6;……]
假设其中x1,x2的取值范围是[10,100],和[0,1000]
即第一次优化目标函数时,A=10,B=[1,2,3]
第二次优化这个目标时,A=5,B=[4,5,6]
三.抱歉,函数没写清楚.
function [ output] = Caly(x,A,B )
output=0;
for i=1:A
output=output+x(1)+B*x(2);
end
output;
end
我现在需要做一个线性规划.目前函数是这样的:目标函数建立了一个m文件:
function [ output] = Caly(x,A,B )
%A和B是固定的两个值,因为每次优化都需要导入不同的A和B,所以只能这么写了.
for i=1:A
output=x(1)+B*x(2);
end
我希望对这里面的x进行优化,怎么处理?
x有个范围,是整数.
感谢各位网友热心回答,针对我没有描述清楚的问题,我再补充说明一下:
一.是这样的,问题的关键是我如何修改或者能够使用matlab解决我这个目标函数优化问题,也许是我的定义有误,他可能不是个线性规划问题,仅仅是需要拿matlab解决的优化问题.
二.我想说明的问题是A、B都是已知的参数.
假设A=[10,5,6……],B=[1,2,3;4,5,6;……]
假设其中x1,x2的取值范围是[10,100],和[0,1000]
即第一次优化目标函数时,A=10,B=[1,2,3]
第二次优化这个目标时,A=5,B=[4,5,6]
三.抱歉,函数没写清楚.
function [ output] = Caly(x,A,B )
output=0;
for i=1:A
output=output+x(1)+B*x(2);
end
output;
end
很多条件不明确:1、【每次优化都需要导入不同的A和B】,到底A和B是什么?2、【x有个范围,是整数】,也就是说还有其他约束条件,为什么不给出来?3、我很怀疑,这样的目标函数还算是线性规划吗?当然,由于前面说的【x是整数】,已经决定了这是整数规划问题.
再问: 一.是这样的,也许是我的定义有误,他可能不是个线性规划问题,仅仅是需要拿matlab解决的优化问题。
二. 我想说明的问题是A、B、x的取值范围都是已知的参数。
假设A=[10,5,6……],B=[1,2,3;4,5,6;……]
假设其中x1,x2的取值范围是[10,100],和[0,1000]
即第一次优化目标函数时,A=10,B=[1,2,3]
第二次优化这个目标时,A=5,B=[4,5,6]
等等……
再答: 1、还是没说清楚A和B到底是什么。猜测:A是一个向量,B是矩阵,A的元素个数和B的行数相同,每次调用取A的一个元素和B的一行?A的元素是整数吗?那么,目标函数的代码for i=1:A
output=output+x(1)+B*x(2);
end又怎么理解?B*x(2)不成向量了? 2、所谓【第一次优化】【第二次优化】是什么意思?对同一个问题,有多组数据,进行多次优化,得到多组结果?如果是这个意思,可以做,方法或者是用附加参数的方式,或者用嵌套函数(nested function)。在优化过程中,每次调用目标函数都换一组数据?如果是这个意思,很遗憾,应该是做不到的,因为MATLAB的优化函数都是把所有的条件一次性提交,而且一个优化步骤可能多次调用目标函数,用户是无法分辨优化进行到哪一步的。而且,目标函数的参数反复变化,可能导致问题根本无法收敛。 建议楼主把原始问题贴出来,你建立的模型可能从思路上就是错的,那样再怎么做也无法得到正确答案的。
再问: 能否站内信我,我们详细交流一下。谢谢 双月r
再答: 我觉得是这样:你如果能静下心来,好好梳理一下思路,应该是能够把问题表达清楚的;但如果以现在这样的草率态度,我和你反复互动,会浪费很多时间。
你不妨看一看我上面回答你的内容,无论是表述还是排版,我都是认真对待的,连错别字都尽量避免,目的就是能尽量准确地把问题指出,避免无谓的反复。将心比心,态度稍微认真一些,尽可能表达清楚,是做研究的基本要求,也是对别人的起码尊重。
忠言逆耳,希望不会引起你的不快。但假如你对我所说的很介意,那我也就没什么可说的了。
再问: 一.是这样的,也许是我的定义有误,他可能不是个线性规划问题,仅仅是需要拿matlab解决的优化问题。
二. 我想说明的问题是A、B、x的取值范围都是已知的参数。
假设A=[10,5,6……],B=[1,2,3;4,5,6;……]
假设其中x1,x2的取值范围是[10,100],和[0,1000]
即第一次优化目标函数时,A=10,B=[1,2,3]
第二次优化这个目标时,A=5,B=[4,5,6]
等等……
再答: 1、还是没说清楚A和B到底是什么。猜测:A是一个向量,B是矩阵,A的元素个数和B的行数相同,每次调用取A的一个元素和B的一行?A的元素是整数吗?那么,目标函数的代码for i=1:A
output=output+x(1)+B*x(2);
end又怎么理解?B*x(2)不成向量了? 2、所谓【第一次优化】【第二次优化】是什么意思?对同一个问题,有多组数据,进行多次优化,得到多组结果?如果是这个意思,可以做,方法或者是用附加参数的方式,或者用嵌套函数(nested function)。在优化过程中,每次调用目标函数都换一组数据?如果是这个意思,很遗憾,应该是做不到的,因为MATLAB的优化函数都是把所有的条件一次性提交,而且一个优化步骤可能多次调用目标函数,用户是无法分辨优化进行到哪一步的。而且,目标函数的参数反复变化,可能导致问题根本无法收敛。 建议楼主把原始问题贴出来,你建立的模型可能从思路上就是错的,那样再怎么做也无法得到正确答案的。
再问: 能否站内信我,我们详细交流一下。谢谢 双月r
再答: 我觉得是这样:你如果能静下心来,好好梳理一下思路,应该是能够把问题表达清楚的;但如果以现在这样的草率态度,我和你反复互动,会浪费很多时间。
你不妨看一看我上面回答你的内容,无论是表述还是排版,我都是认真对待的,连错别字都尽量避免,目的就是能尽量准确地把问题指出,避免无谓的反复。将心比心,态度稍微认真一些,尽可能表达清楚,是做研究的基本要求,也是对别人的起码尊重。
忠言逆耳,希望不会引起你的不快。但假如你对我所说的很介意,那我也就没什么可说的了。
用matlab的optimization工具箱遗传算法做函数优化问题:
怎样使用Matlab工具箱函数
求MATLAB工具箱函数汇总
用matlab的optimization工具箱遗传算法优化函数,被优化的函数和条件约束如下,请问为会有报错(图片)
matlab的遗传算法优化工具箱怎么用?
运用MATLAB遗传算法工具箱求解非线性多目标优化问题,
matlab中怎么查看工具箱中的函数
MATLAB神经网络工具箱newff()函数相关问题,
用matlab求解一个优化问题(目标函数非线性,约束函数线性)
非线性约束优化 目标函数和约束函数 在matlab中出错
matlab自己编写的函数可以包含工具箱函数吗
MATLAB优化计算优化计算在工程技术、科学研究和经济管理等很多方面有广泛的运用,熟悉MATLAB优化工具箱,利用MAT