TA的每日心情 | 奋斗 2024-7-1 22:21 |
|---|
签到天数: 2014 天 [LV.Master]伴坛终老
- 自我介绍
- 数学中国站长
群组: 数学建模培训课堂1 群组: 数学中国美赛辅助报名 群组: Matlab讨论组 群组: 2013认证赛A题讨论群组 群组: 2013认证赛C题讨论群组 |
2#
发表于 2009-9-9 02:16
|只看该作者
|
|邮箱已经成功绑定
如何在matlab中调用maple
5 j0 H) ?/ k! B d, X# e+ C8 U( d: B8 d& q7 g
(不用安装maple软件就可调用)
6 v7 G8 R) ~6 n! L8 `. c' U7 X9 i0 E5 D# ^4 C3 j& d$ D8 D; Z
方法1:
5 V& _% |( M! b
& o0 h, x& ?0 P" L; rmaple(’maplestatement’) ; @7 O2 `8 p- Z' z1 l) R9 P
* o8 `2 W( j9 p: Y* x8 v' @3 q其中maplestatement 是完整的maple语句,由一条或几条命令组成,必须符合maple 的语法 % B& t. ?4 `3 f& J+ Q/ D" ~! P2 F
3 m5 u e1 Z# v方法2: . h7 H ?! z4 C" h- |' Z: k5 Y q
: b# j9 Q% g' imaple(’function’,arg1, arg2,…) 2 c0 v# {) A/ r& ~, a5 D
& n8 w2 v" A3 @2 U6 R0 ^# t其中function为maple中的函数名称,arg1, arg2,…是函数function所用的参数。 1 L2 Y) ~! C' x
6 H( @! l* Y5 p/ i9 ?% X/ @注:如果方法1行不通,可尝试方法2(个人经验)。
( x/ [2 ?) h5 ]: Y& X1 v2 @" C2 I+ F& z- F% u; Y* ]5 U
基本代数部分
5 s- D4 k. Z1 J0 @! J! |8 b. Y! o9 j* g! G$ s6 ~' G$ B
如何用matlab求阶乘 ' j$ t( l- a) O$ g( M A; Z, j5 `
4 ? S' a9 k7 U
factorial(n) 求n的阶乘
5 J; `& c6 v/ j; D
# g0 f: C( s0 g/ ]5 G# h- c如何用matlab配方 4 H3 A5 ?+ p# b+ v9 k b
3 d1 g, r0 v- M S没有发现matlab有这一命令,不过我们可以调用maple的命令,调用方法如下: # j3 h; D" V) j5 L/ M: [- ~8 X8 y8 J! c3 A4 ~
- I/ L' B Q1 r, V' Q首先加载maple中的student函数库,加载方法为:maple(’with(student)’) 9 \: X* [+ V3 y$ p. D
* ^% e6 a6 f- N, i( N
然后运行maple中的配方命令,格式为:
- W7 M' j& \3 Q( T6 B0 C- }+ }; V# p. [1 c
maple(’completesquare(f)’) 把f配方,其中f为代数表达式或代数方程
3 t- f% z9 ~! z J8 G! P
0 |( Z+ M5 T5 U4 b, v/ {8 Q/ m; _maple(’completesquare(f,x)’) 把f按指定的变量x配方,其中f同上 + S9 D. d6 L8 k4 P
! w5 v" z7 g1 d& I* s) f9 z
maple(’completesquare(f,{x,y,...})’) 把f按指定的变量x,y,...配方
/ w; d# c3 w! F% [8 w: }# m& `# L% R; i" `
maple(’completesquare(f,[x,y,...])’) 把f按指定的变量x,y,...配方,
: A2 j0 j7 v* r$ A8 V+ }# N! e+ g* P1 s* S" |% d
如何用matlab进行多项式运算
# o8 R6 A$ b+ Z3 g" `
! O0 {9 l1 N+ N8 S(1) 合并同类项 ) y5 d, \, p7 N
9 A; n) k* }7 B$ Lsyms 表达式中包含的变量 collect(表达式,指定的变量)
: h3 F, \6 R n) L2 P. o; f% _) `' [0 a2 A0 J
(2)因式分解 Y8 Q% r q3 \% b3 M0 |
: ^( O1 n3 X- M3 c+ @: B6 Z' Jsyms 表达式中包含的变量 factor(表达式)
6 T ?: Y$ H* v! }+ R( k1 P6 w
6 r& C$ Q- ~3 r1 I' p(3)展开
0 R }5 J% e0 u; P3 D+ g1 n% h# u( b
; c& x5 Y# a! g0 Bsyms 表达式中包含的变量 expand(表达式)
5 S% {9 k% _8 g- `# x6 Z/ n
" I* n3 g c5 E我们也可在matlab中调用maple的命令进行多项式的运算,调用格式如下:
" U" T$ X( k# f. I: o
5 k9 x2 R5 y$ E3 O maple(’maple中多项式的运算命令’) / a4 f# ^( J1 D, y8 r
8 e/ k: @4 Q e. N& l) q$ M' V) o
如何用matlab进行分式运算
- |! [+ w% ?3 F2 ~" r4 ]+ o" }+ Y4 n- L+ D$ }6 R7 @
发现matlab只有一条处理分式问题的命令,其使用格式如下: & g' @: R$ ~$ @* u& i+ b
/ r$ T+ x0 H. ^3 }+ V
[n,d]=numden(f) 把符号表达式f化简为有理形式,其中分子和分母的系数为整数且分子分母不含公约项,返回结果n为分子,d为分母。注意:f必须为符号表达式 + Y# G! s& Y+ J8 E2 D3 V* M
1 y: }1 S6 N* C3 @/ O/ O8 F
不过我们可以调用maple的命令,调用方法如下: * W) O9 u; I7 w6 \/ N5 ?0 R% G
4 y# v2 f( R" ~1 t) c
maple(’denom(f)’)
3 h5 X4 r* z5 H1 i$ J: ? 提取分式f的分母 + ]' R3 O3 z _6 a
. H8 z2 @ C2 _% M
maple(’numer(f)’)
# `9 G. Q9 @- P) A 提取分式f的分子 9 W+ I4 [: ~! o5 G8 h# I
, w* d( T: C' y/ J) l8 w/ z r
maple(’normal(f)’ )
4 T" |7 C* T* n5 `# S$ C5 k: K 把分式f的分子与分母约分成最简形式 + u! `) u3 q0 c% ~/ f' T. s8 k
/ c9 H4 K5 E* Y n1 Mmaple(’expand(f)’) ' _- a0 H- w/ M) H, |+ v3 p
把分式f的分子展开,分母不变且被看成单项。
0 s+ e7 \, s8 D% O! {8 { % i4 \- @& S) v1 F
maple(’factor(f)’) $ C5 z# Z$ |9 f0 ?
把分式f的分母和分子因式分解,并进行约分。
+ G; n0 b& m: [* i2 U 5 b% Z# W. t# b) f* i
+ t0 O, s6 P7 [( }" j
如何用Matlab进行因式分解 / V* ]& H- [% X+ w
" f7 F9 V0 |1 L) f: e7 v7 e
syms 表达式中包含的变量 factor(表达式) + t* W$ X- u- l$ X
# ] D* B: v$ t% E8 w 如何用Matlab展开 , f1 g5 n* e6 K2 Z' J
6 I# V) K# \, g4 `: B
syms 表达式中包含的变量 expand(表达式) , M7 Y Y K6 n0 I L* G" d
7 }& S+ X5 e8 u/ j/ g% d! T 如何用Matlab进行化简
3 T2 ^/ X: m; M) }; w3 R
- M- W7 }. ]; Qsyms 表达式中包含的变量 simplify(表达式) 5 z7 n" C6 A& Z9 ]' w2 L
, a# o& K6 {( L2 O+ J: o
如何用Matlab合并同类项
. K. P5 _$ c' |. m* U& t( k; f
9 Y% s* B3 p' x5 osyms 表达式中包含的变量 collect(表达式,指定的变量) ! d% W" _ v/ S# N
" }: r& T2 O' U* N如何用Matlab进行数学式的转换 ( J& U4 ^& x6 |6 h$ [! N
, W. j+ C' n8 }- b' k8 b
调用Maple中数学式的转换命令,调用格式如下: & T+ W; t% h/ L$ |( J: f
6 l8 j" b; y/ `: r v4 s
maple(‘Maple的数学式转换命令’)
) @ t0 a9 X- \, S
0 i) X/ E* B$ ^$ M6 F# |: a5 S# |即:maple(‘convert(表达式,form)’) 将表达式转换成form的表示方式 * q1 e( s, o8 X( ~% y
( B) p3 O/ D& T% V' y' w
maple(‘convert(表达式,form, x)’) 指定变量为x,将依赖于变量x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用)
; I( I+ I6 V9 b- f+ D, L2 R8 b- A2 P+ D' z2 ~
如何用Matlab进行变量替换
( b0 s5 e# {5 j6 |' K) X, `0 D" ^9 v: X; i! O' W+ y7 }9 n1 w
syms 表达式和代换式中包含的所有变量 subs(表达式,要替换的变量或式子,代换式)
6 n3 x4 g& G2 D/ Z5 U# m" M5 @4 T( E% t- ^- c) J
如何用matlab进行复数运算 6 C/ y6 F1 A* A
& l3 a- g5 q" @: W. L! A6 D8 S
a+b*i 或 a +b*j / ~/ w/ C: p6 n
表示复数a+bi 或 a+bj
3 {3 }$ L& X1 M% Z: a; q+ o
, s, ~, q# {& p' `: i4 ~2 Y; b {real(z) ' i8 T$ ~8 k/ G9 U5 O
求复数z的实部
" I2 x$ v% I% R+ J6 s3 \/ R 6 s: n$ J6 b. o' X5 h/ Q* n+ g5 O
imag(z)
, N( Y/ ?. E, j2 S L+ h 求复数z的虚部
* W% s4 v* i7 w5 K1 p0 \
S% I: Y) t( I N7 r3 labs(z)
/ ]9 j1 U$ G( Z& ?. V 求复数z的模 6 X. x2 J, y2 G4 A7 [7 `) D
. m. p% q N# j; Y$ s3 cangle(z) ; h3 o8 M/ l1 B7 m3 n8 Z: u4 F2 S% F
求复数z的辐角, # o( G! \( X" j' ]. T, P) g2 e
/ Q$ Y2 f4 Y! s' A: o5 {, f `2 I
conj(z) % ?2 d) M1 _; e$ C0 ? Y
求复数z的共轭复数
0 F% y7 t6 f0 [+ v: R/ C9 Q
& `3 {( J e+ c7 L" W0 {exp(z)
! M0 ` E' Q% K: }3 @ 复数的指数函数,表示e^z
" g0 X) a1 l* H0 H; e/ v * O5 u" P& Y( z* b% x
( Z5 h v) ?* F ?2 y( Z
如何在matlab中表示集合
1 s E; h0 M R' A
# T, h# F: W& d. U[a, b, c,…] 表示由a, b, c,…组成的集合 (注意:元素之间也可用空格隔开)
5 D! H$ O$ b; j' q1 }8 \3 q2 C, G+ R/ r# u. c/ ^% ?5 Z
unique(A) 表示集合A的最小等效集合(每个元素只出现一次) 3 R- [4 y8 \/ P5 Z' M I' n' G, F n3 f
+ s' S5 z$ \% _2 N/ n+ s( u
也可调用maple的命令,格式如下:
6 s, p! y$ M1 O& |" M5 _/ |/ g8 _9 E9 H6 o2 s+ N
maple('{a, b, c,…}') 表示由a, b, c,…组成的集合
1 v1 i) B1 J1 n3 g# z7 j8 y5 p# m9 {; A# h. b" f
下列命令可以生成特殊的集合:
4 v C9 f8 {- f8 O g" V" m Y5 E5 B2 c" t4 d2 F) [
maple(‘{seq(f(i),i=n..m)}’) 生成集合{f(n), f(n+1), f(n+2), … , f(m)} " `" \5 H; T5 \' D+ c/ q- c9 b
* e/ Q$ s- {7 Y+ x
如何用Matlab求集合的交集、并集、差集和补集
0 V4 I' y1 p0 Z0 @6 T( C8 G
' {5 e% Q5 u8 G/ L5 r2 s5 N: Wunion(A,B)
. P x9 t: y8 v% Y- T 求集合A和B的并集
% c [& w1 Y! [! _ 7 m0 R( _6 {( a
intersect(A,B) + s- N2 J8 q+ z3 S' Z6 a
求集合A和B的交集
/ f3 q! D8 M+ q3 m6 l
/ z8 N' n+ C! a- X( a1 Q: Vsetdiff(A,B) $ n; z; S9 Z, Q! S' t: I2 L" n
求集合A和B的差集A-B # I! B/ _) Q# p2 y
5 j0 u. L; ^5 v! C
setdiff(U,A)
, ~- d# A# C' e, `$ p" t. e3 Y& [% @ 求集合A关于全集U的补集 c' _" x; M$ U) q2 ?% ~
* ?+ O" G& e; q# i* a+ Z. [
3 m4 K. H& H O- }' V; U7 v
我们也可以调用Maple的相应功能,调用方法如下: : C1 w D, E: X% g E, c ]
4 q" t: ~ v+ v' v8 s4 K
maple('用Maple求集合的交集、并集、差集和补集的命令 ')
7 L, `' }( {! e" ~! o
6 o: q- v6 J. N& {具体地说,共有下列几个调用命令:
5 V/ [; _4 @' A: y, {6 @1 w0 l- p# A6 }
maple( 'A union B' ) 求集合A和B的并集
( o, M4 m7 u0 b/ j/ C, {0 n' A+ ]( |, V+ L3 g
maple( 'A intersect B ' ) 求集合A和B的交集 ' S+ ~. J' u+ }4 R% s( E- [9 q
, u7 _# f6 \, M! z; |9 \6 `- F' U M
maple('A minus B ' ) 求差集A-B 9 h% \& v% g. M! ^5 Q- H7 R
; N, o" s: t' d7 m' C4 V3 i$ rmaple( '全集I minus A ' ) 求集合A关于全集I的补集
0 V9 v; l9 s+ F- L+ s9 {8 c) i
! @1 J7 ?. H/ P% u( V+ K; ]" m如何用matlab排序 8 q2 N1 O) b( X; b% T! {, j" N& T6 y
/ e) s3 r" L- F$ N
sort(v) 将向量v的元素从小到大排列(升序排列) |
|