mathe 发表于 2018-1-27 20:12:22

现在结合a=b时候的结果,应该是图-10to-0.1.jpg中封闭部分3个解,边界两个解,外部(a<1部分而且b<1部分)一个解
图0.1to0.2.jpg中曲线下面部分(a>1部分而且b>1部分)两个解,曲线上一个解,而上面部分无解
而区域a>1,b<1和区域a<1,b>1显然都是唯一解一种情况,所以我们没有在其中找到边界线

kastin 发表于 2018-1-27 20:29:51

参数平面图如下:

其中蓝色区域表示只有一个交点,绿色区域表示只有两个交点,红色区域表示有三个交点。白色表示没有交点。
注意,左侧红色区域比较狭窄,放大图如下:

左侧继续放大如下:

mathe 发表于 2018-1-27 20:58:28

根据图可以得出交换a,b方程解的数目是不变的,这个可以如下证明
$a^x=log_bx$,那么$t=a^x=log_bx$必然是方程$b^t=log_at$的解,所以俩方程解的数目是一致的

kastin 发表于 2018-1-27 21:08:15

根据图像来看,以 `r` 作为横轴,那么界线都是单值函数,于是可以找出分界线的隐函数方程 `a=F_i(r)`,这样就可以直接用 `F_i(r)<a<F_{i+1}(r)` 这种形式来给出简单的紧凑的结论了。 不过,这种单值函数不一定有解析表达。

kastin 发表于 2018-1-27 21:33:45

根据16楼的结果,可以给出这个单值函数参数方程形式\[\begin{cases}\D a=\mathrm e^{h\mathrm e^{-1/h}}\\r=\frac{\mathrm e^{\frac 1h-h}}{h^2}\end{cases}\]由于 `x>0`,故 `h<0`.
绘制 `a-r` 边界图,正好就是上图中红色区域边界:
ParametricPlot[{Exp, Exp/h^2}, {h, -6.08, 0},
AspectRatio -> 1]

shufubisheng 发表于 2018-1-27 21:40:39

mathe 发表于 2018-1-27 20:58
根据图可以得出交换a,b方程解的数目是不变的,这个可以如下证明
$a^x=log_bx$,那么$t=a^x=log_bx$必然是方 ...

这位老师有高见。也就是说,a—b图的边界曲线有对称轴b=a。

wayne 发表于 2018-1-27 21:57:23

我还是按我的方式来。考虑$ln|lnx|-xlna-ln|lnb|$的极值的情况。
三个解的情况是在$0 < a <= e^{-e}=0.065988$的时候发生。此时,有两个极值点,x == E^ProductLog[-1, 1/Log] , x == E^ProductLog]
Reduce] - Log x, x] == 0 && 0 < a < 1 && x > 0, x]
画图如下,跟mathe在13#的图形是一致的
n = 1/10;
RegionPlot[{Log[-Log]]] - 1/
   ProductLog[-1, 1/Log] < Log[-Log] <
    Log[-Log]]] - 1/ProductLog]}, {a,
   0, n}, {b, 0, n}] // Quiet

\[\log \left(-\log \left(e^{W_{-1}\left(\frac{1}{\log (a)}\right)}\right)\right)-\frac{1}{W_{-1}\left(\frac{1}{\log (a)}\right)}<\log (-\log (b))<\log \left(-\log \left(e^{W\left(\frac{1}{\log (a)}\right)}\right)\right)-\frac{1}{W\left(\frac{1}{\log (a)}\right)}\]

上面的补集是一个解。
======================================
两个解发生在$a>1$的时候.此时只有一个极值点,x=E^ProductLog]
\[\log \left(\log \left(e^{W\left(\frac{1}{\log (a)}\right)}\right)\right)-\frac{1}{W\left(\frac{1}{\log (a)}\right)}>\log (\log (b))\]


上面的补集是无解。
======================================
一个解的情况就是上面三个解的补集加上 $0<a<1,b>1$或者$0<b<1,a>1$的情况。


