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

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

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

相关文章

PostgreSQL中rank()窗口函数实用指南与示例

《PostgreSQL中rank()窗口函数实用指南与示例》在数据分析和数据库管理中,经常需要对数据进行排名操作,PostgreSQL提供了强大的窗口函数rank(),可以方便地对结果集中的行进行排名... 目录一、rank()函数简介二、基础示例:部门内员工薪资排名示例数据排名查询三、高级应用示例1. 每

全面掌握 SQL 中的 DATEDIFF函数及用法最佳实践

《全面掌握SQL中的DATEDIFF函数及用法最佳实践》本文解析DATEDIFF在不同数据库中的差异,强调其边界计算原理,探讨应用场景及陷阱,推荐根据需求选择TIMESTAMPDIFF或inte... 目录1. 核心概念:DATEDIFF 究竟在计算什么?2. 主流数据库中的 DATEDIFF 实现2.1

MySQL中的LENGTH()函数用法详解与实例分析

《MySQL中的LENGTH()函数用法详解与实例分析》MySQLLENGTH()函数用于计算字符串的字节长度,区别于CHAR_LENGTH()的字符长度,适用于多字节字符集(如UTF-8)的数据验证... 目录1. LENGTH()函数的基本语法2. LENGTH()函数的返回值2.1 示例1:计算字符串

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

MySQL count()聚合函数详解

《MySQLcount()聚合函数详解》MySQL中的COUNT()函数,它是SQL中最常用的聚合函数之一,用于计算表中符合特定条件的行数,本文给大家介绍MySQLcount()聚合函数,感兴趣的朋... 目录核心功能语法形式重要特性与行为如何选择使用哪种形式?总结深入剖析一下 mysql 中的 COUNT

MySQL 中 ROW_NUMBER() 函数最佳实践

《MySQL中ROW_NUMBER()函数最佳实践》MySQL中ROW_NUMBER()函数,作为窗口函数为每行分配唯一连续序号,区别于RANK()和DENSE_RANK(),特别适合分页、去重... 目录mysql 中 ROW_NUMBER() 函数详解一、基础语法二、核心特点三、典型应用场景1. 数据分

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景