标签: maxima

Maxima中矩阵的堆积列

我想在Maxima中堆叠矩阵的列。

b3: matrix(
 [1,0,0], 
 [-a21,1,0], 
 [-a31,-a32,1]
);
Run Code Online (Sandbox Code Playgroud)

我想知道如何堆叠此矩阵的列。在此先感谢您的帮助和时间。

maxima

5
推荐指数
1
解决办法
1249
查看次数

如何在Maxima中将列表作为变量参数传递?

在 Maxima 中,有一些函数接受变量参数,如 diag_matrix( a1,a2,...,an),用于创建对角元素为 a1,...,an 的对角矩阵

但是,目前我有一个 [a1,a2,..an] 列表,并想从中创建一个对角矩阵。diag_matrix 不能直接接受列表;反正有没有利用 diag_matrix 来创建矩阵?

variables arguments list maxima

5
推荐指数
1
解决办法
1232
查看次数

最大值的任意大小矩阵

我想用任意大小的矩阵进行一些计算.简单的例子 - 使用两个矩阵NxM和MxK,使用任意元素,并将产品元素视为总和.

但我无法找到一种方法来进行这种符号计算,而无需将矩阵大小指定为整数.

matrix()想要整数,makelist()想要整数.

有没有办法在maxima中做这样的事情?还是CAS?

matrix computer-algebra-systems maxima

5
推荐指数
1
解决办法
282
查看次数

如何使Maxima的输出更干净?

我想利用Maxima作为后端来解决我的LaTeX输入文件中使用的一些计算.我做了以下步骤.

步骤1

下载并安装Maxima.

第2步

创建一个名为cas.bat(例如)的批处理文件,如下所示.

rem cas.bat
echo off
set PATH=%PATH%;"C:\Program Files (x86)\Maxima-5.31.2\bin"
maxima --very-quiet -r %1 > solution.tex
Run Code Online (Sandbox Code Playgroud)

将批处理保存在下面的输入文件所在的同一目录中.这只是为了简单起见.

第3步

创建名为main.tex(例如)的输入文件,如下所示.

% main.tex
\documentclass[preview,border=12pt,12pt]{standalone}
\usepackage{amsmath}