最后画一个全家福,【附注:三个解的区域比较小,放大版本的见前面mathe最先给的图,或者我楼上的图。】
n = 2; RegionPlot[{a > 1 &&
    Log]]] - 1/ProductLog] <
   Log],
   b < 1 && (E^-E < a < 1 ||
       Log[-Log]]] - 1/
         ProductLog[-1, 1/Log] > Log[-Log] ||
       Log[-Log] >
      Log[-Log]]] - 1/
         ProductLog]) || (a - 1) (b - 1) < 0,
   a > 1 &&
    Log]]] - 1/ProductLog] >
   Log],
   Log[-Log]]] - 1/
   ProductLog[-1, 1/Log] < Log[-Log] <
    Log[-Log]]] - 1/ProductLog]}, {a,
   0, n}, {b, 0, n}, PlotLegends -> "Expressions", Frame -> False,
Axes -> True] // Quiet



wayne 发表于 2018-1-28 13:33:18

我昨天在15#的"空话"已经兑现。解的个数的可行域的全家福见楼上。
附注:三个解的区域比较小,放大版本的见前面mathe最先给的图,或者我楼上的图。

kastin 发表于 2018-1-28 17:57:26

继续24楼的思路,可给出关于交点个数紧凑形式的结论:
`0 < a < F_ 1 (r) ` 时,有三个交点(对应于22楼红色区域,);
`a =F_ 1 (r) ` 时,有两个交点(对应于22楼红色部分的尖状弯曲边界);
`F_1(r) < a< 1` 时,有一个交点(对应蓝色区域);
`1 < a < F_2(r)` 时,有两个交点(绿色区域);
`a=F_2(r)` 时,有一个交点(绿色区域弯曲边界);
`a> F_2(r)` 时,没有交点。

其中红色区域的边界就是 `F_1(r)`,即25楼给出的参数方程。求法如下:
因为极值点满足导函数零点方程 `f'(x)=0`,也就是 `x\ln x=1/\ln a`. 若定义 `h=1/\ln x` (`x` 为极值点),那么可知 `a=\exp(h\mathrm e^{-\frac 1h})`.再根据之前http://bbs.emath.ac.cn/thread-15228-1-1.html中的结论,导函数零点方程有两个根 `x_0,x_1`(即 `f(x)` 有两个极值点)时,根必然落在区间(0,1)内,所以确定参数范围 `h<0`.
利用前面2楼的结果可知,边界曲线就是 `f(x_0)=f(x_1)=0`,即 `\log_a \log_a x-x-\log_a r=0`,将 `x=\mathrm e^{1/h}` 代入可得 `r=\frac{\mathrm e^{\frac 1h-h}}{h^2}`.
这样便利用参数方程隐式地定义了 `a=F_1(r)`, 相应 `a-r` 图前面已经给出。

若想绘制 `a-b` 图,根据根据2楼给出的定义 `r=\ln b/\ln a=\log_a b`,进行坐标变换,求出 `b=a^r=\exp(\frac{e^{-h}}{h})`. 然后绘制 `a-b` 曲线,得到结果跟前面mahte和wayne给出的一样。

但这种参数方式只能给出边界形状,不容易判断 `a>F_1(r)` 到底是在边界的里面还是外面。因为这需要求 `\frac{\dif a}{\dif r}=\frac{\frac{\dif a}{\dif h}}{\frac{\dif r}{\dif h}}`来判断单调性。然而次结果还是参数式,需要通过 `h` 反求 `r`的值,故仍然没能摆脱求根的命运。实际上 `a=\exp(h\mathrm e^{-1/h})` 相当于`\frac 1h\exp(\frac 1h)=\frac 1{\ln a}`,注意到方程 `w\exp(w)=z` 的解就是27楼中使用的乘积对数函数(ProductLog) `W(z)`,(这是一个数学界定义的超越函数,没有解析表达)。于是 `\frac 1h=W(\frac {1}{\ln a})`,代入 `h=1/\ln x` 中,得到极值点 `x^*=\mathrm e^{W(\frac {1}{\ln a})}`,这样就能求出 `F_2(r)`,也就是或27楼中狭长绿色部分边界线 `a=F_2(r)`:
根据2楼结论可知边界线方程仍然是关于极值点的方程 `\log_a r=\log_a\log_a x^*-x^*`, 且 `x^*=\mathrm e^{W(\frac {1}{\ln a})}`。于是 `r=\D\frac{W(\frac {1}{\ln a})a^{-\exp(W(\frac {1}{\ln a}))}}{\ln a}`,这个结果的反函数就是 `a=F_2(r)` ,可以绘制出 `a-r` 边界线为
Plot ]a^(-E^ProductLog])/Log,{a,1,10},AxesLabel->{a,r},PlotRange->{0,10},AxesOrigin->{0,0}]
类似地,变换坐标得到 `b=a^r=\exp\left(W(\frac {1}{\ln a}) a^{-\exp(W(\frac {1}{\ln a}))}\right)`,可绘制 `a-b` 边界线
Plot]a^(-E^ProductLog])),{a,1,10},AxesLabel->{a,r},PlotRange->{0,10},AxesOrigin->{0,0}]

