一些数学经验总结——关于将原一元二次函数增加一些限制条件后最优结果的对比(主要针对公平关切相关的建模)

本文主要是介绍一些数学经验总结——关于将原一元二次函数增加一些限制条件后最优结果的对比(主要针对公平关切相关的建模),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.没有分段的情况

原函数为一元二次凹函数(开口向下),如下:

f_0(x)=(ax-b)(d-cx), where\ a>0,b>0,c>0, d>0, and\ \frac{b}{a} < \frac{d}{c}.

因为要使得其存在正解,必须满足\frac{b}{a} < x < \frac{d}{c},那么\frac{b}{a} < \frac{d}{c}

上述函数的最优结果为:x^*=\frac{a d+b c}{2 a c}f(x^*)=\frac{a^2 d^2-2 a b c d+b^2 c^2}{4 a c}

对应的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)第一因式与原函数的第一因式一样,即都为ax-b;

(ii)第二因式在原函数的第二因式基础上减去一部分(即ex-f),即为(d-cx)-(ex-f)

(3)其中分段点为减去部分为零时候的x值(即ex-f=0\Rightarrow x=\frac{f}{e}

\begin{array}{l} F(x) = \left\{ {\begin{array}{*{20}{c}} {​{f_0}(x)}&{x \le \frac{​{​{f_1}}}{​{​{e_1}}}}\\ {​{f_{1}}(x)}&{x > \frac{​{​{f_1}}}{​{​{e_1}}}} \end{array}} \right. = \left\{ {\begin{array}{*{20}{c}} {(ax - b)(d - cx)}&{x \le \frac{​{​{f_1}}}{​{​{e_1}}}}\\ {(ax - b)[(d - cx) - ({e_1}x - {f_1})]}&{x > \frac{​{​{f_1}}}{​{​{e_1}}}} \end{array}} \right.\\ = \left\{ {\begin{array}{*{20}{c}} {(ax - b)(d - cx)}&{x \le \frac{​{​{f_1}}}{​{​{e_1}}}}\\ {(ax - b)[(d + {f_1}) - (c + {e_1})x]}&{x > \frac{​{​{f_1}}}{​{​{e_1}}}.} \end{array}} \right. \end{array}

where\ a>0,b>0,c>0, d>0, \frac{b}{a} < \frac{d}{c}, e_1>0, f_1>0, and\ \frac{b}{a} < \frac{​{d + {f_1}}}{​{c + {e_1}}}.

针对第一分段f_0(x),在无限制条件情况下,最优结果为:x^*=\frac{a d+b c}{2 a c}f_0(x^*)=\frac{a^2 d^2-2 a b c d+b^2 c^2}{4 a c}

针对第二分段f_1(x),在无限制条件情况下,最优结果为:{x^*} = \frac{​{(ad + bc) + (a{f_1} + b{e_1})}}{​{2(ac + a{e_1})}}f_1(x^*)={\frac{​{​{​{(b(c + e_1) - a(d + f_1))}^2}}}{​{4a(c + e_1)}}}

外生参数的大小关系(可以利用mathematica验证):

(1)成立的一些:

(i)\frac{b}{a}<\frac{a d+b c}{2 a c}<\frac{d}{c}

(ii)\frac{b}{a} < \frac{​{\left( {bc + ad} \right) + \left( {b{e_1} + af_1} \right)}}{​{2\left( {ac + a{e_1}} \right)}} < \frac{​{d + {f_1}}}{​{c + {e_1}}}

(2)不成立的一些:

(i)\frac{​{ad + bc}}{​{2ac}} < \frac{​{​{f_1}}}{​{​{e_1}}} < \frac{​{(ad + bc) + (a{f_1} + b{e_1})}}{​{2(ac + a{e_1})}}

(ii)\frac{​{​{f_1}}}{​{​{e_1}}} < \frac{​{ad + bc}}{​{2ac}} < \frac{​{(ad + bc) + (a{f_1} + b{e_1})}}{​{2(ac + a{e_1})}}

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)当\frac{​{ad + bc}}{​{2ac}} \le \frac{​{​{f_1}}}{​{​{e_1}}},那么最优的结果为${x^*} = \frac{​{ad + bc}}{​{2ac}}$

(2)当\frac{​{ad + bc}}{​{2ac}} > \frac{​{​{f_1}}}{​{​{e_1}}}

(2.1)当\frac{​{(ad + bc) + (a{f_1} + b{e_1})}}{​{2(ac + a{e_1})}} \le \frac{​{​{f_1}}}{​{​{e_1}}},那么最优的结果为{x^*} = \frac{​{​{f_1}}}{​{​{e_1}}},注意{f_0}(\frac{​{ad + bc}}{​{2ac}}) > {f_0}(\frac{​{​{f_1}}}{​{​{e_1}}})

(2.2)当\frac{​{(ad + bc) + (a{f_1} + b{e_1})}}{​{2(ac + a{e_1})}} > \frac{​{​{f_1}}}{​{​{e_1}}},那么最优的结果为{x^*} = \frac{​{(ad + bc) + (a{f_1} + b{e_1})}}{​{2(ac + a{e_1})}},注意{f_0}(\frac{​{ad + bc}}{​{2ac}}) > {f_1}(\frac{​{(ad + bc) + (a{f_1} + b{e_1})}}{​{2(ac + a{e_1})}})(可以利用mathematica验证)。

那么,总而言之,我们可以得出F(x)\leq f_0(x),当且仅当${x^*} = \frac{​{ad + bc}}{​{2ac}}$时,等号取到,即F(x)= f_0(x)

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)第一因式与原函数的第一因式一样,即都为ax-b;

(ii)第二因式在原函数的第二因式基础上减去一部分(即ex-f),即为(d-cx)-(e_1x-f_1)

(3)其中第二分段点为减去部分为零时候的x值(即e_1x-f_1=0\Rightarrow x=\frac{f_1}{e_1}

(4)第三分段的函数为原函数的变体,即:
(i)第一因式与原函数的第一因式一样,即都为ax-b;

(ii)第二因式在原函数的第二因式基础上减去一部分(即e_2x - f_2),即为(d-cx)-(e_2x-f_2)

(5)其中第三分段点为减去部分为零时候的x值(即e_2x-f_2=0\Rightarrow x=\frac{f_2}{e_2}

\begin{array}{l} G(x) = \left\{ {\begin{array}{*{20}{c}} {​{f_0}(x)}&{x \le \frac{​{​{f_1}}}{​{​{e_1}}}}\\ {​{f_1}(x)}&{\frac{​{​{f_1}}}{​{​{e_1}}} < x \le \frac{​{​{f_2}}}{​{​{e_2}}}}\\ {​{f_2}(x)}&{x > \frac{​{​{f_2}}}{​{​{e_2}}}} \end{array}} \right. = \left\{ {\begin{array}{*{20}{c}} {(ax - b)(d - cx)}&{x \le \frac{​{​{f_1}}}{​{​{e_1}}}}\\ {(ax - b)[(d - cx) - ({e_1}x - {f_1})]}&{\frac{​{​{f_1}}}{​{​{e_1}}} < x \le \frac{​{​{f_2}}}{​{​{e_2}}}}\\ {(ax - b)[(d - cx) - ({e_2}x - {f_2})]}&{x > \frac{​{​{f_2}}}{​{​{e_2}}}} \end{array}} \right.\\ = \left\{ {\begin{array}{*{20}{c}} {(ax - b)(d - cx)}&{x \le \frac{​{​{f_1}}}{​{​{e_1}}}}\\ {(ax - b)[(d + {f_1}) - (c + {e_1})x]}&{\frac{​{​{f_1}}}{​{​{e_1}}} < x \le \frac{​{​{f_2}}}{​{​{e_2}}}}\\ {(ax - b)[(d + {f_2}) - (c + {e_2})x]}&{x > \frac{​{​{f_2}}}{​{​{e_2}}}.} \end{array}} \right. \end{array}

where\ a>0,b>0,c>0, d>0, \frac{b}{a} < \frac{d}{c}, e_1>0, f_1>0, \frac{b}{a} < \frac{​{d + {f_1}}}{​{c + {e_1}}}, e_2>0, f_2>0, \frac{b}{a} < \frac{​{d + {f_2}}}{​{c + {e_2}}}, and\ \frac{​{​{f_1}}}{​{​{e_1}}} < \frac{​{​{f_2}}}{​{​{e_2}}}.

针对第一分段f_0(x),在无限制条件情况下,最优结果为:x^*=\frac{a d+b c}{2 a c}f_0(x^*)=\frac{a^2 d^2-2 a b c d+b^2 c^2}{4 a c}

针对第二分段f_1(x),在无限制条件情况下,最优结果为:{x^*} = \frac{​{(ad + bc) + (a{f_1} + b{e_1})}}{​{2(ac + a{e_1})}}f_1(x^*)={\frac{​{​{​{(b(c + e_1) - a(d + f_1))}^2}}}{​{4a(c + e_1)}}}

针对第三分段f_2(x),在无限制条件情况下,最优结果为:{x^*} = \frac{​{(ad + bc) + (a{f_2} + b{e_2})}}{​{2(ac + a{e_2})}}f_2(x^*)={\frac{​{​{​{(b(c + e_2) - a(d + f_2))}^2}}}{​{4a(c + e_2)}}}

外生参数的大小关系(可以利用mathematica验证):

(1)成立的一些:

(i)\frac{b}{a}<\frac{a d+b c}{2 a c}<\frac{d}{c}

(ii)\frac{b}{a} < \frac{​{\left( {bc + ad} \right) + \left( {b{e_1} + af_1} \right)}}{​{2\left( {ac + a{e_1}} \right)}} < \frac{​{d + {f_1}}}{​{c + {e_1}}}

(iii)\frac{b}{a} < \frac{​{\left( {bc + ad} \right) + \left( {b{e_2} + af_2} \right)}}{​{2\left( {ac + a{e_2}} \right)}} < \frac{​{d + {f_2}}}{​{c + {e_2}}}

(2)不成立的一些:

(i)\frac{​{ad + bc}}{​{2ac}} < \frac{​{​{f_1}}}{​{​{e_1}}} < \frac{​{(ad + bc) + (a{f_1} + b{e_1})}}{​{2(ac + a{e_1})}}

(ii)\frac{​{​{f_1}}}{​{​{e_1}}} < \frac{​{ad + bc}}{​{2ac}} < \frac{​{(ad + bc) + (a{f_1} + b{e_1})}}{​{2(ac + a{e_1})}}

(i)\frac{​{ad + bc}}{​{2ac}} < \frac{​{​{f_2}}}{​{​{e_2}}} < \frac{​{(ad + bc) + (a{f_2} + b{e_2})}}{​{2(ac + a{e_2})}}

(ii)\frac{​{​{f_2}}}{​{​{e_2}}} < \frac{​{ad + bc}}{​{2ac}} < \frac{​{(ad + bc) + (a{f_2} + b{e_2})}}{​{2(ac + a{e_2})}}

比较重要的结论

(1)当\frac{​{ad + bc}}{​{2ac}} \le \frac{​{​{f_1}}}{​{​{e_1}}},那么最优的结果为${x^*} = \frac{​{ad + bc}}{​{2ac}}$

(2)当\frac{​{ad + bc}}{​{2ac}} > \frac{​{​{f_1}}}{​{​{e_1}}}

(2.1)当\frac{​{(ad + bc) + (a{f_1} + b{e_1})}}{​{2(ac + a{e_1})}} \le \frac{​{​{f_1}}}{​{​{e_1}}},那么第一分段与第二分段对比下最优的结果为{x^*} = \frac{​{​{f_1}}}{​{​{e_1}}},注意{f_0}(\frac{​{ad + bc}}{​{2ac}}) > {f_0}(\frac{​{​{f_1}}}{​{​{e_1}}})

(2.2)当\frac{​{(ad + bc) + (a{f_1} + b{e_1})}}{​{2(ac + a{e_1})}} > \frac{​{​{f_1}}}{​{​{e_1}}},那么第一分段与第二分段对比下最优的结果为{x^*} = \frac{​{(ad + bc) + (a{f_1} + b{e_1})}}{​{2(ac + a{e_1})}},注意{f_0}(\frac{​{ad + bc}}{​{2ac}}) > {f_1}(\frac{​{(ad + bc) + (a{f_1} + b{e_1})}}{​{2(ac + a{e_1})}})(可以利用mathematica验证);

(3)当\frac{​{ad + bc}}{​{2ac}} > \frac{​{​{f_2}}}{​{​{e_2}}}

(3.1)当\frac{​{(ad + bc) + (a{f_2} + b{e_2})}}{​{2(ac + a{e_2})}} \le \frac{​{​{f_2}}}{​{​{e_2}}},那么第一分段与第三分段对比下最优的结果为{x^*} = \frac{​{​{f_2}}}{​{​{e_2}}},注意{f_0}(\frac{​{ad + bc}}{​{2ac}}) > {f_0}(\frac{​{​{f_1}}}{​{​{e_1}}})

(3.2)当\frac{​{(ad + bc) + (a{f_2} + b{e_2})}}{​{2(ac + a{e_2})}} > \frac{​{​{f_2}}}{​{​{e_2}}},那么第一分段与第三分段对比下最优的结果为{x^*} = \frac{​{(ad + bc) + (a{f_2} + b{e_2})}}{​{2(ac + a{e_2})}},注意{f_0}(\frac{​{ad + bc}}{​{2ac}}) > {f_2}(\frac{​{(ad + bc) + (a{f_2} + b{e_2})}}{​{2(ac + a{e_2})}})(可以利用mathematica验证)。

那么,总而言之,我们可以得出G(x)\leq f_0(x),当且仅当${x^*} = \frac{​{ad + bc}}{​{2ac}}$时,等号取到,即G(x)= f_0(x)

该结论可以扩展到N个分段的情况下,也就是N个分段的函数的最优结果不会优于原函数f_0(x)的最优结果。

这篇关于一些数学经验总结——关于将原一元二次函数增加一些限制条件后最优结果的对比(主要针对公平关切相关的建模)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1147868

相关文章

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Python中bisect_left 函数实现高效插入与有序列表管理

《Python中bisect_left函数实现高效插入与有序列表管理》Python的bisect_left函数通过二分查找高效定位有序列表插入位置,与bisect_right的区别在于处理重复元素时... 目录一、bisect_left 基本介绍1.1 函数定义1.2 核心功能二、bisect_left 与

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.

C++/类与对象/默认成员函数@构造函数的用法

《C++/类与对象/默认成员函数@构造函数的用法》:本文主要介绍C++/类与对象/默认成员函数@构造函数的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录名词概念默认成员函数构造函数概念函数特征显示构造函数隐式构造函数总结名词概念默认构造函数:不用传参就可以

C++类和对象之默认成员函数的使用解读

《C++类和对象之默认成员函数的使用解读》:本文主要介绍C++类和对象之默认成员函数的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、默认成员函数有哪些二、各默认成员函数详解默认构造函数析构函数拷贝构造函数拷贝赋值运算符三、默认成员函数的注意事项总结一

Python函数返回多个值的多种方法小结

《Python函数返回多个值的多种方法小结》在Python中,函数通常用于封装一段代码,使其可以重复调用,有时,我们希望一个函数能够返回多个值,Python提供了几种不同的方法来实现这一点,需要的朋友... 目录一、使用元组(Tuple):二、使用列表(list)三、使用字典(Dictionary)四、 使

Linux中的more 和 less区别对比分析

《Linux中的more和less区别对比分析》在Linux/Unix系统中,more和less都是用于分页查看文本文件的命令,但less是more的增强版,功能更强大,:本文主要介绍Linu... 目录1. 基础功能对比2. 常用操作对比less 的操作3. 实际使用示例4. 为什么推荐 less?5.

PyTorch中cdist和sum函数使用示例详解

《PyTorch中cdist和sum函数使用示例详解》torch.cdist是PyTorch中用于计算**两个张量之间的成对距离(pairwisedistance)**的函数,常用于点云处理、图神经网... 目录基本语法输出示例1. 简单的 2D 欧几里得距离2. 批量形式(3D Tensor)3. 使用不

Nginx 413修改上传文件大小限制的方法详解

《Nginx413修改上传文件大小限制的方法详解》在使用Nginx作为Web服务器时,有时会遇到客户端尝试上传大文件时返回​​413RequestEntityTooLarge​​... 目录1. 理解 ​​413 Request Entity Too Large​​ 错误2. 修改 Nginx 配置2.1

MySQL 字符串截取函数及用法详解

《MySQL字符串截取函数及用法详解》在MySQL中,字符串截取是常见的操作,主要用于从字符串中提取特定部分,MySQL提供了多种函数来实现这一功能,包括LEFT()、RIGHT()、SUBST... 目录mysql 字符串截取函数详解RIGHT(str, length):从右侧截取指定长度的字符SUBST