\def\f(#1){(#1)^2-5*(#1)+6}


\begin{document} 

\section{Problem}
Evaluate $\f(x)$ for $x=\frac 1 2$.

\section{Solution}
\immediate\write18{cas "x: 1/2;tex(\f(x));"}

\input{solution}

\end{document}
Run Code Online (Sandbox Code Playgroud)

第4步

编译输入文件,pdflatex -shell-escape main您将得到一个很好的输出,如下所示.

!在此输入图像描述

第5步

完成.

问题

显然,Maxima的输出如下.我不知道如何让它更清洁.

solution.tex

                                       1
                                       -
                                       2
$${{15}\over{4}}$$
                                     false
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是

  • 如何删除这些文本?
  • 如何获得\frac{15}{4}没有$$...$$

maxima

5
推荐指数
1
解决办法
5955
查看次数

Maxima:如何用符号替换常见的子表达式

假设我有一个表达式(实际上我的更复杂,成千上万的字符)

expr:a+b*c+b*c*d;
Run Code Online (Sandbox Code Playgroud)

我想用符号替换内部子表达式(有助于避免重新计算公共子表达式),k代替b*c:

subst(b*c=k,expr);
Run Code Online (Sandbox Code Playgroud)

回报

k+b*c*d+a
Run Code Online (Sandbox Code Playgroud)

如何让Maxima计算出"正确"的替代以便返回(除了obviuos简化,这里)

k+k*d+a
Run Code Online (Sandbox Code Playgroud)

expression replace symbols maxima

5
推荐指数
1
解决办法
4251
查看次数

简化maxima软件中的公式

我正在使用maxima软件来帮助我简化公式.通常情况下,我可以轻松地管理subst,ratsubst,factor,ratsimp,......但是仍然有很少的公式我觉得难以简化我想要的方式.

  1. 假设a> b和c> d,我想用这样的方式简化以#开头的分数:

    -(a - b)/(d - c)    ->   ( a - b )/( c - d)
    
    Run Code Online (Sandbox Code Playgroud)

    但我不知道怎么做.似乎maxima简化算法将尝试以自己的方式对变量进行排序.

    我创建了自己的最大值函数来尝试简化这些无用的减号.

    no_minus(fraction):=
      block([simp:true,
         numerat:expand(-ratnumer(fraction)),
         denominat:expand(-ratdenom(fraction))],
        block([simp:false],
          numerat/denominat));
    -a/(b-x);
    no_minus(-a/(b-x));
    no_minus(-a*b*c/(b-x*b*f-f));
    
    Run Code Online (Sandbox Code Playgroud)

    我原以为no_minus(-a /(bx))会返回/(xb),但事实并非如此.

  2. 我想介绍一个新的中缀运算符来表示两个表达式大致相等.例如,如果x大约等于y.我想注意一下

    x =~ y

    infix("=~").

如何配置简化器以便在输入时

2*x+3 =~ u+v;
(%-3)/2;

输出是

x =~ (u+v-3)/2

maxima

5
推荐指数
1
解决办法
640
查看次数

千里马:如何用复数进行正式计算?

我是Maxima的新手,我在文档中找不到如何对复数进行正式计算.当我使用未指定的变量时,Maxima似乎认为它们是真实的:例如,共轭(x)返回x.

反正有没有解决这个问题?

提前致谢.

maxima

5
推荐指数
1
解决办法
2666
查看次数

Maxima:如何替换方程中的变量

我正在尝试写下我的工作笔记。Maxima 简化我工作的方式是,一旦我编写了一堆方程并且我想要更改变量的定义,我就会这样做并重新评估整个文件。

这是我想要实现的目标的示例:


问题 1:我有一个方程组,我想要从 Maxima 得到的只是变量替换。

eq1: x=a+b+c
eq2: y=d+e+f
eq3: x+y=0
Run Code Online (Sandbox Code Playgroud)

如何让 Maxima 输出

eq3: a+b+c+d+e+f = 0
Run Code Online (Sandbox Code Playgroud)

所以将来如果我想让x成为a+bc,我只需改变它并重新评估


问题2:与之前类似但更复杂一些

eq1: x=a+b+c
eq2: y=d+e+f
eq3: x=y
eq4: a+s+e=0
Run Code Online (Sandbox Code Playgroud)

如何让 Maxima 输出

eq3 a+b+c=d+e+f
Run Code Online (Sandbox Code Playgroud)

如何让 Maxima 求解 a 的 eq1 并求解 e 的 eq2 并输出

eq4: x-b-c+s+y-d-f = 0
Run Code Online (Sandbox Code Playgroud)

预先感谢您的帮助,Guido

symbolic-math maxima

5
推荐指数
1
解决办法
1万
查看次数

如何获得最大值 3*x*y 的系数?

如何获得最大值 3*x*y 的系数?我试过了coeff(3*x*y, x*y)。但它只适用于形式的表达式coefficient*var^n

maxima

5
推荐指数
0
解决办法
146
查看次数

使用 Maxima 的 For 循环

for i:1 thru 3 step 1 do;
posix:arithsum(li*cos(ri(t))),1,i-1)+(li*cos(ri(t))/2);
posiy:arithsum(li*sin(ri(t))),1,i-1)+(li*sin(ri(t))/2);
Run Code Online (Sandbox Code Playgroud)

我想要做的是获得 6 个位置函数(3 x 和 3 y)。它应该给我如下值:

pos1x:l1*cos(r1(t))/2;
pos2x:l1*cos(r1(t))+l2*cos(r2(t))/2;
pos3x:l1*cos(r1(t))+l2*cos(r2(t))+l3*cos(r3(t))/2;
Run Code Online (Sandbox Code Playgroud)

那么,为什么我的代码不起作用?

loops for-loop maxima

5
推荐指数
1
解决办法
5282
查看次数