ginsh - 云端在线

这是 ginsh 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


ginsh - GiNaC 交互式外壳

综合


金士 [文件...]

商品描述


金士 是 GiNaC 符号计算框架的交互式前端。 这是
旨在作为测试和试验 GiNaC 功能的工具,而不是作为
替代传统的交互式计算机代数系统。 虽然它可以做很多
这些传统系统可以做的事情,ginsh 没有提供像
循环或条件表达式。 如果您需要此功能,建议您编写
您的 C++ 程序,使用“本机”GiNaC 类框架。

用法


INPUT FORMAT
启动后,ginsh 会显示一个提示 ("> ") 表示它已准备好接受您的
输入。 可接受的输入是由数字组成的数字或符号表达式(例如
42, 2/3 or 0.17)、符号(例如 x or 导致),数学运算符如 +*
功能(例如 or 正常)。 每个输入表达式都必须以
分号 (;) 或冒号 (:)。 如果以分号结尾,ginsh 将评估
表达式并将结果打印到标准输出。 如果以冒号结尾,ginsh 只会
计算表达式但不打印结果。 可以输入多个
一行的表达式。 空格(空格、制表符、换行符)可以在它们之间自由应用
令牌。 要退出 ginsh,请输入 退出 or 出口, 或在提示符下键入 EOF (Ctrl-D)。

