Matlap求函数极值例题

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用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处取得。

相关文档
最新文档