我想在Maxima中堆叠矩阵的列。
例
b3: matrix(
[1,0,0],
[-a21,1,0],
[-a31,-a32,1]
);
Run Code Online (Sandbox Code Playgroud)
我想知道如何堆叠此矩阵的列。在此先感谢您的帮助和时间。
在 Maxima 中,有一些函数接受变量参数,如 diag_matrix( a1,a2,...,an),用于创建对角元素为 a1,...,an 的对角矩阵
但是,目前我有一个 [a1,a2,..an] 列表,并想从中创建一个对角矩阵。diag_matrix 不能直接接受列表;反正有没有利用 diag_matrix 来创建矩阵?
我想用任意大小的矩阵进行一些计算.简单的例子 - 使用两个矩阵NxM和MxK,使用任意元素,并将产品元素视为总和.
但我无法找到一种方法来进行这种符号计算,而无需将矩阵大小指定为整数.
matrix()想要整数,makelist()想要整数.
有没有办法在maxima中做这样的事情?还是CAS?
我想利用Maxima作为后端来解决我的LaTeX输入文件中使用的一些计算.我做了以下步骤.
下载并安装Maxima.
创建一个名为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)
将批处理保存在下面的输入文件所在的同一目录中.这只是为了简单起见.
创建名为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)
编译输入文件,pdflatex -shell-escape main您将得到一个很好的输出,如下所示.
!
完成.
显然,Maxima的输出如下.我不知道如何让它更清洁.
solution.tex
1
-
2
$${{15}\over{4}}$$
false
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是
\frac{15}{4}没有$$...$$?假设我有一个表达式(实际上我的更复杂,成千上万的字符)
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)
?
我正在使用maxima软件来帮助我简化公式.通常情况下,我可以轻松地管理subst,ratsubst,factor,ratsimp,......但是仍然有很少的公式我觉得难以简化我想要的方式.
假设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),但事实并非如此.
我想介绍一个新的中缀运算符来表示两个表达式大致相等.例如,如果x大约等于y.我想注意一下
x =~ y
infix("=~").
如何配置简化器以便在输入时
2*x+3 =~ u+v;
(%-3)/2;
输出是
x =~ (u+v-3)/2
我是Maxima的新手,我在文档中找不到如何对复数进行正式计算.当我使用未指定的变量时,Maxima似乎认为它们是真实的:例如,共轭(x)返回x.
反正有没有解决这个问题?
提前致谢.
我正在尝试写下我的工作笔记。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
如何获得最大值 3*x*y 的系数?我试过了coeff(3*x*y, x*y)。但它只适用于形式的表达式coefficient*var^n。
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)
那么,为什么我的代码不起作用?