Convierta una ecuación de terminología de látex en una versión adecuada para wolfram alpha

Convierta una ecuación de terminología de látex en una versión adecuada para wolfram alpha

Hice una pregunta de combinatoria sobre el intercambio de pilas de matemáticas y recibí lo siguienteRespuesta con sabor a LaTeX. He intentado convertir esa ecuación en algo que pueda entenderse mediante wolframio alfa; sin embargo, no parece funcionar. ¿Alguna idea sobre cómo editar la sintaxis de la ecuación? He publicado a continuación la sintaxis utilizada.

\[
n!+\sum_{i=1}^{n-1}(-1)^i\sum_{k=1}^i\binom{i-1}{i-k}\binom{n-i}{k}2^k(n-i)!
\]

Respuesta1

Tabla de contenido:

  • respuesta inicial usandoxintexpry la fórmula de OP. La implementación es ampliable...

  • segunda respuesta usando la fórmula de recurrencia dada enhttp://oeis.org/A002464. Este segundo enfoque construye de una vez por todas una serie de valores de la expresión dada. Utiliza paquetebnumexprpara cálculos con números enteros grandes.


Puedes calcular esto usando TeX o LaTeX.

Algunos detalles un poco dolorosos se detallan en los comentarios del código: el principal es que la función binomial(x,y) actualmente emite un error si y>x, en lugar de devolver silenciosamente cero.

\documentclass{article}

\usepackage{xintexpr}[2016/03/12]% 1.2f or more recent needed for binomial

\begin{document}

% unfortunately the default binomial(x,y) function raises an error
% if y>x. Hence define wrapper to intercept the case.
\xintdefiifunc bbinomial(x,y):=if(y>x,0,binomial(x,y));

% unfortunately we can not use \xintdefiifunc F(n):=....; syntax because the
% function variable "n" appears in the summation range. This is current
% limitation, documented in §10.10.3 of xint.pdf.

% Hence we use a macro interface, which will need braces: \myF{10}.

% We employ parentheses around #1 in case
% it is itself some math expression.

% we choose \xintiiexpr rather than \xinttheiiexpr, for efficiency
% if used in other expressions.

\newcommand\myF [1]{% n = #1
   \xintiiexpr (#1)!+
   add((-1)^i % probably faster: ifodd(i, -1, +1)
       *add(binomial(i-1,i-k)*bbinomial((#1)-i,k)*2^k, 
       k=1..i)*((#1)-i)!, 
   i=1..(#1)-1)\relax }

% unfortunately in xintiiexpr, currently 1..0 does not evaluate
% to empty range, but proceeds by negative steps, hence evaluate to
% 1, 0 which we don't want.

% 1..[1]..0 would create such an empty range.
% but further problem is that add(<expression>, i = <range>) syntax
% currently does not work with range being empty.

% Consequently the above expression requires n > 1.

% test
% \xinttheiiexpr seq(\myF{n}, n=2..10)\relax

\medskip
\begin{tabular}{c|r}
  $n$&$F(n)$\\
\hline
\xintFor* #1 in {\xintSeq{2}{20}}
\do
{$#1$&$\xintthe\myF{#1}$\\}
\end{tabular}

\end{document}

ingrese la descripción de la imagen aquí


Enfoque más realista que define de una vez por todas las macros expandiéndose a los valores combinatorios. Basado en fórmula de recurrencia.

\documentclass{article}

\usepackage{bnumexpr}

% http://oeis.org/A002464

% If n = 0 or 1 then a(n) = 1; if n = 2 or 3 then a(n) = 0; otherwise a(n) =
% (n+1)*a(n-1) - (n-2)*a(n-2) - (n-5)*a(n-3) + (n-3)*a(n-4)

% 1, 1, 0, 0, 2, 14, 90, 646, 5242, 47622, 479306, 5296790, 63779034

\begin{document}

\begingroup
\makeatletter

\@namedef{F<0>}{1}
\@namedef{F<1>}{1}
\@namedef{F<2>}{0}
\@namedef{F<3>}{0}

\count@=4

\loop
% no \@nameedef in latex
  \expandafter\edef\csname F<\the\count@>\endcsname
       {\thebnumexpr (\count@+1)*\@nameuse{F<\the\numexpr\count@-1>}
                    -(\count@-2)*\@nameuse{F<\the\numexpr\count@-2>}
                    -(\count@-5)*\@nameuse{F<\the\numexpr\count@-3>}
                    +(\count@-3)*\@nameuse{F<\the\numexpr\count@-4>}\relax}%
\ifnum\count@<30
\advance\count@\@ne
\repeat

\count@=0

\ttfamily

http://oeis.org/A002464

\loop
\the\count@: \@nameuse{F<\the\count@>}\endgraf
\ifnum\count@<30
\advance\count@\@ne
\repeat

\endgroup

\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Aquí hay un enfoque de computación basado en LuaLaTeX F(n)como una función de n. En relación con la versión que proporcionó, la fórmula se reformuló un poco para (a) agregar llaves y corchetes para proporcionar una agrupación visual y (b) algún texto explicativo para resaltar el exterior ("i") y el interior ("k") para bucles.

La tabla comienza n=2desde F(1)=1trivialmente. (F(1) escalculado correctamente, por cierto). Para la tabla, lo configuré n_{\max}en 15; de hecho, el método de cálculo no produce un desbordamiento siempre que n<20.

ingrese la descripción de la imagen aquí

\documentclass{article}
\usepackage{amsmath} % for "\binom" macro
\usepackage{luacode} % for "luacode" env. and "\luaexec" macro
\begin{luacode}
-- First, define two helper functions: "factorial" and "mchoose"
function factorial ( n )
   local k
   if n==0 or n==1 then
      return 1
   else
      return n * factorial(n-1)
   end
end

-- 'mchoose' is patterned after the posting in http://stackoverflow.com/a/15302448. 
-- Thanks, @egreg, for pointing me to this posting!
function mchoose( n, k )
     if ( k == 0 or k == n ) then
        return 1
     else
        return ( n * mchoose(n - 1, k - 1)) / k 
     end
end

-- Second, set up the function "F"
function F ( n )
   local i, k, result, kterm
   result = factorial ( n ) 
   for i=1,n-1 do           -- outer loop is entered only if n>1
      kterm=0  -- (re)set "kterm" to 0
      for k=1,i do
         kterm = kterm + mchoose(i-1,i-k) * mchoose(n-i,k) * 2^k 
      end
      result = result + ((-1)^i) * factorial(n-i) * kterm
   end
   return result
end

\end{luacode}

\begin{document}
\[
F(n)=n!+\biggl\{\,
     \underbrace{ \sum_{i=1}^{n-1} (-1)^i (n-i)! \biggl[\,
         \underbrace{\sum_{k=1}^i \binom{i-1}{i-k} \binom{n-i}{k} 2^k}_%
         {\text{inner or $k$ loop}}\biggr]}_%
     {\text{outer or $i$ loop}}\biggr\}
\]

\bigskip
% print values of n and F(n) for n=2,...,15
\[
\begin{array}{@{}rr@{}}
\hline
n & F(n) \\
\hline
\luaexec{for n=2,15,1 do
           tex.sprint(n .. "&" .. math.floor(F(n)) .. "\\\\")
         end}
\hline
\end{array}
\]
\end{document}

información relacionada