LaTex - 변수에 대한 대수 연산 수행

LaTex - 변수에 대한 대수 연산 수행

다음 문서가 있다고 가정해 보겠습니다.

\documentclass{article}

\newcommand\mass{30}
\newcommand\acc{9.8}

\newcommand\force{\the\numexpr \mass * \acc \relax} % F=m*a

\begin{document}
  \section{Exerted force}
    F = \force N
\end{document}

세 개의 '변수', 즉 처음 두 변수의 곱인 mass, acc및 를 생성합니다 .force

이 특정 예( mass = 30, acc = 9.8)는 F = 270.8N의도한 대로 를 인쇄합니다.

곱셈은 \numexpr​​명령에 의해 수행됩니다. 이것은 언제든지 작동 mass하며 acc둘 다 일반 숫자입니다. mass또는 이 acc변수(예: )인 경우 숫자에 대해서만 작업을 수행할 수 \newcommand\mass{m}있으므로 문서가 작성되지 않습니다 .\numexpr

mass = 30g변수에 대수 연산을 수행하여 언제 및 acc = g가 인쇄되도록 하는 방법이 있습니까 F = 30g^2? 나는 이것이 물리적으로 말이 되지 않는다는 것을 알고 있지만 요점은 분명하다고 생각합니다.

몇 가지 다른 예:

  • mass = m, acc = 9.8-> F = m*9.8또는F = 9.8*m
  • mass = m, acc = g-> F = m*g또는F = g*m
  • mass = x, acc = x->F = x^2

\numexpr편집: @PhelypeOleinik이 친절하게 지적 했듯이정수. 따라서 9.8 * 30 = 294인 경우 30 * 9 = 270이고 .8을 추가하므로 결과는 270.8입니다.

답변1

sagetex요청한 패키지를 사용하는 코드는 다음과 같습니다 .

\documentclass{article}
\usepackage{sagetex}
\begin{document}
\begin{sagesilent}
m = 30.0
a = 9.8
Force = m*a
var('g')
mass = 30*g
\end{sagesilent}
\section{Exerted force}
    F = $\sage{Force.n(digits=5)}$ N \\\\
If the mass is $\sage{mass}$ then it's square is $\sage{mass^2}$.
\begin{sagesilent}
var('m')
acc = 9.8
\end{sagesilent}

$F = \sage{m*acc.n(digits=2)}$\\
\begin{sagesilent}
var('a')
m=a
\end{sagesilent}
If the mass, $m$, is equal to the acceleration, $a$ then 
$F = \sage{m*a}$.

Sage even works with square roots:
\begin{sagesilent}
var('g')
m=sqrt(3)
\end{sagesilent}
$F = \sage{m*g}$ which, if you want decimals, is about     $F=\sage{m.n(digits=4)*g}$
\end{document}

Cocalc에서 실행되는 출력(위의 설명에서 언급됨)은 다음과 같습니다. 여기에 이미지 설명을 입력하세요

Sage에서 x는 기본적으로 변수입니다. 다른 변수는 코드에서 정의한 대로 정의해야 합니다(예: var('g')). 환경 sagesilent은 스크래치 종이와 같습니다. 이는 계산을 수행하는 Python 및 Sage 명령으로 구성됩니다. \sage{}결과를 얻으려면 형식을 사용하십시오 . 숫자이므로 수학 모드(달러 기호 사이)에서 수행됩니다. 세이지는 많은 숫자를 제공하는 경향이 있습니다. 그러면 .n(digits=5)답은 유효숫자 5자리가 됩니다.

답변2

pythontex패키지를 사용하여 LaTeX 문서에 Python을 포함시킨 다음 다음 sympy과 같이 기호 계산에 Python 패키지를 사용할 수 있습니다 .

\documentclass{article}

\usepackage{pythontex}

\begin{pycode}
from sympy import *

m = sqrt(3)
a = symbols('g')
f = m * a
\end{pycode}

\begin{document}
  \section{Exerted force}
    F = $\pyc{print(latex(f))}$
\end{document}

pythontex이를 위해서는 LaTeX, python3, LaTeX용 패키지 및 Python용 패키지가 설치되어 있어야 합니다 sympy. 또한 Python에 대한 지식이 있으면 문제가 되지 않습니다.

코드에 대한 간단한 설명:

\usepackage{pythontex}필요한 패키지를 가져옵니다.

\begin{pycode}파이썬 코드 블록을 시작합니다.

다음 Python 코드 블록을 살펴보겠습니다.

from sympy import *

m = sqrt(3)
a = symbols('g')
f = m * a

그러면 라이브러리를 가져오고 3의 제곱근과 변수로 sympy설정합니다 . 그런 다음 곱하여 결과 를 에 저장합니다 . 3의 제곱근을 구하는 데 사용되는 함수는 수학 라이브러리가 아닌 라이브러리의 함수입니다. 이는 즉magmafsqrt()sympym정확히와 같으며 sqrt(3)근사치가 아닙니다.

$\pyc{latex(f)}$그런 다음 latex(f)반환되는 내용을 인쇄합니다. 이제 f의 값은 와 같습니다 sqrt(3) * g. 함수 를 통과하면 latex()LaTeX 표기법을 사용하여 인쇄되므로 수학 모드로 들어가려면 달러 기호가 필요합니다.

latex이는 먼저 를 호출 한 다음 pythontex다시 호출 하여 빌드할 수 있습니다 latex.

결국 문서는 다음과 같이 보일 것입니다.

결과

sympy및에 대한 일부 리소스 pythontex:

관련 정보