本文主要是介绍一些数学经验总结——关于将原一元二次函数增加一些限制条件后最优结果的对比(主要针对公平关切相关的建模),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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个分段的函数的最优结果不会优于原函数的最优结果。
这篇关于一些数学经验总结——关于将原一元二次函数增加一些限制条件后最优结果的对比(主要针对公平关切相关的建模)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!