TA的每日心情 | 奋斗 2024-7-1 22:21 |
|---|
签到天数: 2014 天 [LV.Master]伴坛终老
- 自我介绍
- 数学中国站长
群组: 数学建模培训课堂1 群组: 数学中国美赛辅助报名 群组: Matlab讨论组 群组: 2013认证赛A题讨论群组 群组: 2013认证赛C题讨论群组 |
2#
发表于 2009-9-9 02:16
|只看该作者
|
|邮箱已经成功绑定
如何在matlab中调用maple
0 p1 I0 r, i4 ^1 j1 X: T$ W9 y" J# W9 }1 O k- ^7 P
(不用安装maple软件就可调用)
5 {! F" W7 z( @3 F; ]' @+ a! u4 E- D, d; g( x
9 S" X/ a( x& p0 C5 ^5 Y方法1: 7 Q# q2 b8 c& p/ i; M- [1 m5 O
( c3 E, d) P7 x* Y0 Q7 r
maple(’maplestatement’)
' d- e9 W8 ^! s/ N* R0 D/ q2 b! D6 V7 A; o0 Z* w# h' H
其中maplestatement 是完整的maple语句,由一条或几条命令组成,必须符合maple 的语法
9 `' L# u8 F9 a. C+ I3 L/ v$ r' A( d7 x$ X$ @0 ?
方法2: 9 e! x5 ]4 }1 k& c2 |9 k# }5 F6 H
! x! R; \4 J! R K, @
maple(’function’,arg1, arg2,…) 5 Q1 {* K+ `! D Y0 J9 ~
% M& z' N% M- n* V# a1 w1 S其中function为maple中的函数名称,arg1, arg2,…是函数function所用的参数。 0 ~ h2 d. p6 y! v, s/ [; E
* O8 N& F" g# U- d' |+ N2 G, s
注:如果方法1行不通,可尝试方法2(个人经验)。 $ A* n X W( @9 _5 _4 p
4 f, \$ p- `( K$ L* C& G$ I基本代数部分
+ U- C' P4 G! o8 j) s; ]% \ M
, ]. A8 ]; J( M/ |% N- k" [8 X如何用matlab求阶乘
, x2 D0 b }5 h8 o Z9 L: x0 ]
. c- U: a4 R8 H6 k* @1 Y( Efactorial(n) 求n的阶乘
1 u; f6 [% A d! K3 h+ P u# _- |$ h# G
如何用matlab配方
: g! J( f/ Z" X6 s% L! B
& ?" ~5 K( u, f# E5 W0 O. Y没有发现matlab有这一命令,不过我们可以调用maple的命令,调用方法如下:
7 B5 H( O; [( [% W* C9 m5 k
2 V1 M1 i, A) L3 a% t首先加载maple中的student函数库,加载方法为:maple(’with(student)’) 4 u5 |- Y0 j+ j; h
4 }/ r1 W1 ~ N
然后运行maple中的配方命令,格式为:
$ [: X* w. r; w) ], q' O
6 r0 O0 s, R7 j5 O# Z- {! @6 |$ amaple(’completesquare(f)’) 把f配方,其中f为代数表达式或代数方程
; w& f$ R6 @: ^$ r* C8 V3 j. g
: j% i k4 E. E! \: z+ x# N, wmaple(’completesquare(f,x)’) 把f按指定的变量x配方,其中f同上 & H/ \8 S2 Y$ s/ k
" G4 J W% E# G6 E7 g6 C
maple(’completesquare(f,{x,y,...})’) 把f按指定的变量x,y,...配方
5 H* M$ k$ r; f6 ]# S4 k% C, g
; o0 h3 Y0 ^0 `5 p) Mmaple(’completesquare(f,[x,y,...])’) 把f按指定的变量x,y,...配方,
4 `1 E# q5 v9 D
1 q0 {9 {, q( ?# |, J6 ?, |如何用matlab进行多项式运算 [( x0 z# A# k+ l
+ b( Z/ y3 l4 ]& V; Y9 c(1) 合并同类项 3 m- B( x5 P. ?5 A4 W
R, S0 F4 w# f# R
syms 表达式中包含的变量 collect(表达式,指定的变量)
( ]$ c% G/ W: s2 R) W! \5 j1 a9 e
(2)因式分解 $ |9 E. \: A( R7 n3 \. e
( h; S7 H" D8 C. m! R3 Y' Y
syms 表达式中包含的变量 factor(表达式) ) q% a" H3 E v0 K/ t
8 b9 A6 A, k1 Y
(3)展开 2 h, b( T3 ^* N, D9 C. I
7 V. X' W$ e3 S$ ]0 G. csyms 表达式中包含的变量 expand(表达式) 4 m# a" X/ Q7 _. V% u1 R3 Z2 R! e
! C' t5 c; c/ z9 K# P+ ]2 i/ H* g9 c( a我们也可在matlab中调用maple的命令进行多项式的运算,调用格式如下:
# C3 F5 X C( g3 _" R) f3 y3 P# z' c" {, X' V
maple(’maple中多项式的运算命令’)
4 |/ ^* l- N K, H$ y. n- \) B& b
* @2 n% x: y; v2 x/ @: G' P如何用matlab进行分式运算
2 v, u; i. C' o' K; C6 e Y; X+ ^) i: l' h+ h$ N
发现matlab只有一条处理分式问题的命令,其使用格式如下:
1 z' C3 E }" X+ N! s, e- W# g2 @4 x/ I4 k. \, G: i [
[n,d]=numden(f) 把符号表达式f化简为有理形式,其中分子和分母的系数为整数且分子分母不含公约项,返回结果n为分子,d为分母。注意:f必须为符号表达式 . I( g2 Z6 t7 N5 w7 b
) Z7 I; E7 E. D3 _
不过我们可以调用maple的命令,调用方法如下:
- }- w2 t% o1 ]
+ Y J6 {! A' U- i% \) \ D. L- u! rmaple(’denom(f)’) / Y5 Z2 W0 }! w+ K1 Q# z% q+ E
提取分式f的分母
; T( J5 U, c4 b" ?* L
% m* M6 N+ _+ Dmaple(’numer(f)’) ! ~7 y- u( B2 n( z R
提取分式f的分子
5 u: \+ e! H6 q4 r0 z
5 \5 {0 ]2 E( J7 p- \" Xmaple(’normal(f)’ ) ( l/ k& |: I; g- Y
把分式f的分子与分母约分成最简形式 : E, H" s, G: ^8 ]
- t& [& m. _; w' L9 ]) i/ w6 h' p5 Z
maple(’expand(f)’)
( J/ M: t' S* _& i& ] 把分式f的分子展开,分母不变且被看成单项。
( g# a7 V0 I$ Y! {
) T! n2 ? h) |& ^maple(’factor(f)’)
* w* Y" Z. ~: w9 b 把分式f的分母和分子因式分解,并进行约分。3 a1 d0 Y- M/ ?5 Z, K3 m9 ]
1 k9 o: A) H/ Z6 O' K6 U$ {, g
. @% k3 ]* H+ l
如何用Matlab进行因式分解
: ^5 O" \1 k2 G& n' b( h. g7 b, v+ \' S) Y) `. U8 s: w
syms 表达式中包含的变量 factor(表达式) 8 k+ x u6 [% [4 f
5 j" [6 L, P) n! _5 M8 g% V; H
如何用Matlab展开 . E$ R, o% @7 p7 v- {6 ]4 W
- Q/ `4 v+ p* ^: F1 @) p* u
syms 表达式中包含的变量 expand(表达式) 4 z/ x' [: P7 l; |3 c
6 f$ V2 \0 _, Z7 u8 r
如何用Matlab进行化简 3 q9 h2 f: n/ Z: ]
* O8 Z* T7 z8 [
syms 表达式中包含的变量 simplify(表达式) + [. U+ _. ~- J( G4 K
+ Z n7 |, ^. k- k3 b% M7 \
如何用Matlab合并同类项 * B& b: t) M" B# I L" b
6 H/ A4 |, j0 i3 e6 _9 Z1 Ssyms 表达式中包含的变量 collect(表达式,指定的变量) , a7 _# f: v0 z, {
' T; ]* S+ n, h3 ^如何用Matlab进行数学式的转换
5 f* e, E. ^7 `, n7 B$ ?! M: p- ^
调用Maple中数学式的转换命令,调用格式如下:
* H3 s6 J. V* s5 \% W
$ R! G% P" n. H! V. W0 }: f! Emaple(‘Maple的数学式转换命令’) ; v9 u# _, X5 P/ V- S2 {$ v
0 m7 q# c" Q2 p即:maple(‘convert(表达式,form)’) 将表达式转换成form的表示方式 7 a- {; Z- W, c6 W3 B. e* `5 J9 h
* d/ X$ G# G" D6 ^9 l0 J6 K
maple(‘convert(表达式,form, x)’) 指定变量为x,将依赖于变量x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用) 4 K* K4 ]5 I2 Q: F3 {
9 H2 i( x: p' w5 w6 v
如何用Matlab进行变量替换
7 h6 k2 v5 l& v! L$ v! X7 [$ g7 U5 i4 H# C2 ^6 Q4 U: |
syms 表达式和代换式中包含的所有变量 subs(表达式,要替换的变量或式子,代换式) , e' a! `5 k& U" p8 X
- _4 v1 Q! Q/ ~, S0 Z# B U8 c q
如何用matlab进行复数运算
$ J- q( r5 Q) a. ~# h, R8 O# p5 r( y/ a( w3 j# z! ?9 `
a+b*i 或 a +b*j 2 d# Q! y5 i9 u& B# `0 t) o: J9 f' ]
表示复数a+bi 或 a+bj
8 K3 a# A1 w6 Y, Z * p+ a: a8 i. e
real(z)
: h2 K! ~1 L4 Z1 f" s 求复数z的实部 ) L8 r# }/ ] j
8 V0 r, L) x- l! }+ Y, X; B# s3 zimag(z) : Q/ l) Q3 q8 b; s" a
求复数z的虚部
& V. f1 q# A) F( t$ q' s. O9 L- G
4 D! O1 B) s$ V' u C* babs(z) j. U* H! e* q2 s% a; q- c
求复数z的模 0 @$ ]- N9 v' I8 s
3 C- J: t2 |2 Z" Z9 P1 [* e
angle(z)
4 ?0 v/ c1 T/ e 求复数z的辐角, ( X8 }' X/ T0 J* L
n3 h( V, Q9 C$ q$ bconj(z)
- v+ l0 @: O: {: T4 j! ]) v" a 求复数z的共轭复数
0 n7 Y& e: A% i" u% E- u3 o$ W
6 a& c% F: _1 i: }: |. u: j& cexp(z) 2 |: Q% h# O0 R$ U. U8 P
复数的指数函数,表示e^z5 Q+ ]) z' J4 t6 d% d
( _% l u% ?/ S5 i- }) \
1 S& t6 |) L) H" e如何在matlab中表示集合 + |% R9 ~ u- {4 H! j
" M7 `" A& X) [) {3 O[a, b, c,…] 表示由a, b, c,…组成的集合 (注意:元素之间也可用空格隔开)
/ A( Q+ u; G, S9 K5 M# k1 x* l2 a: q3 a3 b3 Z: O* \& h
unique(A) 表示集合A的最小等效集合(每个元素只出现一次)
' }8 k( C6 ^7 C* ^, Y; Q1 r/ z7 M" D9 m7 L/ m# h8 f
也可调用maple的命令,格式如下: # e7 H4 Y) Q( z4 ~! a% s
# v9 b. {5 l3 q, F4 Q/ L# C% ^maple('{a, b, c,…}') 表示由a, b, c,…组成的集合
: l) N! Z' j/ O- h
. D6 j1 t: h6 m% o; ?下列命令可以生成特殊的集合: : h0 U& N9 \! ]! R& `& }
! j- o) G3 a( i) w0 Y1 m, L3 b. G
maple(‘{seq(f(i),i=n..m)}’) 生成集合{f(n), f(n+1), f(n+2), … , f(m)}
- R6 K8 ^) K. p$ Y4 c5 z0 J. v# `7 `! [# h* K# k
如何用Matlab求集合的交集、并集、差集和补集
/ o! \4 U) U4 _% A7 X; s, G2 D
3 U" c7 i. D T4 l" g: m+ U Uunion(A,B)
: H. @- G, o. t& J, n9 w+ G2 J 求集合A和B的并集 E8 X5 \4 k* R
Y/ Z8 }8 F( Q; c3 R; b0 i
intersect(A,B) 4 V" M* V- r# m& P
求集合A和B的交集
2 m0 o% K8 U3 t 4 T. A q$ ^+ H2 T: l8 j2 j2 N
setdiff(A,B) 6 h W& Z) s" o. Y7 q: @
求集合A和B的差集A-B
. g! K+ {# x$ Q5 O/ A5 R, z# k + C L/ j7 }9 h( e
setdiff(U,A) 1 N7 s% a1 y# P5 r: K: o
求集合A关于全集U的补集( ~ G! C1 `" J
* Z( |+ A0 F6 p2 }: {# u4 o6 Z9 t/ {* M
我们也可以调用Maple的相应功能,调用方法如下:
. j$ r" V! {4 L& Y- H ]9 @$ u
, Y3 H2 ~" E! g1 X9 x' T. jmaple('用Maple求集合的交集、并集、差集和补集的命令 ') ! O' f% [# w) A
8 z+ S6 S6 M9 Z, r- d& S9 d# Z
具体地说,共有下列几个调用命令:
. ~' ~/ `9 ~9 A0 w
4 r4 N1 r. C. W$ _- ?3 tmaple( 'A union B' ) 求集合A和B的并集
4 U; C- @$ [' z' ^; O/ o, N( Q0 ~* j$ e8 Z; @
maple( 'A intersect B ' ) 求集合A和B的交集 $ T# J0 ^8 P4 U1 y8 u0 {0 `
- u* Q3 {; D7 h$ k% Z* Cmaple('A minus B ' ) 求差集A-B 9 C* \% Z. [: d8 f+ _: k) z
8 e( \' }( G5 B4 Imaple( '全集I minus A ' ) 求集合A关于全集I的补集
& @: m( K. d3 e$ n0 g
# J9 ~1 Q0 W5 F( f$ L8 t; L) }如何用matlab排序
i# ]; r. N+ B4 o
/ w' ]2 C: S9 r# ^8 dsort(v) 将向量v的元素从小到大排列(升序排列) |
|