]> ruderich.org/simon Gitweb - config/dotfiles.git/commitdiff
maxima: Improved version of norm_2(), also rename to mat_norm2().
authorSimon Ruderich <simon@ruderich.org>
Thu, 23 Jun 2011 14:53:52 +0000 (16:53 +0200)
committerSimon Ruderich <simon@ruderich.org>
Thu, 23 Jun 2011 14:53:52 +0000 (16:53 +0200)
maxima/maxima-init.mac

index 045a2586be08dff3851728548d820e038fd79304..f270c10f3f5bef5153c78a901547447d4fc16c57 100644 (file)
@@ -5,20 +5,15 @@
  */
 
 
-/* PACKAGES */
-
-/* Provides maxi() and mini() (and more). */
-load (descriptive);
-
-
 /* CUSTOM FUNCTIONS */
 
 /* Didn't find any euclid norm in Maxima, so here it is. */
 norm(x) := sqrt(transpose(x) . x);
 
-/* Maxima's norm() can't calculate the 2-norm. Only works for non-complex
- * matrices. */
-norm_2(x) := sqrt(maxi(eigenvalues(transpose(x) . x)[1]));
+/* Maxima's mat_norm() can't calculate the 2-norm. Thanks to Wolfgang Lindner
+ * (http://www.ma.utexas.edu/pipermail/maxima/2007/006300.html) for an
+ * improved version. */
+mat_norm2(x) := sqrt(lmax(eigenvalues(transpose(conjugate(x)).x)[1]));
 
 /* Shortcut to perform lu factorization. */
 lu(x) := block(x : lu_factor(x), get_lu_factors(x));