24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2356  |  回复: 4

truewz

至尊木虫 (文坛精英)

[交流] 【求助】用MAPLE计算一个符号矩阵的行列式的解已有2人参与

我对MAPLE不熟,想用MAPLE计算一个符号矩阵的行列式的解,如下:

                  x        2*a      b
D=      [    2-3b     a         x  ]   
                  4          5         x

%x是要求的量

L=det(D);  

solve(L);  %代入 a=1,b=2, 求出x的三个解


上面复合MATLAB 的语法,请高手用MAPLE编程实现上面的步骤,十分感谢!

[ Last edited by truewz on 2010-6-14 at 16:40 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

扫地虫
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maplesim

★ ★
truewz(金币+5): 2010-06-12 18:04:43
robert2020(金币+2):多谢解答,欢迎常来仿真模拟版交流。 2010-06-12 18:20:54
两个方法可以得到结果:
1. 在Maple中实现

首先输入矩阵:(如果不知道格式可以看帮助,或者用左侧的矩阵面板)
CODE:
M := Matrix(3, 3, [[x, 2*a, b], [2-3*b, a, x], [4, 5, x]])

按回车键,然后用鼠标右键点击上面矩阵,从右键菜单中选择:
Standard Operations ->Determinant

Maple会自动显示求行列式的命令:
CODE:
LinearAlgebra:-Determinant(M)

然后再用鼠标右键,选择 solve下面的菜单,求出x的值。

如果熟悉Maple的命令,就不要这么费劲。

2. 可以直接在MATLAB下用Maple的命令实现。就是在MATLAB中直接输入上面Maple的命令,但输入格式稍微不同。
maple('PackageName[CommandName](arguments)');
对应上面的命令就是maple(LinearAlgebra[Determinant](M)');
2楼2010-06-12 16:42:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maplesim


truewz(金币+1): 2010-06-12 18:04:49
robert2020(金币+1):多谢解答! 2010-06-12 18:21:14
补充说明:

1. 在Maple中不能用D作为变量名,这是内部定义的微分算子。

2. 在Matlab中使用Maple函数,需要安装Maple Toolbox for Matlab,或者安装最新的Maple 14,这个工具箱免费集成到Maple中了。因为我们实验室用的正版Maple,所以在机房可以同时用这两个软件。
3楼2010-06-12 16:46:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

truewz

至尊木虫 (文坛精英)

robert2020:提示使用“引用回复该贴”。 2010-06-12 18:21:41
感谢楼上仁兄,我需要算的是一个循环程序,所以不能每次都点右键。
我的意思是把行列式赋给一个变量,在把符号变量代入,求出X值。
能否麻烦给出程序(再追加5个BB,共计25个),谢谢


注:我用MATLAB算的30*30的符号矩阵,算了几组数据后就算不下去了,所以想改用MAPLE

[ Last edited by truewz on 2010-6-12 at 18:06 ]
扫地虫
4楼2010-06-12 18:04:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maplesim


robert2020(金币+1):多谢耐心解答,欢迎常来仿真模拟版交流。 2010-06-13 10:51:36
truewz(金币+19): 2010-07-22 07:26:39
truewz(金币+1): 2010-11-26 17:24:20
你自己动手在Maple中试试。我上面计算出的行列式,本身就是x=f(a, b, c...)符号变量的表达式。如果代数这些符号变量的值,可以得到x的值。
赋值语句的格式是:a := 2:

如果需要简单的编程,也是比较容易。

Maple的语法与C语言非常相似,Maple内置的函数都是用C和C++写的。

这里举几个简单的例子(下面是从一本书上抄的):

Maple内置完整的程序语言,编写Maple程序实际上是非常简单的,只要在你每天使用的一系列命令前后分别加上proc()及end即可。利用Maple自带的函数程序构造应用程序,是一件极为容易的事情。

例子:
CODE:
prog := proc (x, y)
                    sqrt(x^2+y^2)
                   end proc

CODE:
prog(6, 4)

2*sqrt(13)


if..else 语句
例子:
CODE:
estart;
x := -12;
if `not`(type(x, integer)) then
printf("%a 不是一个整数。", x)
elif x >= 10 then
printf("%a 是一个1位以上的整数。", x)
elif x >= 0 then
printf("%a 是一个一位整数。", x)
else
printf("%a 是一个负整数。", x)
end if

for 循环

例子:
CODE:
for n to 5 do evalf(sqrt(n)) end do

5楼2010-06-13 09:13:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 truewz 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见