评论
双斜线后面的任何内容 (//) 到行尾,所有行开始
带有井号 (#) 被视为注释并被忽略。

号码
ginsh 接受通常的十进制表示法中的数字。 这包括任意精度
整数和有理数以及标准或科学中的浮点数
符号(例如 1.2E6)。 一般规则是如果一个数字包含小数点
(.),它是一个(不精确的)浮点数; 否则它是一个(精确的)整数或
合理的。 整数可以指定为二进制、八进制、十六进制或任意 (2-36)
以前缀为基础 #b, #o, #x#nR

符号
符号由一串字母数字字符和下划线 (_),与
第一个字符是非数字的。 例如 a亩_1 是可接受的符号名称,而
2pi 不是。 可以使用与函数同名的符号(例如 );
ginsh 能够区分这两者。

符号可以通过输入赋值
符号 = 表达;

要取消分配已分配符号的值,请键入
取消分配('符号');

分配的符号在以下情况下会自动评估(= 替换为其分配的值)
他们被使用。 要引用未计算的符号,请放置单引号 (') 围绕名称,
如上面的“取消分配”命令所示。

默认情况下,符号被认为在复杂域中,即它们被视为
它们代表复数。 可以使用关键字更改此行为
真实符号复杂的符号 并影响所有新创建的符号。

以下符号是预定义的常量,不能由
用户:

Pi 阿基米德常数

加泰罗尼亚 加泰罗尼亚常数

欧拉 欧拉-马歇罗尼常数

I 平方(-1)

失败 GiNaC“失败”类的对象

还有特别的
数字
控制不精确数字计算的数字精度的符号。
将整数值分配给数字会将精度更改为给定的数字
小数位。

通配符
has()、find()、match() 和 subs() 函数接受通配符作为占位符
表达式。 这些有语法
$
例如 $0、$1 等。

LAST 印花 表情
ginsh 提供三个特殊符号
%, %% 和 %%%
分别指的是最后一个、倒数第二个和倒数第三个打印的表达式。
如果您想在新的计算中使用先前计算的结果,这些很方便
表达。

操作员
ginsh 提供以下运算符,按优先级降序排列:

! 后缀阶乘

^ 供电

+ 一元加

- 一元减

* 乘法

/

+ 增加

- 减法

< 少于

> 比...更棒

<= 小于或等于

>= 大于或等于

== 等于

!= 不平等

= 符号赋值

所有二元运算符都是左结合的,除了 ^= 哪些是对的——
联想。 赋值运算符的结果 (=) 是它的右手边,所以它是
可以在一个表达式中分配多个符号(例如 a = b = c = 2;).

LISTS
列表由 潜艇解决 职能。 列表由左花括号组成
({)、一个(可能是空的)逗号分隔的表达式序列和一个右花括号
(}).

矩阵
矩阵由一个左方括号 ([),一个非空的逗号分隔序列
矩阵行和一个右方括号 (])。 每个矩阵行由一个开口组成
方括号 ([),一个非空的逗号分隔的表达式序列,和一个结束
方括号 (])。 如果矩阵的行长度不同,则矩阵的宽度
矩阵成为最长行的矩阵,较短的行在末尾填充
值为零的元素。

职能
ginsh 中的函数调用具有以下形式
姓名(参数)
哪里 参数 是一个逗号分隔的表达式序列。 ginsh 提供了几个
内置函数并“导入”由 GiNaC 定义的所有符号函数和
额外的库。 除了链接之外,没有办法定义自己的函数
ginsh 针对定义符号 GiNaC 函数的库。

ginsh 在函数名称上提供 Tab 补全:如果您键入函数的第一部分
名称,如果可能,点击 Tab 将完成名称。 如果您输入的部分不是唯一的,
再次点击 Tab 将显示匹配函数的列表。 两次击中 Tab
prompt 将显示所有可用函数的列表。

内置函数列表如下。 他们几乎都作为各自的 GiNaC 工作
同名的方法,这里就不详细介绍了。 请参考
GiNaC 文档。

炭化(矩阵, 符号) - 矩阵的特征多项式
系数(表达, 对象, ) - 从 a 中提取对象^编号的系数
多项式
搜集(表达, 对象或列表) - 收集相似幂的系数(结果
递归形式)
收集分布式(表达, 名单) - 收集相似幂的系数
(结果为分布形式)
收集共同因素(表达) - 从总和项中收集公因数
共轭(表达) - 复杂的共轭
内容(表达, 符号) - 多项式的内容部分
分解理性(表达, 符号) - 将有理函数分解为多项式
和适当的理性功能
程度(表达, 对象) - 多项式的次数
分额(表达) - 有理函数的分母
行列式(矩阵) - 矩阵的行列式
诊断(表达...) - 构造对角矩阵
差异(表达, 符号 [, 数字]) - 偏微分
划分(表达, 表达) - 精确多项式除法
评估(表达 [, 等级]) - 计算一个表达式,用它们替换符号
赋值
评价(表达 [, 等级]) - 将表达式计算为浮点数
评估(表达) - 评估矩阵的总和、乘积和整数幂
扩张(表达) - 扩展表达式
因素(表达) - 分解一个表达式(单变量)
找(表达, 模式) - 返回模式中所有出现的列表
表达
解决(表达, 符号, , ) - 数值求实值的根
区间内的函数
最大公约数(表达, 表达) - 最大公约数
已(表达, 模式) - 如果第一个表达式包含模式,则返回“1”
作为子表达式,否则为“0”
整数内容(表达) - 多项式的整数内容
逆(矩阵) - 矩阵的逆
是(关系) - 如果关系为真,则返回“1”,否则返回“0”(假或
未定)
厘米(表达, 表达) - 最小公倍数
系数(表达, 对象) - 多项式的领先系数
学位(表达, 对象) - 多项式的低次
解决(等式列表, 符号列表) - 求解线性方程组
地图(表达, 模式) - 将函数应用于每个操作数; 功能是
应用被指定为一个模式,“$0”通配符代表操作数
比赛(表达, 模式) - 检查表达式是否与模式匹配; 返回一个
通配符替换列表或“失败”(如果不匹配)
诺普斯(表达) - 表达式中的操作数数量
普通的(表达 [, 等级]) - 有理函数归一化
数字(表达) - 有理函数的分子
数字名称(表达) - 有理函数的分子和分分子作为
名单
操作(表达, ) - 从表达式中提取操作数
力量(表达式1, 表达式2) - 求幂(相当于写 expr1^expr2)
预科(表达, 表达, 符号) - 多项式的伪余数
原件(表达, 符号) - 多项式的原始部分
现状(表达, 表达, 符号) - 多项式的商
秩(矩阵) - 矩阵的秩
雷姆(表达, 表达, 符号) - 多项式的余数
结果(表达, 表达, 符号) - 两个多项式的结果
关于符号 s
系列(表达, 关系或符号, 秩序) - 系列扩展
精子(表达, 表达, 符号) - 多项式的稀疏伪余数
无平方(表达 [, 符号列表]) - 多项式的无平方因式分解
平方(表达) - 平方根
子(表达, 关系或列表)
子(表达, 寻找清单, 按列表替换) - 替换子表达式(你
可以使用通配符)
系数(表达, 对象) - 多项式的尾随系数
时间(表达) - 返回评估给定值所需的时间(以秒为单位)
表达
痕迹(矩阵) - 矩阵的踪迹
转置(矩阵) - 矩阵的转置
取消分配('象征') - 取消分配指定的符号(请注意引号!)
单元(表达, 符号) - 多项式的单位部分

特别 指令
要退出 ginsh,请输入
退出
or
出口

ginsh 可以显示给定主题的(简短)帮助(主要是关于函数和运算符)
通过输入
?主题
打字
??
将显示可用帮助主题的列表。

命令
打印(表达);
将打印给定的 GiNaC 内部表示的转储 表达。 这是
用于调试和了解 GiNaC 内部结构。

命令
打印乳胶(表达);
打印给定的 LaTeX 表示 表达.

命令
打印_csrc(表达);
打印给定的 表达 以一种可以在 C 或 C++ 程序中使用的方式。

命令
打印(表达);
打印给定的 表达 (必须计算为整数)十进制、八进制和
十六进制表示。

最后,shell逃逸
! [命令 [参数]]
通过给定的 命令 并且可选地 参数 到 shell 执行。 有了这个
方法,您可以在 ginsh 中执行 shell 命令,而无需退出。

示例


> a = x^2-x-2;
-2-x+x^2
> b = (x+1)^2;
(x+1)^2
> s = a/b;
(x+1)^(-2)*(-2-x+x^2)
> 差异(s,x);
(2*x-1)*(x+1)^(-2)-2*(x+1)^(-3)*(-x+x^2-2)
> 正常;
(x-2)*(x+1)^(-1)
> x = 3^50;
717897987691852588770249
> s;
717897987691852588770247/717897987691852588770250
> 数字 = 40;
40
> 评估;
0.999999999999999999999995821133292704384960990679
> 取消分配('x');
x
> s;
(x+1)^(-2)*(-x+x^2-2)
> 系列(sin(x),x==0,6);
1*x+(-1/6)*x^3+1/120*x^5+Order(x^6)
> lsolve({3*x+5*y == 7}, {x, y});
{x==-5/3*y+7/3,y==y}
> lsolve({3*x+5*y == 7, -2*x+10*y == -5}, {x, y});
{x==19/8,y==-1/40}
> M = [ [a, b], [c, d] ];
[[-x+x^2-2,(x+1)^2],[c,d]]
> 行列式(M);
-2*d-2*x*cx^2*cx*d+x^2*dc
> 收集(%,x);
(-d-2*c)*x+(dc)*x^2-2*dc
> 解决量子场论;
量子解析错误
> 退出

诊断


解析错误在 FOO
您输入了 ginsh 无法解析的内容。 请检查语法
您的输入并重试。

论点 NUM功能 必须是一个 类型
参数编号 NUM 给定的 功能 必须是某种类型(例如
符号或列表)。 第一个参数的编号为 0,第二个参数的编号为 1,
等等

使用 onworks.net 服务在线使用 ginsh



最新的 Linux 和 Windows 在线程序