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

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

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

相关文章

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

Java function函数式接口的使用方法与实例

《Javafunction函数式接口的使用方法与实例》:本文主要介绍Javafunction函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感... 目录引言-当代码遇见诗性一、函数式接口的生物学解构1.1 函数式接口的基因密码1.2 六大核心接口的形态学

Redis的Zset类型及相关命令详细讲解

《Redis的Zset类型及相关命令详细讲解》:本文主要介绍Redis的Zset类型及相关命令的相关资料,有序集合Zset是一种Redis数据结构,它类似于集合Set,但每个元素都有一个关联的分数... 目录Zset简介ZADDZCARDZCOUNTZRANGEZREVRANGEZRANGEBYSCOREZ

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

Linux使用fdisk进行磁盘的相关操作

《Linux使用fdisk进行磁盘的相关操作》fdisk命令是Linux中用于管理磁盘分区的强大文本实用程序,这篇文章主要为大家详细介绍了如何使用fdisk进行磁盘的相关操作,需要的可以了解下... 目录简介基本语法示例用法列出所有分区查看指定磁盘的区分管理指定的磁盘进入交互式模式创建一个新的分区删除一个存

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

numpy求解线性代数相关问题

《numpy求解线性代数相关问题》本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组

使用C#代码计算数学表达式实例

《使用C#代码计算数学表达式实例》这段文字主要讲述了如何使用C#语言来计算数学表达式,该程序通过使用Dictionary保存变量,定义了运算符优先级,并实现了EvaluateExpression方法来... 目录C#代码计算数学表达式该方法很长,因此我将分段描述下面的代码片段显示了下一步以下代码显示该方法如