说明牛顿最快下降路径

说明牛顿最快下降路径

我想在 Latex 中制作以下最速降线图片:

在此处输入图片描述

我在这个网站上搜索了可以修改的极速降线插图,结果发现:

在 Metapost 中编码最速降线

在多次尝试修改代码失败后(尽管这是我第一次弄清楚如何运行 Metapost 代码),它决定发布这个问题。任何帮助我制作第一张图片(最好是我熟悉的 Latex)的帮助都将不胜感激。

谢谢。

答案1

这是我以前回答的更现代版本,展示了如何绘制其他曲线的近似值。这包含在luamplib您需要用 编译它的内容中lualatex。有关 Metapost 的更多信息,请关注此链接

在此处输入图片描述

\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
beginfig(1);
    pair A, B;
    A = (-1,1) scaled 300;
    B = origin;

    draw A -- (xpart A, ypart B) -- B withpen pencircle scaled 1/4 withcolor 3/4 white;

    path p[];
    p1 = A -- B;  % line

    % circular
    z0 = (xpart B, ypart A);
    p2 = quartercircle rotated 180 scaled 2 abs (z0-B) shifted z0;

    % parabola f = x^2, f' = 2x
    p3 = A{1,-2} ... (xpart 1/2[A, B], ypart 3/4[A, B]){1,-1} ... B {1, 0};

    % sixth degree f = x^6, f' = 6x^5 
    p4 = A{1,-6} ... (xpart 1/2[A, B], ypart 63/64[A, B]){1, -6/32} ... B {1, 0};

    r = 172; % <- a magic number...
    p5 = (origin for t=5 step 5 until 180: -- (0,r) rotated t shifted ((t/57.29578,-1) scaled r) endfor) 
         shifted A cutafter ((up--down) scaled 10 shifted B);
    

    drawoptions(withcolor 2/3 red);         draw p1; dotlabel.urt("Line", point 1/4 of p1);
    drawoptions(withcolor 1/2 green);       draw p2; dotlabel.urt("Circle", point 1 of p2);
    drawoptions(withcolor 1/4[red, green]); draw p3; dotlabel.urt("Parabola", point 1/2 of p3);
    drawoptions(withcolor 3/4[red, green]); draw p4; dotlabel.llft("Sixth degree", point 3/4 of p4);
    drawoptions(withcolor 1/2 blue);        draw p5; dotlabel.urt("Cycloid", point 22 of p5);

    drawoptions();
    dotlabel.ulft("$A$" , A);
    dotlabel.urt("$B$", B);

endfig;
\end{mplibcode}
\end{document}

笔记

  • 让摆线穿过 B 点需要反复试验,因此中间有一个神奇的数字 172。如果我能想到更可靠的方法,我会更新此内容。

  • 为了绘制抛物线和x^6直线的近似值,我只需沿它们选取三个点并添加适当的方向语法,{x,y}以便曲线朝正确的方向运行。要获得更逼真的线条,您必须添加更多点,但我认为这里的草图就没问题。

相关内容