求MATLAB编程表达式 5
求y=n1/30+n2/50最小值和x1、x2值约束条件:3.8969+0.8657*x1*x2=5x1=lg(n1)x2=lg(n2)...
求y=n1/30+n2/50最小值和x1、x2值
约束条件:3.8969+0.8657*x1*x2=5
x1=lg(n1)
x2=lg(n2) 展开
约束条件:3.8969+0.8657*x1*x2=5
x1=lg(n1)
x2=lg(n2) 展开
1个回答
展开全部
syms n1 n2 %符号n1 n2
x1=log10(n1); %x1表达式
x2=log10(n2); %x2表达式
y=n1/30+n2/50; %y表达式
sn2=solve(3.8969+0.8657*x1*x2-5,n2); %用n1表示n2
yy=subs(y,n2,sn2); %代入函数y,yy是关于n1的一元函数
fun=@(n1) eval(yy); %将符号表达式转化为函数
minn1=fminsearch(fun,1); %利用fminsearch找到函数y取最小值时的n1值minn1
minn2=subs(sn2,n1,minn1);%计算取最小值时的n2值minn2
minv=fun(minn1); %计算函数的最小值 minv
minx1=log10(minn1); %计算x1最小值 minx1
minx2=log10(minn2); %计算x2最小值 minx2
minx1,minx2,minv
结果
minx1 =
1.0515
minx2 =
1.2118
minv =
0.7010
表示当x1取1.0515,x2取1.2118时,函数有最小值0.7010
x1=log10(n1); %x1表达式
x2=log10(n2); %x2表达式
y=n1/30+n2/50; %y表达式
sn2=solve(3.8969+0.8657*x1*x2-5,n2); %用n1表示n2
yy=subs(y,n2,sn2); %代入函数y,yy是关于n1的一元函数
fun=@(n1) eval(yy); %将符号表达式转化为函数
minn1=fminsearch(fun,1); %利用fminsearch找到函数y取最小值时的n1值minn1
minn2=subs(sn2,n1,minn1);%计算取最小值时的n2值minn2
minv=fun(minn1); %计算函数的最小值 minv
minx1=log10(minn1); %计算x1最小值 minx1
minx2=log10(minn2); %计算x2最小值 minx2
minx1,minx2,minv
结果
minx1 =
1.0515
minx2 =
1.2118
minv =
0.7010
表示当x1取1.0515,x2取1.2118时,函数有最小值0.7010
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询