matlab中,两个自变量的函数怎么求最大值(急急急急!!1)

请举例说明

需求:利用matlab求解二元函数 y=f(x1,x2)
=(339-0.01*x1-0.003*x2)*x1 +(399-0.004*x1-0.01*x2)*x2-(400000+195*x1+225*x2) 的最大值
步骤:1、syms x1 x2;
2、y=(339-0.01*x1-0.003*x2)*x1+(399-0.004*x1-0.01*x2)*x2-(400000+195*x1+225*x2) 得 y = - 195*x1 - 225*x2 - x1*(x1/100 + (3*x2)/1000 - 339) - x2*(x1/250 + x2/100 - 399) - 400000
3、y=simple(y) 得 y = - x1^2/100 - (7*x1*x2)/1000 + 144*x1 - x2^2/100 + 174*x2 - 400000
4、求偏导 dydx1=diff(y,x1) 得 dydx1 = 144 - (7*x2)/1000 - x1/50 dydx2=diff(y,x2) 得 dydx2 = 174 - x2/50 - (7*x1)/1000
5、令偏导等于0,解方程 S=solve(dydx1,dydx2) 得 S = x1: [1x1 sym] x2: [1x1 sym]
6、显示结果 S.x1 得 ans = 554000/117 S.x2 得 ans = 824000/117
7、把得到的结果代入原f(x1,x2),求最大y值:
y=subs(y,x1,554000/117); y=subs(y,x2,824000/117) 得 y = 5.5364e+005
当然,该最大值是不是真正的最大值,还需要进一步结合实际情况验证(通过画出图形,观察二阶导数的符号等)。比如,syms x1 x2; y=(339-0.01*x1-0.003*x2)*x1+(399-0.004*x1-0.01*x2)*x2-(400000+195*x1+225*x2);然后使用 ezsurf(y,[0 10000],[0 10000]);就可以得到三维的图形如下图所示:
可以看到,在感兴趣区间内,函数是有最大值的,即上面求出的y = 5.5364e+005,在x1=554000/117,x2=824000/117处取得。
温馨提示:内容为网友见解,仅供参考
无其他回答

matlab中,两个自变量的函数怎么求最大值(急急急急!!1)
需求:利用matlab求解二元函数 y=f(x1,x2)=(339-0.01*x1-0.003*x2)*x1 +(399-0.004*x1-0.01*x2)*x2-(400000+195*x1+225*x2) 的最大值 步骤:1、syms x1 x2;2、y=(339-0.01*x1-0.003*x2)*x1+(399-0.004*x1-0.01*x2)*x2-(400000+195*x1+225*x2) 得 y...

matlab已知自变量的取值范围求最大值
1、根据函数表达式为f=QR(1-D),自定义其目标函数,fmincon_fun(x),即 f=-Q*R*(1-D); 这里负号表示最大值 2、根据约束条件,自定义其约束函数,fmincon_con(x),即 g(1)=Q-10; %Q>10;g(2)=R-0.04; %R>0.04 g(3)=100-Q; %Q<100 g(4)=0.14-R; %R<0.14 g(5)=...

怎样用MATLAB拟合两个自变量的函数系数和指数?
function shiyan2 x1 = linspace( 0.5, 10, 15 );x2 = linspace( 10, 20, 15 );y = 2.5 * x1.^0.5 .* x2.^0.3; % 假设公式是这样的 利用已知数据进行非线性拟合,根据经验给abc一个初始值1, 1, 1,初始值不一定非要很准确p = lsqcurvefit( @subfun, [ 1, 1, 1 ]...

matlab 求最大值
发现最大值在的大致范围,然后用fminsearch求其相反函数的最小值 (因没fmaxsearch function,所以只好这样)在matlab的m.file中定义函数 function[y_inverse]=function1(自变量)y_inverse=-((sin(alpha).\/(alpha+eps)).^2.*(sin(N*beta).\/(sin(beta)+eps)).^2);保存为function1.m 在matlab...

matlab求二元函数极值
1)解得:X1=13.522;当Y'(X1)=0时,代入(2)解得:X2=45.588 显然两个自变量的数值都在规定范围内,且Y'(X1)的值随X1增大而减小,Y'(X2)的值X2增大而减小,故原方程有最大值。将两值代入原方程得最大值:Ymax=-3856.444+9378.440+706.614-4689.230+353.305 =1892.685 ...

matlab根据函数表达式画三维图,两个自变量
你的式子很复杂,我这里简单的以第一个式子计算PL为例子 由于其他参数已知,所以可以简化为 P=A*e*f\/(1+f)^2;其中e就是ε,而f就是φ,进一步简化,设这里A=1(具体数值自己计算代入)[e f]=meshgrid(0:0.01:0.2,0:0.1:2);P=e.*f.\/(1+f).^2;surf(f,e,P);这里e的取样是从...

matlab求极值
查看linprog函数 Linprog 是Matlab中求解线性规划命令,用于求解如下线性规划问题 min f'*x s.t. Ax>=b Aeq * x = beq lb <=x<=ub 标准调用格式是 [X,FVAL]=LINPROG(f,A,b,Aeq,beq,lb,ub);

matlab中如何定义两个自变量的函数
我看成MATLAB了,不好意思。对MATHMETICA,ComplexExpand[e^(ix)]就是你想要的,x是实数的情况下的e^(ix)函数 ComplexExpand[f(x1,x2,...,xn)]会把函数f()中的变量都看做实数。如果f()的变量中还有复数,比如x2,x3是复数,其他变量都是实数,就 ComplexExpand[f(x1,x2,...,xn),]如...

已知目标函数和约束条件,用MATLAB怎么求最大值
已知目标函数和约束条件,求最大值,属于条件极值问题,可以用拉格朗日数乘法来做,下面给出拉格朗日数乘法的matlab代码:clc;clear;syms x y z t%定义自变量x,y,z,拉格朗日乘数t f(x,y,z)=x+2*y+3*z;%设需要求最大值的表达式x+2*y+3*z g=x^2+y^2+z^2-4;%设约束条件x^2+y^2...

matlab程序求最值问题
以目标函数y=cos(x1)-x2为例:f=@(x) cos(x(1))-x(2); x0=[0,0]; % 初始点x = fmincon(f,x0,[-1,0;1,0;-1,1],[0,pi\/2,0])解得 x = 1.5708 1.5708

相似回答