matlab求多元函数最值在线等
y1=-15.3954*x1+0.1630*x2+0.1133*x3+0.1679*x1^2-0.0002*x2^2-0.0004*x3^2-0.0004*x1^3...
y1= -15.3954*x1+0.1630*x2+0.1133*x3+0.1679*x1^2-0.0002*x2^2-0.0004*x3^2-0.0004*x1^3
展开
4个回答
展开全部
最小值:
fun=inline('(-15.3954*x(1)+0.1630*x(2)+0.1133*x(3)+0.1679*x(1)^2-0.0002*x(2)^2-0.0004*x(3)^2-0.0004*x(1)^3)'); 定义最小值函数
x =
57.775484271854 0.935469699107605 0.916904439913408
f =
-405.911508501718
EXITFLAG =
1
最大值:
fun=inline('-(-15.3954*x(1)+0.1630*x(2)+0.1133*x(3)+0.1679*x(1)^2-0.0002*x(2)^2-0.0004*x(3)^2-0.0004*x(1)^3)') 定义最大值函数
[x,f,EXITFLAG]=fmincon(fun,[1,1,1],[],[],[],[],[rand(),rand(),rand()],[])
x =
0.444703364353194 407.499611143861 141.62469777931
f =
-34.4210889820753
EXITFLAG =
1
fun=inline('(-15.3954*x(1)+0.1630*x(2)+0.1133*x(3)+0.1679*x(1)^2-0.0002*x(2)^2-0.0004*x(3)^2-0.0004*x(1)^3)'); 定义最小值函数
x =
57.775484271854 0.935469699107605 0.916904439913408
f =
-405.911508501718
EXITFLAG =
1
最大值:
fun=inline('-(-15.3954*x(1)+0.1630*x(2)+0.1133*x(3)+0.1679*x(1)^2-0.0002*x(2)^2-0.0004*x(3)^2-0.0004*x(1)^3)') 定义最大值函数
[x,f,EXITFLAG]=fmincon(fun,[1,1,1],[],[],[],[],[rand(),rand(),rand()],[])
x =
0.444703364353194 407.499611143861 141.62469777931
f =
-34.4210889820753
EXITFLAG =
1
Sievers分析仪
2025-01-06 广告
2025-01-06 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准...
点击进入详情页
本回答由Sievers分析仪提供
展开全部
这里x>=0,y>=0时比较好算一点,依据偏导数为零是的点可能为函数极值点来计算:
syms x y z;
z = (1+x)*sqrt((1-x)^2+y^2)+x^2;
dx = diff(z,'x');
dy = diff(z,'y');
%求解dx,dy的偏导数为零的x和y
X = solve('2*x + ((x - 1)^2 + y^2)^(1/2) + ((2*x - 2)*(x + 1))/(2*((x - 1)^2 + y^2)^(1/2))=0','x');
Y = solve('(y*(x + 1))/((x - 1)^2 + y^2)^(1/2)=0','y');
%得到X=y^2/4,Y=0,当偏导数为零时函数取得极值,又有已知条件x,y的范围得到x,y都为零是有极值
x0=0;y0=0;
Z = (1+x0)*sqrt((1-x0)^2+y0^2)+x0^2;
fprintf('极小值为:%i\n',Z);
求采纳为满意回答。
syms x y z;
z = (1+x)*sqrt((1-x)^2+y^2)+x^2;
dx = diff(z,'x');
dy = diff(z,'y');
%求解dx,dy的偏导数为零的x和y
X = solve('2*x + ((x - 1)^2 + y^2)^(1/2) + ((2*x - 2)*(x + 1))/(2*((x - 1)^2 + y^2)^(1/2))=0','x');
Y = solve('(y*(x + 1))/((x - 1)^2 + y^2)^(1/2)=0','y');
%得到X=y^2/4,Y=0,当偏导数为零时函数取得极值,又有已知条件x,y的范围得到x,y都为零是有极值
x0=0;y0=0;
Z = (1+x0)*sqrt((1-x0)^2+y0^2)+x0^2;
fprintf('极小值为:%i\n',Z);
求采纳为满意回答。
追问
这个我看到过,不是我要求的,你看看我要求的函数吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
由于函数变量比较多,所以初始值的取值可能对结果影响很大
甚至有时会不收敛
这里采取了随机数作为初始值,知道收敛位置的做法
的到一个极值,521.8202
我试了一下,在比较大的范围内,极值都是收敛于这个值
但是在某些范围是不能够得到收敛的极值的
实际上你的这个函数是没有最值的,只是在某区域有个极值
fun=@(x) -15.3954*x(1)+0.1630*x(2)+0.1133*x(3)+0.1679*x(1)^2-0.0002*x(2)^2-0.0004*x(3)^2-0.0004*x(1)^3;
flag=0;
while (flag~=1);
[x,fval,flag] = fminsearch(@(x) -fun(x),1000*rand(1,4));
end
disp(['当x1-x4的取值' num2str(x) '时']);
disp(['函数有极大值' num2str(-fval)]);
结果:
当x1-x4的取值222.0579 407.4999 141.625 199.4355时
函数有极大值521.8202
甚至有时会不收敛
这里采取了随机数作为初始值,知道收敛位置的做法
的到一个极值,521.8202
我试了一下,在比较大的范围内,极值都是收敛于这个值
但是在某些范围是不能够得到收敛的极值的
实际上你的这个函数是没有最值的,只是在某区域有个极值
fun=@(x) -15.3954*x(1)+0.1630*x(2)+0.1133*x(3)+0.1679*x(1)^2-0.0002*x(2)^2-0.0004*x(3)^2-0.0004*x(1)^3;
flag=0;
while (flag~=1);
[x,fval,flag] = fminsearch(@(x) -fun(x),1000*rand(1,4));
end
disp(['当x1-x4的取值' num2str(x) '时']);
disp(['函数有极大值' num2str(-fval)]);
结果:
当x1-x4的取值222.0579 407.4999 141.625 199.4355时
函数有极大值521.8202
追问
x4是什么?
追答
这个写错,多出来的 可以不用管,就是这句3写了4多给了一个初值
[x,fval,flag] = fminsearch(@(x) -fun(x),1000*rand(1,3));
前面三个数是x1~x3没有问题
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-08-25
展开全部
>> f=@(x)-15.3954*x(1)+0.1630*x(2)+0.1133*x(3)+0.1679*x(1)^2-0.0002*x(2)^2-0.0004*x(3)^2-0.0004*x(1)^3;
>> [x,fv]=fminsearch(f,[0,0,0])
Exiting: Maximum number of function evaluations has been exceeded
- increase MaxFunEvals option.
Current function value: -8421906140161461600000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000
x =
1.0e+35 *
0.2761 0.0955 -6.4727
fv =
-8.4219e+99
初始点选择不同,多少会有些影响
>> [x,fv]=fminsearch(f,[0,0,0])
Exiting: Maximum number of function evaluations has been exceeded
- increase MaxFunEvals option.
Current function value: -8421906140161461600000000000000000000000000000000000000000000000000000000000000000000000000000000000.000000
x =
1.0e+35 *
0.2761 0.0955 -6.4727
fv =
-8.4219e+99
初始点选择不同,多少会有些影响
追问
你能够求出最值点时x1,x2,x3的值吗?
追答
x不是有三个值吗?
x1=0.2761 x2=0.0955 x3=-6.4727
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询