用matlab求三元二次方程值最大值问题 20
y=-307.36+7.2032.*x1-1.7374.*x2-0.0226.*x1.^2+0.0037.*x2.^2+0.0001*x1*x2请问可以用matlab求这...
y=-307.36+7.2032.*x1-1.7374.*x2-0.0226.*x1.^2+0.0037.*x2.^2+0.0001*x1*x2
请问可以用matlab求这个方程的最大值吗?具体程序 展开
请问可以用matlab求这个方程的最大值吗?具体程序 展开
3个回答
展开全部
x =[ 4605143138873093971247104.0, -14499578694165530694123520.0]
即x1=4605143138873093971247104.0 ,x2= -14499578694165530694123520.0
g =(-2.9191657175978311594205307444434)*10^47
j即 最大值ymax=2.9191657175978311594205307444434*10^47
fun=inline('-(-307.36+7.2032.*x(1)-1.7374.*x(2)-0.0226.*x(1).^2+0.0037.*x(2).^2+0.0001*x(1)*x(2))')
[x,g]=fminsearch(fun,[0,0])
即x1=4605143138873093971247104.0 ,x2= -14499578694165530694123520.0
g =(-2.9191657175978311594205307444434)*10^47
j即 最大值ymax=2.9191657175978311594205307444434*10^47
fun=inline('-(-307.36+7.2032.*x(1)-1.7374.*x(2)-0.0226.*x(1).^2+0.0037.*x(2).^2+0.0001*x(1)*x(2))')
[x,g]=fminsearch(fun,[0,0])
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先写一个程序:
function [f]=objfun2(x)
f=-(307.36+7.2032.*x(1)-1.7374.*x(2)-0.0226.*x(1).^2+0.0037.*x(2).^2+0.0001*x(1)*x(2));
保存为objfun2.m
然后在同目录下写第二个程序:
[x,fval] = fminsearch(@objfun2,[0,0])
得到结果是unbounded。
这里用的是melder方法做的优化,如果要用gradient method,可以尝试fminunc.
function [f]=objfun2(x)
f=-(307.36+7.2032.*x(1)-1.7374.*x(2)-0.0226.*x(1).^2+0.0037.*x(2).^2+0.0001*x(1)*x(2));
保存为objfun2.m
然后在同目录下写第二个程序:
[x,fval] = fminsearch(@objfun2,[0,0])
得到结果是unbounded。
这里用的是melder方法做的优化,如果要用gradient method,可以尝试fminunc.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个用粒子群优化算法可以解。网上有很多这种程序,可以去搜下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询