Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
/* This file: * http://anggtwu.net/MAXIMA/crossproduct1.mac.html * http://anggtwu.net/MAXIMA/crossproduct1.mac * (find-angg "MAXIMA/crossproduct1.mac") * Author: Eduardo Ochs <eduardoochs@gmail.com> * * (defun e () (interactive) (find-angg "MAXIMA/crossproduct1.mac")) * (find-es "maxima" "crossproduct") * (find-es "maxima" "2023-1-C4-P2") */ columnvector(x) := transpose(matrix(x)); vtolist(v) := transpose(v)[1]; ii : columnvector([1,0,0]); jj : columnvector([0,1,0]); kk : columnvector([0,0,1]); precrossproduct(v, w) := matrix([ii, jj, kk], vtolist(v), vtolist(w)); crossproduct (v, w) := determinant(precrossproduct(v, w)); prenorm(v) := v.v; norm (v) := sqrt(v.v); getx (v) := v[1][1]; gety (v) := v[2][1]; getz (v) := v[3][1]; div (F) := getx(diff(F, x)) + gety(diff(F, y)) + getz(diff(F, z)); /* * (eepitch-maxima) * (eepitch-kill) * (eepitch-maxima) load("~/MAXIMA/crossproduct1.mac"); vtolist(ii); abc : columnvector([a, b, c]); def : columnvector([d, e, f]); precrossproduct(abc, def); crossproduct(abc, def); F : columnvector([a*x*y, b*y*z, c*z*x]); div(F); */