kastin 发表于 2018-1-28 18:37:52

这里给一下22楼图像的代码,里面使用的是2楼的方法,纯粹数值求根的方式用软件绘制(因此精度依赖于取点多少,不如wayne那种使用内置超越函数那么精确)。
Clear
f :=
Log] - x;
g1 = 0;
g1 := 1/(x Log Log[#]) - 1 &;
g2 := -(x + Log)/(x Log)^2/Log[#] &;
x0 :=
x /. First@FindRoot, {x, 1/E - a}];
x1 :=
x /. First@FindRoot, {x, 1/E + a}];
(*三个交点*)
s = RegionPlot[
   f, a] < Log < f, a] && 0 < a < E^(-E), {a, 0,
    E^(-E)}, {r, 0, 10}, PlotPoints -> 50, MaxRecursion -> 3,
   PlotStyle -> Red, BoundaryStyle -> None];
(*一个交点*)s =
RegionPlot[(Log < f, a] || Log > f, a]) &&
    0 < a < E^(-E), {a, 0, E^(-E)}, {r, 0, 10}, PlotStyle -> Blue,
   BoundaryStyle -> None];
(*两个个交点*)s =
ContourPlot[{f, a] == Log,
    Log == f, a]}, {a, 0, E^(-E)}, {r, 0, 10},
   PlotPoints -> 50, MaxRecursion -> 3,
   ContourStyle -> {{Thick, Green}}];
(*一个交点*)
s = RegionPlot[E^(-E) < a < 1, {a, E^(-E), 1}, {r, 0, 10},
   PlotStyle -> Blue, BoundaryStyle -> None];
(*间断线*)s =
ListLinePlot[{{1, 0}, {1, 10}}, PlotStyle -> {{Black,Dashed}}];
s = RegionPlot[
   a > 1 && Log < f, a], {a, 1, 10}, {r, 0, 10},
   PlotStyle -> Green];
s = ContourPlot[
   Log == f, a], {a, 1, E^(1/E)}, {r, 0, 10},
   PlotPoints -> 50, MaxRecursion -> 3,
   ContourStyle -> {{Thick, Blue}}];
s = ListPlot[{{E^(1/E), 1}}, PlotStyle -> {Thick, Blue}];
s = ContourPlot[
   Log == f, a], {a, E^(1/E), 10}, {r, 0, 10},
   PlotPoints -> 50, MaxRecursion -> 3,
   ContourStyle -> {{Thick, Blue}}];
Show, {k, 1, 6}], PlotRange -> All, FrameLabel -> {a, r}]

通过坐标变换,将代码中 `r` 用 `\log_a b` 替换,并注意一下 `b` 的取值范围,上述代码也可用于绘制 `a-b` 图像:
比如,三个解的部分(注意边界上是两个解)
Clear
f :=
Log] - x;
g1 = 0;
g1 := 1/(x Log Log[#]) - 1 &;
g2 := -(x + Log)/(x Log)^2/Log[#] &;
x0 :=
x /. First@FindRoot, {x, 1/E - a}];
x1 :=
x /. First@FindRoot, {x, 1/E + a}];
RegionPlot[
f, a] < Log] < f, a] && 0 < a < E^(-E), {a,
    0, E^(-E)}, {b, 0, E^(-E)}, PlotPoints -> 50, MaxRecursion -> 3,
PlotStyle -> Red, BoundaryStyle -> None];
两个解的部分(注意边界上是1个解)
RegionPlot[
a > 1 && Log] < f, a], {a, 1, 10}, {b, 1, 10},
PlotStyle -> Green];
页: 1 2 [3] 4
查看完整版本: 函数图像的交点问题