matlab函数求最值
展开全部
需求:利用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处取得。
=(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处取得。
2011-07-21
展开全部
需求:利用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处取得。
另外,团IDC网上有许多产品团购,便宜有口碑
=(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处取得。
另外,团IDC网上有许多产品团购,便宜有口碑
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用fmincon函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询