TA的每日心情 | 奋斗 2024-7-1 22:21 |
|---|
签到天数: 2014 天 [LV.Master]伴坛终老
- 自我介绍
- 数学中国站长
群组: 数学建模培训课堂1 群组: 数学中国美赛辅助报名 群组: Matlab讨论组 群组: 2013认证赛A题讨论群组 群组: 2013认证赛C题讨论群组 |
2#
发表于 2009-9-9 02:16
|只看该作者
|
|邮箱已经成功绑定
如何在matlab中调用maple 4 Y0 } ?$ }( c, V
$ N5 P9 [7 l, D7 f
(不用安装maple软件就可调用) " S6 J1 g6 }' j* @: {4 a
( M( ~* N- M+ S- F: J9 x) Q/ p
方法1:
8 B# Q0 h. q& L, e. H' i" R7 l% ^! C5 [& f4 K5 X7 u$ b
maple(’maplestatement’)
! d' q1 y! n: s. I
2 _# R7 [+ a+ N7 {其中maplestatement 是完整的maple语句,由一条或几条命令组成,必须符合maple 的语法 $ j' H$ H2 Y+ ?* P1 Q6 ]: J* O
8 v1 H8 S$ A! r* l; b- {2 T
方法2: 5 ~1 R' ^& K6 H) p t! e
6 s' A3 e! \' T% U4 F7 m
maple(’function’,arg1, arg2,…)
7 f' U& K8 b* A' t v
- U4 d1 W+ E0 h其中function为maple中的函数名称,arg1, arg2,…是函数function所用的参数。 ; Y7 v& V9 T {. i0 J& K
+ Q& m6 D) P; u# T! N注:如果方法1行不通,可尝试方法2(个人经验)。
6 F# l: M1 d2 c+ Y8 |$ U% @
3 [7 U) n9 r' J5 _2 s2 O* u基本代数部分
5 e* G2 v0 {+ C7 c8 i; i4 i( _0 f! W; p
如何用matlab求阶乘 ! e+ ?& o b% [8 b& { A* \
; Z* I; I: s* ?7 ]
factorial(n) 求n的阶乘
, }$ X. _3 _7 R. D2 a0 v6 d8 G( E6 \9 J0 ]& ?' H
如何用matlab配方 4 t3 }- Z3 D, g. j
! ~ ^: w4 ]! q/ s. \/ e7 {5 T* F7 \
没有发现matlab有这一命令,不过我们可以调用maple的命令,调用方法如下:
" u# {4 @. Q; |1 U9 {5 A+ u2 F' p. v+ L. ]& f
首先加载maple中的student函数库,加载方法为:maple(’with(student)’) + a% r; x. A+ g) _
% j3 l8 C: n @0 X: v, F. m/ G# t然后运行maple中的配方命令,格式为:
! U3 E( b7 S' b) Q/ a; I9 A6 c" \6 i5 v* F8 Z5 b5 I6 k1 A
maple(’completesquare(f)’) 把f配方,其中f为代数表达式或代数方程
# [+ T% B- g7 V7 U1 T
! S' C8 K5 `* i Smaple(’completesquare(f,x)’) 把f按指定的变量x配方,其中f同上 + O3 \& c2 u; i
2 B. x! w; Y0 O H( Vmaple(’completesquare(f,{x,y,...})’) 把f按指定的变量x,y,...配方 & ]5 |7 k+ R3 d9 S. j1 a7 ~, Y) ~
( {9 y% O s6 o3 b3 B8 Ymaple(’completesquare(f,[x,y,...])’) 把f按指定的变量x,y,...配方, 5 [( o, s- P q) n) g" N$ C
' h3 G3 Q1 t/ C0 W; E/ T. U如何用matlab进行多项式运算
5 P. C3 U; N& @ p# D& c% z( @/ i' O1 d& U
(1) 合并同类项 ; D5 E8 g& Y+ p0 ^7 K' d
5 P# r( x9 z( v9 x2 ]/ Rsyms 表达式中包含的变量 collect(表达式,指定的变量)
* Y5 X6 {" m" D3 R2 s/ B, [) @3 T* z; b& {3 c# v7 E& S
(2)因式分解 $ n6 U/ m$ j9 o- }, w! K
8 u4 t e) A8 Dsyms 表达式中包含的变量 factor(表达式) 0 J2 \1 H! P. z' _
4 \0 e/ { a1 W' _& A; @
(3)展开
* y' G( m1 J6 }" w, F( ~) u
% v ^6 q. n/ o. U" zsyms 表达式中包含的变量 expand(表达式)
( Q) ~9 C, ~% Z
9 o; R+ [% c0 i我们也可在matlab中调用maple的命令进行多项式的运算,调用格式如下: 0 X: k" y7 ?) H6 ]3 t( f
0 H& r) Q F7 b# J9 ^. ^6 ]# X
maple(’maple中多项式的运算命令’)
7 h+ O! a/ E5 A. U+ w$ |! { i& O% Q
如何用matlab进行分式运算 * F- n! ` W: p! r
& r; T, R: s7 S( z% [4 G
发现matlab只有一条处理分式问题的命令,其使用格式如下:
9 F% v# D/ f8 p% n# f+ C- o
) N2 S% K. j3 q7 A[n,d]=numden(f) 把符号表达式f化简为有理形式,其中分子和分母的系数为整数且分子分母不含公约项,返回结果n为分子,d为分母。注意:f必须为符号表达式
6 P* R/ S# e3 B* M' m2 R1 T: g C/ D+ A
不过我们可以调用maple的命令,调用方法如下:
9 T& i/ p) y" y8 Q7 N% [$ Q; Q/ O( @) ^; e
maple(’denom(f)’) . G% ~( e. N( X5 Q
提取分式f的分母
- y% _' h' p$ v' `+ y
5 B$ K5 I- a& K6 \; }! B% r( S0 Umaple(’numer(f)’)
, m- b: ^8 b5 M1 n# a; ? 提取分式f的分子
! y! s8 z l8 j, ] $ l7 Y/ a6 k4 _: N e
maple(’normal(f)’ ) # x7 ^. `# y1 w% \
把分式f的分子与分母约分成最简形式
! z. }; {2 Z+ R3 ]8 V3 N 3 }% v' D: H/ K) j1 y% a6 U
maple(’expand(f)’)
1 b& R0 E; O& X$ p8 F/ B( f 把分式f的分子展开,分母不变且被看成单项。
2 U" b( Y. R9 U' k& o/ v( G
0 j! r7 C/ }( W4 Y% }+ B& \maple(’factor(f)’)
8 ]2 `& \! h7 Z4 }9 D! U5 F q; X 把分式f的分母和分子因式分解,并进行约分。% g- g) l% u, I' S! y& n8 T) ~4 l) E
& [2 E: u; T, i. x
V' C1 x C2 b N! Q如何用Matlab进行因式分解 3 x0 O4 C3 |7 h- y D
; w5 P9 V# L4 P: @' C$ b' p$ asyms 表达式中包含的变量 factor(表达式) 2 P' r V* x' H# t. p& r$ F) P$ {
" k) p+ L' p; }# e, l9 S: @ 如何用Matlab展开
" k% Q3 {# H. b1 k8 z" v, d9 O# @& r6 _1 q
syms 表达式中包含的变量 expand(表达式)
) Y: _9 t' [7 E+ u7 [
* S. J) O @0 s 如何用Matlab进行化简 % j: e3 N3 H- G4 T" L _
' X2 z9 n$ B# ~1 B
syms 表达式中包含的变量 simplify(表达式)
7 t: v2 ^5 f4 ]( o
3 I$ { A4 L# g' {* m如何用Matlab合并同类项 4 v! h, @* {* m# ^. @( N, U
" y) E) c P& x" _' Gsyms 表达式中包含的变量 collect(表达式,指定的变量)
5 n$ A; w" j* b5 e I' \9 P s; e/ h: }; z$ ]6 v
如何用Matlab进行数学式的转换 ( Q" v% c, }) P) A
6 d& j, Z4 m! [3 W: d% K调用Maple中数学式的转换命令,调用格式如下: " `1 V# Y" G) s: {- O y
+ Z1 [! e+ }4 r3 r
maple(‘Maple的数学式转换命令’)
. }; p5 M8 k5 `- Z d7 s2 ], y0 S+ {6 G1 L# T( @9 Z. U u; a) K
即:maple(‘convert(表达式,form)’) 将表达式转换成form的表示方式 2 c7 C# m; R! k. h
0 j. t! U; e* A# J) |) n
maple(‘convert(表达式,form, x)’) 指定变量为x,将依赖于变量x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用)
- a. ], n, u% {5 K* N# U& y1 h0 s
, Z# H! k# l; I* r) C0 |如何用Matlab进行变量替换 / Z. E$ ~2 Z. z& l: h3 V' Y1 g
! H& h" k9 z1 C
syms 表达式和代换式中包含的所有变量 subs(表达式,要替换的变量或式子,代换式) & s" ^" \& @9 @' j2 y: g$ \+ g- {- X
) a0 U/ Z: J; D' C9 { 如何用matlab进行复数运算
! g) N. n2 |% ?/ S/ r+ g8 s* B8 v( v/ N$ j& S9 V/ X
a+b*i 或 a +b*j : |6 P- c7 Y2 l2 u" g
表示复数a+bi 或 a+bj 9 J5 `" W v; m6 `$ T4 s- `
9 ~; C$ ~% t, P8 t, ?' Yreal(z)
: `$ e2 e) }) \, ]; X: g; \& s 求复数z的实部 # e; Z8 p z# M( f* @. v9 C
3 S8 M" ?& l1 R$ y; ^' j
imag(z)
8 E/ ^8 C, x! P# z 求复数z的虚部 ) R% C! g5 ]+ z$ f/ ?
! W6 o, m* q" X* z" o* mabs(z)
! F$ V7 z0 K/ l. f: E8 c4 { 求复数z的模 1 l# K# B) i& Z4 Y" C
7 M+ K h, s b3 [) w j" eangle(z)
& ^6 ~ S/ X) O' N+ O 求复数z的辐角,
8 Z5 J# a. w: B; v5 A
% S! J2 W) ]0 \+ K" X. S9 dconj(z) % y3 S( }. u/ J
求复数z的共轭复数
3 ~0 Z1 E- \8 s# c ( }( c4 ?4 z7 M: c, j: [
exp(z) ' H$ G( E8 o2 M; j- ~( p
复数的指数函数,表示e^z
, u0 z; W7 }& f0 K
6 l2 G' S* k( Q1 _: d
6 a/ U N+ I" E# i如何在matlab中表示集合 7 K9 u" q3 r0 j6 a1 t; K7 W
: r: ]% ]# }% }* o Z+ j& e6 c
[a, b, c,…] 表示由a, b, c,…组成的集合 (注意:元素之间也可用空格隔开)
7 ]+ Z( ^2 r. R. K5 n+ [# L/ H9 q/ w6 |, N( ? ?1 o0 o
unique(A) 表示集合A的最小等效集合(每个元素只出现一次)
" { X* M6 G; [1 t9 @9 d) P2 V# V( [0 B
也可调用maple的命令,格式如下:
# P Q, ?' q" ?2 F
# t$ ~! @, J ~maple('{a, b, c,…}') 表示由a, b, c,…组成的集合 ( l( d0 L! x! x* l# A
+ j2 i- f% t1 p; q- ^下列命令可以生成特殊的集合:
0 H- c, U- ?) a v& O i* |9 P
! l( ^% w6 Z' D( [) U) g$ _; ?maple(‘{seq(f(i),i=n..m)}’) 生成集合{f(n), f(n+1), f(n+2), … , f(m)}
0 G1 I, g7 K- ^" ~; k; d) I' t* i
5 d! M1 y% m2 r9 Y, ~( @如何用Matlab求集合的交集、并集、差集和补集 7 n( c1 z) j! k: B& K5 g
- C( K/ t5 @- y$ X0 |' ~- E8 Munion(A,B) 0 l3 k, Z' L4 o4 h" D& z
求集合A和B的并集
! f) Z+ r7 \' [# X7 w! |$ ?/ K
; Z+ Z G2 T: Sintersect(A,B)
8 v0 k" [0 e8 r! x5 H 求集合A和B的交集
% K; }0 W8 {! j
8 ~5 N" x. e$ W* ], Psetdiff(A,B)
9 K+ g* b4 ]( k- }( C! s 求集合A和B的差集A-B 8 Y M! W; ~' H7 o2 A
5 c- u* X: a4 I8 _
setdiff(U,A)
3 n% g' P/ W# w* M' q9 a 求集合A关于全集U的补集
6 t4 x X( k5 k( I. e8 [7 j4 S
2 ^$ p4 H2 _: x9 _4 ^
7 T p. d' N. k7 Z% D我们也可以调用Maple的相应功能,调用方法如下: , [: g3 W1 |" W
6 D3 d+ t2 o2 s- w. w1 {5 Lmaple('用Maple求集合的交集、并集、差集和补集的命令 ') 5 P, O% k" o: r! N2 M
! x: F C+ F! L6 R- ~6 X P具体地说,共有下列几个调用命令: " Q2 ]. x( u; l. g' I2 ]: E2 r
8 p2 @9 ?' y5 ^; fmaple( 'A union B' ) 求集合A和B的并集 0 b6 N3 Q. g9 ~% N' a5 ^
! g' w- q' ^; {8 `6 }% i
maple( 'A intersect B ' ) 求集合A和B的交集 * Y2 a9 X, b0 K* V1 J
( @% Y* g3 E$ @
maple('A minus B ' ) 求差集A-B
5 C9 J9 {6 S! D, B' C; \+ q* ~8 D! M; a0 Y, D. z
maple( '全集I minus A ' ) 求集合A关于全集I的补集 ! t2 [4 `5 Z0 s: d/ M4 C/ e3 B- i
& z5 S" c7 F# `& I
如何用matlab排序 ; m# G* g& t/ g0 _ c. P8 l
+ e& ]7 g( @& {8 ]
sort(v) 将向量v的元素从小到大排列(升序排列) |
|