计算字符串 `sin(x)+3`,其中 `x` 为给定值

计算字符串 `sin(x)+3`,其中 `x` 为给定值

我定义了一个宏,它以类似 的字符串作为输入sin(x)+3,一个开始x和一个结束x,并使用\addplotPGFplots 进行绘制。

现在我想评估这个函数是否等于作为参数提供给宏的x结尾,以找出函数在什么高度结束。x

问题是:如何评估给定sin(x)+3x字符串

我尝试使用pgfmathparse但失败了,并且我知道有其他解决方案\x,但我只想使用字符串sin(x)+3

编辑:好的,这是我目前的代码:

\renewcommand\line[2]{\addplot[domain=#1]{#2};}
\newcommand\dotted[2]{\addplot[dotted] plot[] coordinates{(#1)(#2)};\addplot[holdot] coordinates{(#1)};\addplot[holdot] coordinates{(#2)};}

\newcommand\pwpreviousset{0}
\newcommand\pwpreviousx{0}
\newcommand\pwpreviousy{0}
\newcommand\pwstart[1]{\renewcommand\pwpreviousset{0}\renewcommand{\pwpreviousx}{#1}}
\newcommand\pw[4]
{
\ifnum\pwpreviousset=1
    \dotted{{\pwpreviousx,\pwpreviousy}}{{\pwpreviousx,#1}}
\fi
\line{\pwpreviousx:#4}{#2}
\renewcommand{\pwpreviousx}{#4}
\renewcommand{\pwpreviousy}{#3}
\renewcommand\pwpreviousset{1}
}

上面的代码运行完美,只是我希望宏的参数 1 和 3pw能够自动确定。这些参数表示函数的起始和结束 y 值,即参数 2。我像这样使用它们:

\pwstart{0}
\pw{1}{1+x}{4}{3}
\pw{-1}{2-x}{-2}{4}

但我想以编程方式确定开始y和结束y

答案1

为此,您需要定义x为一个函数,使用

\pgfkeys{/pgf/declare function={x=90;}}

然后你就可以在以下位置使用你的表达式\pgfmathparse

\documentclass{article}
\usepackage{tikz}
\begin{document}
\pgfkeys{/pgf/declare function={x=90;}}
\pgfmathparse{sin(x)+3}\pgfmathresult
\end{document}

相关内容