TA的每日心情 | 奋斗 2024-7-1 22:21 |
---|
签到天数: 2014 天 [LV.Master]伴坛终老
- 自我介绍
- 数学中国站长
群组: 数学建模培训课堂1 群组: 数学中国美赛辅助报名 群组: Matlab讨论组 群组: 2013认证赛A题讨论群组 群组: 2013认证赛C题讨论群组 |
2#
发表于 2009-9-9 02:16
|只看该作者
|
|邮箱已经成功绑定
如何在matlab中调用maple
9 Q8 K+ o9 r5 s3 {# _- {% c0 k! H4 _. i! q, q3 @
(不用安装maple软件就可调用)
1 J, f( G+ {+ ]9 g9 k$ D5 i* z$ g0 S/ v" {+ `
方法1:
* Q- [2 B" i. {( F9 v$ p' O5 K9 Q9 c4 n9 {4 I
maple(’maplestatement’)
* z+ m( b. r+ T/ e* n2 i
) C" p" m. l- v ]( a2 W- r1 c其中maplestatement 是完整的maple语句,由一条或几条命令组成,必须符合maple 的语法 2 P& e5 c2 a2 ^& C0 D( S
2 s1 V+ R+ {% Y0 ^
方法2:
) b/ e4 e- L5 R" n2 e
1 X; f9 l. ^) {5 o+ T) S1 M' Xmaple(’function’,arg1, arg2,…)
( A9 r/ ^' s' c# V I- q% `. j2 ?" o3 J- [6 b
其中function为maple中的函数名称,arg1, arg2,…是函数function所用的参数。 $ _$ g+ e: J; m& I* U
& v O4 ~6 R6 a6 [8 D; i) F2 q
注:如果方法1行不通,可尝试方法2(个人经验)。
& J7 d3 S8 W `. L: u8 w3 K) N( Z, n$ ^# O! T
基本代数部分
$ {$ L6 K1 }" I6 M ?8 D9 V
5 w7 m6 g$ e& f* M( V0 y: D如何用matlab求阶乘 . h8 Y n3 J/ \6 O" S3 g$ ?: f; b
6 i3 e. Q0 @+ r- T2 U5 C4 Sfactorial(n) 求n的阶乘 ! N/ p! ?! h$ G. \4 r4 g. b4 n
, b J1 n* b0 r1 z$ b" |1 k( s
如何用matlab配方 + g; M5 D0 a$ o3 T
& O& |" u: w; O+ i \没有发现matlab有这一命令,不过我们可以调用maple的命令,调用方法如下:
3 Y8 `' o- m5 w/ o, H/ H6 p6 A, O/ l8 U2 U$ e: W7 K
首先加载maple中的student函数库,加载方法为:maple(’with(student)’)
# Y" h& Z( y* |
6 f N% B' z& e! K5 S然后运行maple中的配方命令,格式为:
Z( ~" v. f! g' c. K. V1 a" [( @+ A3 g ^! r
maple(’completesquare(f)’) 把f配方,其中f为代数表达式或代数方程
* r1 J; U; j2 ]& S& U* r2 E9 \1 D+ O) y4 G, u+ r+ o7 z
maple(’completesquare(f,x)’) 把f按指定的变量x配方,其中f同上
( n* V$ u5 m0 V
4 j/ |4 c0 r; K5 Pmaple(’completesquare(f,{x,y,...})’) 把f按指定的变量x,y,...配方 ( L4 \8 D9 Z9 O& y
7 j- q* F& A* P+ b( k/ R! tmaple(’completesquare(f,[x,y,...])’) 把f按指定的变量x,y,...配方,
- C4 R2 y9 E0 c+ [& G5 f9 N- ?9 f7 u: {; c' o( r& h, W
如何用matlab进行多项式运算
- i1 ~, b" w" d" P8 d$ q
. T, ]1 P* {1 Q; H! p& Q$ D9 t' V(1) 合并同类项
7 f2 { ^+ `4 h* a8 S" T: \
: \$ r' i) P: u# isyms 表达式中包含的变量 collect(表达式,指定的变量) 3 B M( i2 z% C; k2 Z+ C5 i9 \
6 C/ G C/ v& a, p ?) C4 E4 ^
(2)因式分解
9 P- N9 T1 r/ N% ^- |
! i) l, j% h9 z, a# w# Q' nsyms 表达式中包含的变量 factor(表达式) # |8 I9 w8 U: a) D% E! s7 a
3 S* I0 C- ?- e$ U(3)展开 0 d8 u' `# c v
" E J/ j0 ~0 B/ j7 ^
syms 表达式中包含的变量 expand(表达式)
$ d o9 w9 x+ j2 _1 ?+ z/ E' A2 @3 n$ e& Y$ [
我们也可在matlab中调用maple的命令进行多项式的运算,调用格式如下:
P5 S2 ^5 e7 w: s4 Q: [4 B$ D" @. A' ^7 {' Q' Y* |3 \
maple(’maple中多项式的运算命令’)
, v% f, r3 i E& }4 x- p6 J8 ~- i- W4 x6 J
如何用matlab进行分式运算
/ E" H( `, |+ e' W( C# L2 I0 n" L( D+ h# s, }: G. ~0 U
发现matlab只有一条处理分式问题的命令,其使用格式如下:
9 q# ?) O/ _2 G" K2 D9 o' J* f# S6 f; L z8 b% Z9 J
[n,d]=numden(f) 把符号表达式f化简为有理形式,其中分子和分母的系数为整数且分子分母不含公约项,返回结果n为分子,d为分母。注意:f必须为符号表达式
6 U6 `/ E- p. O/ n1 i* w' e* T! t# ?7 ~
不过我们可以调用maple的命令,调用方法如下:
# @$ Y B9 Q/ f5 V2 w, D# Q& X! {' ~ @% i; Q- F0 I
maple(’denom(f)’)
4 [! p# M( |0 r' Y 提取分式f的分母
; w* Z$ d2 ]: d0 z# q * g# d5 Y* G/ u! S6 l$ H+ K
maple(’numer(f)’) / l# V9 d& ~+ i* \0 C# G
提取分式f的分子 # W6 y. a: x1 y0 l9 k
, `& \4 ?; k" ]maple(’normal(f)’ ) 1 p, T j# j2 q
把分式f的分子与分母约分成最简形式
8 ], r s- w6 `4 h# v# \ 9 U1 m9 ~: m- a3 l; O; ~ V; O
maple(’expand(f)’)
v7 v5 b" W2 E+ M$ d7 n 把分式f的分子展开,分母不变且被看成单项。
Q6 L* {( h! ]2 z. M' G9 ^$ E
" ^& z2 I; I v2 A, imaple(’factor(f)’)
- B" P$ f* H8 h/ L7 g 把分式f的分母和分子因式分解,并进行约分。, R& \ L; M2 e1 S0 j
5 B0 ^: C `+ g5 R* F
6 O: S0 q2 T5 d/ h* ]0 h如何用Matlab进行因式分解 0 O) r$ \% [ N, w2 v3 N& q: q( y% K
! b; ]6 W3 C; K# {$ o1 C, Rsyms 表达式中包含的变量 factor(表达式) ; v0 A0 _; Y2 \! X, C* G
$ A+ Z7 `; [- K6 @- R& ?
如何用Matlab展开
. K1 {/ @! O. {7 ]$ j; d! k4 E. T3 H7 I) x# C8 J- y8 u
syms 表达式中包含的变量 expand(表达式) # E" S8 S! k V) m0 }6 Y4 E) o; Q
2 X9 B. j5 f6 ` U, d# K% C
如何用Matlab进行化简
3 k4 Z" }: h' i) A, l$ D
" }* k$ P* w: q9 b, e, Q: P+ e% esyms 表达式中包含的变量 simplify(表达式) 6 K' C8 z: M3 X8 R+ x1 ]
: Y, Z7 p3 a! Z6 b7 ~
如何用Matlab合并同类项 z2 k; o; J: s2 [# w+ F
# p& ]$ z4 _6 Q5 K. B
syms 表达式中包含的变量 collect(表达式,指定的变量)
2 `1 C. {6 p+ v5 \* X: u- K! C3 b
0 I, S# s B# T1 l' x+ o* W如何用Matlab进行数学式的转换 5 r7 Z- B# }$ x
! V2 o6 ~* B1 u0 | n5 r调用Maple中数学式的转换命令,调用格式如下:
, j( }% z( i2 X) p5 G A# J
2 I* g! I+ {1 O# Y& Tmaple(‘Maple的数学式转换命令’)
; d3 m2 W8 N) H |7 T4 Z: g
+ T6 A0 S5 U" l! L3 n即:maple(‘convert(表达式,form)’) 将表达式转换成form的表示方式
3 g/ p& q3 d5 @( y
2 C* y" K4 W5 S2 ]! {; V1 qmaple(‘convert(表达式,form, x)’) 指定变量为x,将依赖于变量x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用)
9 w- ~6 ]7 V# S: g, z& A8 @1 r x: t! |" Y9 V$ X; c
如何用Matlab进行变量替换 7 o; Y; {. T7 V* n
( L/ |3 T; B, K+ o; G: L
syms 表达式和代换式中包含的所有变量 subs(表达式,要替换的变量或式子,代换式)
H8 h d: } o; c
: X) D/ {* ~# h. n( C$ d: \ 如何用matlab进行复数运算 " B7 a$ l- q7 c7 \4 C+ u
, F' r% ~3 n- |6 i5 ha+b*i 或 a +b*j
7 w [) i4 V* K5 e* \: e 表示复数a+bi 或 a+bj
% u) N! w9 C+ N- ~$ v
6 Q5 x' D5 l2 A/ w! {, R2 |/ Ireal(z)
( X+ T8 J7 {# r! v: D 求复数z的实部 / L" ^. |) q6 c! D
" g1 @, p1 Q' Q: ?4 ?1 D$ kimag(z) * s1 v7 j! ^" W% p
求复数z的虚部
/ G0 o7 n! D; A' ~6 [8 I
9 \# G+ \' ~: n$ {abs(z) ( x1 [4 ], v# R2 |. ]- W
求复数z的模 # F7 a+ J3 }" ^8 q9 s5 _
# r7 X; `( s7 [$ `$ F; O8 ]angle(z)
$ o4 u1 ?. c5 l 求复数z的辐角,
m5 a: T0 C; h" C! L
$ X1 s$ g& X3 k! c1 nconj(z)
3 J* y+ f+ Y+ j8 h 求复数z的共轭复数 # i) }0 f+ O# v' T5 y/ T' j
( [. U& i4 z: G$ k
exp(z) - [) p1 P" w8 M6 W1 x: i
复数的指数函数,表示e^z
* t( M0 V, F1 o
; B( w2 r/ D8 c q0 m8 {9 c3 ]) x' N4 S! M" s; {+ e0 H
如何在matlab中表示集合 ' D# m# t2 D C
- g" o' R1 k ?, C5 d+ y
[a, b, c,…] 表示由a, b, c,…组成的集合 (注意:元素之间也可用空格隔开) , d$ @9 f4 V8 N( G4 ~
& L. ~# G- T6 N# W9 W! Hunique(A) 表示集合A的最小等效集合(每个元素只出现一次) 3 C- c D3 k+ q2 Q' Y
' f, V: \9 c9 J6 l5 V9 }* a4 ]也可调用maple的命令,格式如下:
. R3 ^5 F9 s3 ^7 D$ m( c0 r% F) Z& i0 L0 [0 \* g
maple('{a, b, c,…}') 表示由a, b, c,…组成的集合 : @% L3 k8 |( H% N! {, j* J
# O F. u5 R) e# ]- h: u1 m! g4 z5 W下列命令可以生成特殊的集合: + w/ m$ ?# }% R; q2 c5 C* |1 Y
" t8 a7 _1 v$ W9 ]7 Z- }8 o. {
maple(‘{seq(f(i),i=n..m)}’) 生成集合{f(n), f(n+1), f(n+2), … , f(m)}
. o" O$ Z+ |; o" D7 c/ {( `
2 g# N) q& q0 a8 O0 @8 B如何用Matlab求集合的交集、并集、差集和补集
M+ t. {+ _, |
6 w$ Q7 C. H) C4 I) Cunion(A,B)
0 N5 p7 H& B1 Z 求集合A和B的并集
; B+ y: n" @( L- `, r- e+ e + X' j+ U6 E0 t) S- t
intersect(A,B)
7 g6 b% X( M! H, I9 ]* f 求集合A和B的交集
. i; H" E2 j C5 X 3 L. F% T( D2 g: g6 T, g
setdiff(A,B) : x) |2 A0 d& {) D- @ S; s
求集合A和B的差集A-B 5 K H4 S2 C. ]3 r" t
4 o% V1 h6 I* g2 [1 v1 ksetdiff(U,A)
4 k! k( ^8 b7 a' a- t; |! h( W 求集合A关于全集U的补集
6 C2 c# ^' X/ C2 E" U. p- u! q. ^
# @. V& F6 x1 \+ L8 F# o+ F* G8 T& P% a8 U- n" S
我们也可以调用Maple的相应功能,调用方法如下:
9 x* C7 a6 e) W7 }% z: w' [- c7 d6 T! ?; d5 z
maple('用Maple求集合的交集、并集、差集和补集的命令 ')
+ a: o8 z1 N! P; T$ x0 h, T2 K$ a0 b! ]+ x4 m! Z% O
具体地说,共有下列几个调用命令: 1 `& k, Q! ^4 x" }
" V/ ^" X) s: R& N ~( kmaple( 'A union B' ) 求集合A和B的并集
$ h( k6 M! z9 ~1 _( M( d' W9 m: q* K8 Z6 D, W6 P
maple( 'A intersect B ' ) 求集合A和B的交集 , h1 O& a# W, N" [! _9 h
5 ~1 X# {9 R" @# W! U* Jmaple('A minus B ' ) 求差集A-B
+ [4 E5 ^4 S! Q) d# X! Z$ _, p
4 y' g6 ~: a; E) Z: J2 ~: J5 tmaple( '全集I minus A ' ) 求集合A关于全集I的补集 . ~+ u9 Y$ ~( M3 |0 y
: `& A$ C3 \5 F; k如何用matlab排序 1 ^+ f+ {# }/ b! h. S
! W8 Y2 q5 p0 Tsort(v) 将向量v的元素从小到大排列(升序排列) |
|