1.没有分段的情况
原函数为一元二次凹函数(开口向下),如下:
因为要使得其存在正解,必须满足,那么
。
上述函数的最优结果为:,
。
对应的mathematica代码如下:
Clear["Global`*"]
f0[x_, a_, b_, c_, d_] := (a*x - b)*(d - c*x);(*(b c+a d)/(2 a c)*)
Maximize[{f0[x, a, b, c, d], a > 0 && b > 0 && c > 0 && d > 0}, x]
对应的mathematica结果如下:
2. 两个分段的情况
其中,
(1)第一个分段的函数为原函数;
(2)第二分段的函数为原函数的变体,即:
(i)第一因式与原函数的第一因式一样,即都为;
(ii)第二因式在原函数的第二因式基础上减去一部分(即),即为
;
(3)其中分段点为减去部分为零时候的x值(即)
针对第一分段,在无限制条件情况下,最优结果为:
,
。
针对第二分段,在无限制条件情况下,最优结果为:
,
。
外生参数的大小关系(可以利用mathematica验证):
(1)成立的一些:
(i);
(ii)。
(2)不成立的一些:
(i);
(ii)。
mathematica的代码如下:
Clear["Global`*"]
f0[x_, a_, b_, c_, d_] := (a*x - b)*(d - c*x);(*(b c+a d)/(2 a c)*)
f1[x_, a_, b_, c_, d_, e1_,
f1_] := (a*x -
b)*((d - c*x) - (e1*x -
f1));(*((b c+a d)+(b e+a f))/(2 (a c+a e) )*)
(*f1[x_,a_,b_,c_,d_,e1_,f1_]:=(a*x-b)*((d+f1)-(c+e1)*x);*)
Fx[x_, a_, b_, c_, d_, e1_, f1_] :=
Piecewise[{{f0[x, a, b, c, d],
x <= f1/e1}, {f1[x, a, b, c, d, e1, f1], x > f1/e1}}];
Reduce[a > 0 && b > 0 && c > 0 && d > 0 && e1 > 0 && f1 > 0 &&
b/a < d/c && b/a < (d + f1)/(c + e1)]
Reduce[a > 0 && b > 0 && c > 0 && d > 0 && e1 > 0 && f1 > 0 &&
b/a < d/c && b/a < (d + f1)/(c + e1) &&
b/a < (b c + a d)/(2 a c) < d/c]
Reduce[a > 0 && b > 0 && c > 0 && d > 0 && e1 > 0 && f1 > 0 &&
b/a < d/c && b/a < (d + f1)/(c + e1) &&
b/a < ((b c + a d) + (b e1 + a f1))/(2 (a c + a e1) ) < (d + f1)/(
c + e1)]
Reduce[a > 0 && b > 0 && c > 0 && d > 0 && e1 > 0 && f1 > 0 &&
b/a < d/c &&
b/a < (d + f1)/(c + e1) && (b c + a d)/(2 a c) < f1/
e1 < ((b c + a d) + (b e1 + a f1))/(2 (a c + a e1) )]
Reduce[a > 0 && b > 0 && c > 0 && d > 0 && e1 > 0 && f1 > 0 &&
b/a < d/c && b/a < (d + f1)/(c + e1) &&
f1/e1 < (b c + a d)/(2 a c) < ((b c + a d) + (b e1 + a f1))/(
2 (a c + a e1) )]
(*Reduce[a>0&&b>0&&c>0&&d>0&&e1>0&&f1>0&&b/a<d/c&&b/a<(d+f1)/(c+e1)&&(\
b c+a d)/(2 a c)>f1/e1&&f1/e1<((b c+a d)+(b e1+a f1))/(2 (a c+a e1) \
)&&f1[((b c+a d)+(b e1+a f1))/(2 (a c+a e1) ),a,b,c,d,e1,f1]>f0[(b \
c+a d)/(2 a c),a,b,c,d]]*)
比较重要的结论:
(1)当,那么最优的结果为
。
(2)当,
(2.1)当,那么最优的结果为
,注意
;
(2.2)当,那么最优的结果为
,注意
(可以利用mathematica验证)。
那么,总而言之,我们可以得出,当且仅当
时,等号取到,即
。
mathematica的代码如下:
Clear["Global`*"]
f0[x_, a_, b_, c_, d_] := (a*x - b)*(d - c*x);(*(b c+a d)/(2 a c)*)
f1[x_, a_, b_, c_, d_, e1_,
f1_] := (a*x -
b)*((d - c*x) - (e1*x -
f1));(*((b c+a d)+(b e+a f))/(2 (a c+a e) )*)
(*f1[x_,a_,b_,c_,d_,e1_,f1_]:=(a*x-b)*((d+f1)-(c+e1)*x);*)
Fx[x_, a_, b_, c_, d_, e1_, f1_] :=
Piecewise[{{f0[x, a, b, c, d],
x <= f1/e1}, {f1[x, a, b, c, d, e1, f1], x > f1/e1}}];
(*Reduce[a>0&&b>0&&c>0&&d>0&&e1>0&&f1>0&&b/a<d/c&&b/a<(d+f1)/(c+e1)]
Reduce[a>0&&b>0&&c>0&&d>0&&e1>0&&f1>0&&b/a<d/c&&b/a<(d+f1)/(c+e1)&&b/\
a<(b c+a d)/(2 a c)<d/c]
Reduce[a>0&&b>0&&c>0&&d>0&&e1>0&&f1>0&&b/a<d/c&&b/a<(d+f1)/(c+e1)&&b/\
a<((b c+a d)+(b e1+a f1))/(2 (a c+a e1) )<(d+f1)/(c+e1)]
Reduce[a>0&&b>0&&c>0&&d>0&&e1>0&&f1>0&&b/a<d/c&&b/a<(d+f1)/(c+e1)&&(b \
c+a d)/(2 a c)<f1/e1<((b c+a d)+(b e1+a f1))/(2 (a c+a e1) )]
Reduce[a>0&&b>0&&c>0&&d>0&&e1>0&&f1>0&&b/a<d/c&&b/a<(d+f1)/(c+e1)&&f1/\
e1<(b c+a d)/(2 a c)<((b c+a d)+(b e1+a f1))/(2 (a c+a e1) )]*)
Reduce[a > 0 && b > 0 && c > 0 && d > 0 && e1 > 0 && f1 > 0 &&
b/a < d/c &&
b/a < (d + f1)/(c + e1) && (b c + a d)/(2 a c) > f1/e1 &&
f1/e1 < ((b c + a d) + (b e1 + a f1))/(2 (a c + a e1) ) &&
f1[((b c + a d) + (b e1 + a f1))/(2 (a c + a e1) ), a, b, c, d, e1,
f1] > f0[(b c + a d)/(2 a c), a, b, c, d]]
3. 三个分段的情况
其中,
(1)第一个分段的函数为原函数;
(2)第二分段的函数为原函数的变体,即:
(i)第一因式与原函数的第一因式一样,即都为;
(ii)第二因式在原函数的第二因式基础上减去一部分(即),即为
;
(3)其中第二分段点为减去部分为零时候的x值(即)
(4)第三分段的函数为原函数的变体,即:
(i)第一因式与原函数的第一因式一样,即都为;
(ii)第二因式在原函数的第二因式基础上减去一部分(即),即为
;
(5)其中第三分段点为减去部分为零时候的x值(即)
针对第一分段,在无限制条件情况下,最优结果为:
,
;
针对第二分段,在无限制条件情况下,最优结果为:
,
;
针对第三分段,在无限制条件情况下,最优结果为:
,
。
外生参数的大小关系(可以利用mathematica验证):
(1)成立的一些:
(i);
(ii);
(iii)。
(2)不成立的一些:
(i);
(ii);
(i);
(ii)。
比较重要的结论:
(1)当,那么最优的结果为
。
(2)当,
(2.1)当,那么第一分段与第二分段对比下最优的结果为
,注意
;
(2.2)当,那么第一分段与第二分段对比下最优的结果为
,注意
(可以利用mathematica验证);
(3)当,
(3.1)当,那么第一分段与第三分段对比下最优的结果为
,注意
;
(3.2)当,那么第一分段与第三分段对比下最优的结果为
,注意
(可以利用mathematica验证)。
那么,总而言之,我们可以得出,当且仅当
时,等号取到,即
。
该结论可以扩展到N个分段的情况下,也就是N个分段的函数的最优结果不会优于原函数的最优结果。