Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
/* * This file: * http://anggtwu.net/MAXIMA/mac1.mac.html * http://anggtwu.net/MAXIMA/mac1.mac * (find-angg "MAXIMA/mac1.mac") * Author: Eduardo Ochs <eduardoochs@gmail.com> * * This file implements a convenient shorthand for MacLaurin series. * It works like this: * * (%i2) mac(1,2,3); * 2 * (%o2) 3 x + 2 x + 1 * (%i3) mac(1,2,3,...); * 2 * (%o3)/T/ 1 + 2 x + 3 x + . . . * (%i4) mac(1,2,3,...) * mac(0,1,0,...); * 2 * (%o4)/T/ x + 2 x + . . . * (%i5) 1 / mac(1,2,-3,4,5,...); * 2 3 4 * (%o5)/T/ 1 - 2 x + 7 x - 24 x + 72 x + . . . * (%i6) * * I used it in: * * 2hT279 (c2m232p2p 3 "questao-4") * (c2m232p2a "questao-4") * http://anggtwu.net/LATEX/2023-2-C2-Tudo.pdf#page=279 * * 2hQ96 (find-c2q232page 96 "42,nov29: Séries formais") * (find-c2q232page 99 "dec04: Aula de reposição/reforço") * http://anggtwu.net/2023.2-C2/C2-quadros.pdf#page=96 * * See: (find-es "maxima" "mac-nofix") * * (defun e () (interactive) (find-angg "MAXIMA/mac1.mac")) */ mac_mkpoly0 (L,n) := sum(L[k]*x^(k-1), k, 1, n); mac_mkseries0(L,n,deg) := taylor(mac_mkpoly0(L, n), x, 0, deg); mac_mkpoly (L) := mac_mkpoly0 (L, length(L)); mac_mkseries (L) := mac_mkseries0(L, length(L)-1, length(L)-2); mac ([L]) := if is(L[length(L)] = "...") then mac_mkseries(L) else mac_mkpoly (L); nofix ("..."); ... := "..."; mac_Lp0(m, n) := makelist(ratcoef(m,x,k-1), k, 1, n); mac_Ls0(m, n) := append(mac_Lp0(m, n), ["..."]); mac_Lp (m) := mac_Lp0(m, hipow(m,x)+1); mac_Ls (m) := mac_Ls0(m, taylorinfo(m)[1][3]+1); mac_L (m) := if taylorp(m) then mac_Ls(m) else mac_Lp(m); mac_ify(m) := buildq([L:mac_L(m)], mac(splice(L))); /* mac_Ls (m) := mac_Ls0(m, hipow(m,x)+1); */ /* * (eepitch-maxima) * (eepitch-kill) * (eepitch-maxima) load("~/MAXIMA/mac1.mac"); mac(1,2,3); mac(1,2,3,...); mac(1,2,3,...) * mac(0,1,0,...); 1 / mac(1,2,-3,4,5,...); mac1 : mac(1,2,-3,4,5,...); mac2 : mac(a,b,c,d,e,...); mac2 : 1/mac1; mac1 * mac2; mac_Lp0(mac1, 5); mac_Ls0(mac1, 6); mac_coefs2(mac1); mac_coefs3(mac1); mac_coefs2(x^2); mac_L (1/mac1); mac_ify(1/mac1); mac_ify(x^2); ratp(mac1); ratp(x^2); mac_ify(taylor(sin(x), x, 0, 8)); */