标签: maxima

简化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 比较陌生。我想知道如何使用 maxima 将数组写入文本文件。

maxima

4
推荐指数
1
解决办法
3614
查看次数

如何创建带有最大值滑块的绘图?

为了说明具有无限解系列的一阶颂歌的柯西问题,我将绘制参数化解并可以通过滑块控制参数值。

完整的柯西问题为 y'=sqrt(|y|), y(0)=0,参数解为 y_c(x):={0, if c=>x; (xc)^2/4,如果 x=>c}。
所以我会用滑块来绘制 y=y_c(x) 来控制 c 的值。

谢谢。

plot slider maxima

4
推荐指数
1
解决办法
4371
查看次数

Maxima 中的多个地块

我正在 Maxima 中编写代码,并且有三个图。我可以毫无困难地单独绘制这些,但我不知道如何将它们全部放在一个图上,而不用在一个 for 循环中进行,如果不深入太多细节,这对我的代码来说会很困难。

    for i:1 step 1 while i<=n-1 do(figgdown[i]:plot2d(
    [discrete,[xx[i], -xx[i]],[p[i],p[i]]]));
    for i:1 step 1 while i<=n-1 do(figgup[i]:plot2d(
    [discrete,[xx[i], -xx[i]],[q[i], q[i]]]));
    for i:1 step 1 while i<=n-1 do(figgmiddle[i]:plot2d(
    [discrete,[xx[i], -xx[i]],[pq[i], pq[i]]]));
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以做类似 Mathematica 中的 Show 功能的操作,其中图形一起显示?最好的,本

plot maxima

4
推荐指数
1
解决办法
5580
查看次数

如何在 Maxima 中计算对数?

以下是这里的示例,我在这里尝试过:

log2(x) := log(x) / log(2);
log2(8), float;
Run Code Online (Sandbox Code Playgroud)

但这并没有给出 3,而是得到log(8)/log(2)

logarithm maxima

4
推荐指数
1
解决办法
4066
查看次数

获取等式的右侧

我正在调用该函数mnewton(0=expr, alpha, %pi/4)来获取一个相当复杂的方程的根expr

%(i1)   mnewton(0=expr, alpha, %pi/4)
%(o1)   [alpha=0.678193754078621]
Run Code Online (Sandbox Code Playgroud)

我需要对这个结果应用另一个函数(例如sin),然后想要绘制它。仅链接功能不起作用:

%(i2)   sin(mnewton(0=expr, alpha, %pi/4)[1])
%(o2)   sin(alpha=0.678193754078621)
Run Code Online (Sandbox Code Playgroud)

这是因为表达式alpha=0.678193754078621不是数字。我如何转换alpha=0.678193754078621为 just 0.678193754078621

我不能只是复制数值并手动添加它,因为我想绘制它,并且expr每个 y 都有不同的根。

equation function maxima

4
推荐指数
1
解决办法
546
查看次数

马克西玛(Maxima):建立和加载库的推荐方法是什么?

我想制作一个小的“库”供将来的maxima脚本使用,但是我不确定如何继续(我使用wxMaxima)。千里马的文档覆盖save()load()loadFile()功能,但不提供的例子。因此,我不确定我是否使用正确/最佳方法。我当前基于帖子的解决方案将我的库以* .lisp格式存储。

举一个简单的例子,假设我的库定义了cosSin(x)函数。我打开一个新会话并将此函数定义为

(%i0) cosSin(x) := cos(x) * sin(x);
Run Code Online (Sandbox Code Playgroud)

然后,将其保存到/tmp/目录中的Lisp文件中。

(%i1) save("/tmp/lib.lisp");
Run Code Online (Sandbox Code Playgroud)

然后,我打开一个新的maxima实例并加载该库

(%i0) loadfile("/tmp/lib.lisp");
Run Code Online (Sandbox Code Playgroud)

cosSin(x)现在定义可以称得上

(%i1) cosSin(%pi/4)

(%o1) 1/2
Run Code Online (Sandbox Code Playgroud)

但是,我注意到maxima附带的大量库都是* .mac格式的:该/usr/share/maxima/5.37.2/share/目录包含428 * .mac文件和516 * .lisp文件。这是更好的格式吗?我将如何生成此类文件?

更一般而言,库的保存和加载方式有哪些不同?推荐的方法是什么?

maxima

4
推荐指数
1
解决办法
1244
查看次数

将分段定义的函数积分到最大值

假设我有以下功能:

f(x) := if x<=0 then 0 else if x<=1 then 1 else -1;
Run Code Online (Sandbox Code Playgroud)

或任何其他分段定义的函数。

函数定义似乎有效:

(%i9) f(-11);
f(1/2);
f(2);
(%o7) 0
(%o8) 1
(%o9) -1
Run Code Online (Sandbox Code Playgroud)

然而,这里不评估集成。有可能以某种方式获得 Maxima 中的积分值吗?如果没有的话,是否可以用最大数值来完成?

maxima

4
推荐指数
1
解决办法
681
查看次数

如何简化Maxima CAS中的log(8)/log(2)?

我想简化 log(8)/log(2)

我知道

log(8)/log(2) = log(2^3)/log(2) = 3*log(2)/log(2) = 3
Run Code Online (Sandbox Code Playgroud)

在 Maxima 中是可能的,但对我不起作用:

Maxima 5.41.0 http://maxima.sourceforge.net
using Lisp GNU Common Lisp (GCL) GCL 2.6.12
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
The function bug_report() provides bug reporting information.
(%i1) log(8)/log(2);
                                    log(8)
(%o1)                               ------
                                    log(2)
(%i2) logexpand;
(%o2)                                true
(%i3) log(2^3)/log(2);
(%o3)                               log(8)
                                    ------
                                    log(2)

(%i4) logexpand;
(%o4)                                true
Run Code Online (Sandbox Code Playgroud)

我用:

round(float(log(8)/log(2));
Run Code Online (Sandbox Code Playgroud)

但我认为这不是最好的解决方案(我使用整数)

问题:

  1. 怎么做 ?
  2. 为什么它在 Maxima doc 中 …

integer logarithm maxima

4
推荐指数
1
解决办法
331
查看次数

如何使用 sympy 求生成函数的第 n 项?

我有一个有理函数:f(x) = P(x)/Q(x)。\n例如:

\n\n
f(x) = (5x + 3)/(1-x^2)\n
Run Code Online (Sandbox Code Playgroud)\n\n

因为 f(x) 是生成函数,所以可以写为:

\n\n
f(x) = a0 + a1*x + a2*x\xc2\xb2 + ... + a_n*x^n + ... = P(x)/Q(x)\n
Run Code Online (Sandbox Code Playgroud)\n\n

如何使用 sympy 求生成函数的f(x)n 项(即a_n)?

\n\n

如果 Sympy 中没有这样的实现,我也很想知道这是否在其他包中实现,例如 Maxima。

\n\n

我很感激任何帮助。

\n

python math sympy maxima

4
推荐指数
1
解决办法
1173
查看次数

标签 统计

maxima ×10

logarithm ×2

plot ×2

equation ×1

function ×1

integer ×1

math ×1

python ×1

slider ×1

sympy ×1