每个人。
我一直在尝试根据以下方程绘制梁的模态形状:
其中,βn*L 在 n = 0 时为 0,在 n = 1 时为 4.7300,在 n = 2 时为 7.8532,等等。
我应该得到以下图表(我使用 mathcha.io 绘制的):
但是,到目前为止,我所能得到的是这个烂摊子(使用 TikZ 绘制)
使用以下代码:
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{tikzpicture}
\begin{axis}[
xlabel = $x$,
ylabel = $w(x)$,
xmin = 0,xmax = 1,
%ymin = 0,ymax = 8,
domain = 0:1,
smooth,thick,
axis lines = middle,
every axis x label/.style={at={(current axis.right of origin)},anchor=west},
every tick/.style = {thick}]
\addplot[color=purple]{(sinh(4.73*x)+sin(4.73*x))+(sin(4.73)-sinh(4.73))/(cosh(4.73)-cos(4.73))*(cosh(4.73*x)+cos(4.73*x))};
\addplot[color=red]{(sinh(7.85*x)+sin(7.85*x))+(sin(7.85)-sinh(7.85))/(cosh(7.85)-cos(7.85))*(cosh(7.85*x)+cos(7.85*x))};
\addplot[color=orange]{(sinh(11*x)+sin(11*x))+(sin(11)-sinh(11))/(cosh(11)-cos(11))*(cosh(11*x)+cos(11*x))};
\end{axis}
\end{tikzpicture}
也许我不太熟悉 TikZ 语法,但我就是无法让它正常工作。
如果有人能给我指明正确的方向,那就太好了!
答案1
默认情况下,PGFplots 以度为单位来表示角度。为了以弧度形式传递角度,您应该使用:trig format=rad
作为环境选项axis
。
\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
trig format=rad, % HERE
xlabel = $x$,
ylabel = $w(x)$,
xmin = 0,xmax = 1,
% ymin = 0,ymax = 8,
domain = 0:1,
smooth,thick,
axis lines = middle,
every axis x label/.style={at={(current axis.right of origin)},anchor=west},
every tick/.style = {thick}]
\addplot[color=purple]{(sinh(4.73*x)+sin(4.73*x))+(sin(4.73)-sinh(4.73))/(cosh(4.73)-cos(4.73))*(cosh(4.73*x)+cos(4.73*x))};
\addplot[color=red]{(sinh(7.85*x)+sin(7.85*x))+(sin(7.85)-sinh(7.85))/(cosh(7.85)-cos(7.85))*(cosh(7.85*x)+cos(7.85*x))};
\addplot[color=orange]{(sinh(11*x)+sin(11*x))+(sin(11)-sinh(11))/(cosh(11)-cos(11))*(cosh(11*x)+cos(11*x))};
\end{axis}
\end{tikzpicture}
\end{document}
网格和其余的格式留作练习。