24小时热门版块排行榜    

查看: 2840  |  回复: 10

zhonggsydx

木虫 (小有名气)

[求助] MATLAB求解多元二次函数极小值

请用MATLAB帮忙求解,给出计算过程。
在满足:5≤x1≤35;350≤x2≤450;70≤x3≤90;10≤x4≤30的前提下,
求y=0.38-11.7*x1-0.5*x2-1.2*x3-0.42*x4+21.6*x1*x1-0.25*x2*x2-0.02*x3*x3-0.32*x4*x4+1.36*x1*x2+4.52*x1*x3+1.16*x1*x4+0.13*x2*x3+0.29*x2*x4+0.06*x3*x4的极小值。
谢谢!
回复此楼
一将功成万骨枯
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

yqx1985

木虫 (著名写手)

云中仙


fegg7502: 金币+1, 鼓励交流,谢谢 2013-08-26 10:42:17
内容已删除

» 本帖已获得的红花(最新10朵)

人面不知何时去,桃花依旧笑春风
5楼2013-08-25 17:46:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

yqx1985

木虫 (著名写手)

云中仙

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
zhonggsydx: 金币+50, ★★★★★最佳答案, 万分感谢~~ 2013-08-25 19:52:55
fegg7502: 金币+2, 3ks 2013-08-26 10:41:45
Matlab 代码如下
% 1. 首先将你的表达式编写为函数
function  y=zhonggsydx(x)
x1=x(1);x2=x(2);x3=x(3);x4=x(4);
y=0.38-11.7*x1-0.5*x2-1.2*x3-0.42*x4+21.6*x1*x1-0.25*x2*x2-0.02*x3*x3-0.32*x4*x4+1.36*x1*x2+4.52*x1*x3+1.16*x1*x4+0.13*x2*x3+0.29*x2*x4+0.06*x3*x4;

% 2.  搞定后直接在Matlab中输入
[x,fval] = ga(@zhonggsydx,4,[],[],[],[],[5,350,70,10],[35,450,90,30]);

% 3. fval就是最小值,x是y最小值时,四个输入参数的值。
人面不知何时去,桃花依旧笑春风
2楼2013-08-25 17:39:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yqx1985

木虫 (著名写手)

云中仙

【答案】应助回帖


fegg7502: 金币+1, 应助指数+1, 3ks 2013-08-26 10:41:53
1stOpt代码更简单,如下

Title "zhonggsydx min";
Parameters x1=[5,35]; x2=[350,450];x3=[70,90]; x4=[10,30];
Minimum;
Function 0.38-11.7*x1-0.5*x2-1.2*x3-0.42*x4+21.6*x1*x1-0.25*x2*x2-0.02*x3*x3-0.32*x4*x4+1.36*x1*x2+4.52*x1*x3+1.16*x1*x4+0.13*x2*x3+0.29*x2*x4+0.06*x3*x4;
人面不知何时去,桃花依旧笑春风
3楼2013-08-25 17:40:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yqx1985

木虫 (著名写手)

云中仙

【答案】应助回帖


fegg7502: 金币+1, 鼓励交流 2013-08-26 10:41:59
1stOpt代码错了,Parameters 后面每项是逗号不是分号。

Title "zhonggsydx min";
Parameters x1=[5,35], x2=[350,450], x3=[70,90], x4=[10,30];
Minimum;
Function 0.38-11.7*x1-0.5*x2-1.2*x3-0.42*x4+21.6*x1*x1-0.25*x2*x2-0.02*x3*x3-0.32*x4*x4+1.36*x1*x2+4.52*x1*x3+1.16*x1*x4+0.13*x2*x3+0.29*x2*x4+0.06*x3*x4;
人面不知何时去,桃花依旧笑春风
4楼2013-08-25 17:44:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhonggsydx

木虫 (小有名气)

送红花一朵
引用回帖:
5楼: Originally posted by yqx1985 at 2013-08-25 17:46:05
从计算结果来看
Matlab
最小值 -39975.8624572505
此时四个参数为 5.02799906532263        449.999850355964        75.6150633536733        10

1stOpt
最小值 -40444.3199843237
此时四个参数为
x1: 5.0000000136995
x2: 45 ...

谢谢!我最近试着学了 1stOpt ,但是用软件中不同的求解方法得出的结果相差比较大,很是困惑。
一将功成万骨枯
6楼2013-08-25 19:55:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhonggsydx

木虫 (小有名气)

引用回帖:
2楼: Originally posted by yqx1985 at 2013-08-25 17:39:41
Matlab 代码如下
% 1. 首先将你的表达式编写为函数
function  y=zhonggsydx(x)
x1=x(1);x2=x(2);x3=x(3);x4=x(4);
y=0.38-11.7*x1-0.5*x2-1.2*x3-0.42*x4+21.6*x1*x1-0.25*x2*x2-0.02*x3*x3-0.32*x4*x4+1.36*x1 ...

您好!
按您的做法,有时候求解时会出现
??? Error using ==> ga at 265
GA only accepts inputs of data type double.
请问怎么回事?
一将功成万骨枯
7楼2013-08-25 23:38:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yqx1985

木虫 (著名写手)

云中仙

引用回帖:
7楼: Originally posted by zhonggsydx at 2013-08-25 23:38:18
您好!
按您的做法,有时候求解时会出现
??? Error using ==> ga at 265
GA only accepts inputs of data type double.
请问怎么回事?...

有时候会出现错误,有时候不会出现吗?
你的Matlab版本是?
人面不知何时去,桃花依旧笑春风
8楼2013-08-26 12:35:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhonggsydx

木虫 (小有名气)

引用回帖:
8楼: Originally posted by yqx1985 at 2013-08-26 12:35:05
有时候会出现错误,有时候不会出现吗?
你的Matlab版本是?...

我的版本是MATLAB 7.11.0(R2010b)。换了台电脑,用高版本的MATLAB可以计算出来。难道我的MATLAB缺函数?
一将功成万骨枯
9楼2013-08-26 13:33:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yqx1985

木虫 (著名写手)

云中仙


dbb627: 金币+1, 谢谢指导 2013-08-27 19:45:49
引用回帖:
9楼: Originally posted by zhonggsydx at 2013-08-26 13:33:22
我的版本是MATLAB 7.11.0(R2010b)。换了台电脑,用高版本的MATLAB可以计算出来。难道我的MATLAB缺函数?...

对的,高版本的matlab和低版本的matlab中的GA函数调用上是有区别的。我的是在2012是上编的
人面不知何时去,桃花依旧笑春风
10楼2013-08-26 13:51:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhonggsydx 的主题更新
信息提示
请填处理意见