【高考数学】更高更妙的高中数学思想与方法(1)

题目

题目

答案

答案

MATLAB解答

这是一个非线性规划问题。
a = ( x 1 , y 1 ) , b = ( x 2 , y 2 ) a=(x_1,y_1),b=(x_2,y_2) a=(x1,y1)b=(x2,y2),则:

目标函数: f u n = ( x 1 + x 2 ) 2 + ( y 1 + y 2 ) 2 + ( x 1 − x 2 ) 2 + ( y 1 − y 2 ) 2 fun = \sqrt{ (x_1+x_2)^2+(y_1+y_2)^2 } + \sqrt{ (x_1-x_2)^2+(y_1-y_2)^2 } fun=(x1+x2)2+(y1+y2)2 +(x1x2)2+(y1y2)2
约束条件:
s . t . { x 1 2 + y 1 2 − 1 = 0 x 2 2 + y 2 2 − 2 = 0 s.t. \begin{cases} \sqrt{ x_1^2+y_1^2 } - 1 = 0\\ \\ \sqrt{ x_2^2+y_2^2 } - 2 = 0 \end{cases} s.t.x12+y12 1=0x22+y22 2=0
x = [x1, x2, y1, y2],则可编写以下代码:

% //约束条件
function [g, h] = nonlcon(x)
g = [];
h = [x(1)^2+x(3)^2-1, ...
     x(2)^2+x(4)^2-4];

求解最小值:

% //目标函数
function f = fun(x)
f = sqrt( (x(1)+x(2))^2+(x(3)+x(4))^2 ) +...
    sqrt( (x(1)-x(2))^2+(x(3)-x(4))^2 );
x0 = rand(4,1);
A = []; b=[];
Aeq = []; beq=[];
lb = []; ub=[];
[x,fval] = fmincon(@fun,x0,A,b,Aeq,beq,lb,ub,@nonlcon);
fprintf("当a=(%.2f,%.2f),ba=(%.2f,%.2f)时,取得最小值%.4f\n",x(1),x(3),x(2),x(4),fval)

运行结果为:当a=(0.92,0.40),ba=(1.83,0.80)时,取得最小值4.0000

求解最大值:

% //目标函数
function f = fun(x)
f = sqrt( (x(1)+x(2))^2+(x(3)+x(4))^2 ) +...
    sqrt( (x(1)-x(2))^2+(x(3)-x(4))^2 );
f = -f;
x0 = rand(4,1);
A = []; b=[];
Aeq = []; beq=[];
lb = []; ub=[];
[x,fval] = fmincon(@fun,x0,A,b,Aeq,beq,lb,ub,@nonlcon);
fprintf("当a=(%.2f,%.2f),b=(%.2f,%.2f)时,取得最大值%.4f\n",x(1),x(3),x(2),x(4),-fval)

运行结果为:当a=(-0.49,0.87),b=(1.75,0.97)时,取得最大值4.4721

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_43964993

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值