限制 pgf 图中变量

限制 pgf 图中变量

我正在尝试绘制以下函数的“水平曲线”:

在此处输入图片描述

其中变量受到限制,使得 x、y 为非负数,并且 x+y 小于或等于 1。换句话说,这是一个向量 (x(1),x(2),x(3)) 的函数,所有元素的总和为 1。因此,例如,我想要设置 z=0.5 并绘制 z 不同值的函数。如果有人有这种参数化的简单示例,那将非常有帮助。

\documentclass[border=3pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}

\begin{tikzpicture}
\begin{axis}[
  view/h=135,
  axis lines=center,
  xmax=1.5, 
  ymax=1.5,
  zmax=1.5,
  ytick={1},
  xlabel={$x_{1}$},
  ylabel={$x_{2}$},
  zlabel={$x_{3}$},
]
\addplot3[patch,blue!70!black!50,forget plot] 
  coordinates 
  {
  (1,0,0) 
  (0,1,0) 
  (0,0,1)
  };
\addplot3[no markers,red!90!black] 
  coordinates 
  { 
  (0.25,0.1,0.45) 
  (0.2,0.1,0.4) 
  (0.24,0.36,0.4) 
  (0.16,0.32,0.62) 
  (0.12,0.3,0.58) 
  (0.1,0.26,0.64) 
  };
   \addplot3[domain=0:0.5,y domain=0:0.5, red, thick,samples=50] {x*ln(3*x)+y*ln(3*y)+(1-x-y)*ln(3*(1-x-y)) };

\node[fill=red!90!black,inner sep=1pt,circle,label={180:$Y$}] 
  at (axis cs:0.1,0.26,0.64) {};  
\end{axis}
\end{tikzpicture}

\end{document}

我的目标是获得如下结果: 在此处输入图片描述

答案1

我不确定我是否正确理解了数学问题,因为你谈论的是两个不同的 $z$ 值。我假设等式左边的 $z$ 与右边的相同,写为 $(1-xy)$,并用右边的替换左边的。然后问题就简化为两个变量。接下来,我将左边的 $z$ 移到等式的右边,因此现在显示为 $0 = x ln[3x] + y ln[3y] + (1-xy) ln[3(1-xy)] - (1-xy)$。

不幸的是,变量不能分开,因此,通过给出例如 $x$ 值,您必须在外部程序中求解相应的 $y$ 值。这是一项相当容易的任务,因为它是一个简单的根搜索。

有了 $x$ 和 $y$ 值,就可以再次计算相应的 $z$ 值,然后绘制结果。这里我使用了库,您ternary可以pgfplotsPGFPlots 手册第 487 页第 5.13 节(v1.13)

\documentclass[border=2mm]{standalone}
\usepackage{pgfplots}
    \usetikzlibrary{
        pgfplots.ternary,
    }
\begin{document}
    \begin{tikzpicture}
        \begin{ternaryaxis}[
            xlabel=$x$,
            ylabel=$y$,
            zlabel=$z$,
            min=0,
            max=1,
            ternary limits relative=false,
            smooth,
            no markers,
        ]
            \addplot3+ [thick] table {
                x           y           z
                1.000E-10   5.813E-01   4.187E-01
                2.500E-02   6.280E-01   3.470E-01
                5.000E-02   6.457E-01   3.043E-01
                1.000E-01   6.542E-01   2.458E-01
                1.500E-01   6.444E-01   2.056E-01
                2.000E-01   6.237E-01   1.763E-01
                2.500E-01   5.954E-01   1.546E-01
                3.000E-01   5.611E-01   1.389E-01
                3.500E-01   5.217E-01   1.283E-01
                4.000E-01   4.777E-01   1.223E-01
                4.500E-01   4.291E-01   1.209E-01
                5.000E-01   3.753E-01   1.247E-01
                5.500E-01   3.147E-01   1.353E-01
                6.000E-01   2.425E-01   1.575E-01
                6.250E-01   1.974E-01   1.776E-01
                6.500E-01   1.294E-01   2.206E-01
                6.525E-01   7.179E-02   2.757E-01
                6.350E-01   3.269E-02   3.323E-01
                6.120E-01   1.251E-02   3.755E-01
                5.813E-01   1.000E-10   4.187E-01
            };
        \end{ternaryaxis}
    \end{tikzpicture}
\end{document}

该图显示了上述代码的结果

相关内容