TA的每日心情 | 奋斗 2024-7-1 22:21 |
|---|
签到天数: 2014 天 [LV.Master]伴坛终老
- 自我介绍
- 数学中国站长
群组: 数学建模培训课堂1 群组: 数学中国美赛辅助报名 群组: Matlab讨论组 群组: 2013认证赛A题讨论群组 群组: 2013认证赛C题讨论群组 |
2#
发表于 2009-9-9 02:16
|只看该作者
|
|邮箱已经成功绑定
如何在matlab中调用maple 0 q# U6 M1 w% y
2 K' R6 A$ S+ l& O8 _0 q
(不用安装maple软件就可调用) 8 ~, I' F7 K- ~( W7 b" e
4 A+ Q5 k1 H, T; a方法1:
: t+ P* a$ I3 I. m1 o
( S5 i7 Y- O3 i% Y$ Y" R! c( i: gmaple(’maplestatement’) 6 m/ N. ?3 s2 g4 _9 r
6 r1 Z) w5 c/ |
其中maplestatement 是完整的maple语句,由一条或几条命令组成,必须符合maple 的语法
/ O' J( L6 V/ g2 j- k1 |
+ G6 u3 f/ r. |/ t" Y$ f7 h% k方法2:
. {- i/ I: w: M/ n4 I9 A* e! y! U9 B/ \* p% {
maple(’function’,arg1, arg2,…) ) V% ~. V3 }% P0 `
6 Y! j( ~, D4 J- \1 f) u9 L! G
其中function为maple中的函数名称,arg1, arg2,…是函数function所用的参数。
0 w) z: y. g* c3 }- @+ g+ X9 l/ n i o* X
注:如果方法1行不通,可尝试方法2(个人经验)。 ' C; k7 P5 d" V, j
7 }$ L# g9 d8 N- w& h基本代数部分 % K, }1 _9 e4 u( `0 ]! P
" |5 R% F% B9 Y# u( D
如何用matlab求阶乘 4 I7 b8 L* s5 E2 ~) T. G+ N( Z3 j9 R
8 b1 J* `2 O1 c1 Z5 W" ^* p5 Z( I; Pfactorial(n) 求n的阶乘 & j; S B* I6 a& o# @
" t- ~$ y1 l& k. O# T如何用matlab配方
" n, L" S0 c; o9 W* Y% x; y2 g$ F) i, H' Y6 ?( ^/ I
没有发现matlab有这一命令,不过我们可以调用maple的命令,调用方法如下:
" s8 A8 t# p6 i5 L7 v" E5 L, D
) t! w* p7 D; V0 J1 g1 {首先加载maple中的student函数库,加载方法为:maple(’with(student)’) % O: G" b7 j- U' o# y! {9 g
- L* P0 \7 ~/ }- c; B6 ]
然后运行maple中的配方命令,格式为:
; }5 s( C, k/ A8 U+ _/ ^0 y, K/ \1 V9 u0 J) @" i8 B* ]0 B
maple(’completesquare(f)’) 把f配方,其中f为代数表达式或代数方程 3 p: ~5 ^1 ^3 l+ X
' H+ Q' Z2 d% m. i0 ymaple(’completesquare(f,x)’) 把f按指定的变量x配方,其中f同上
% G+ M6 ~1 c3 W2 Y5 ~$ a
4 j( ]6 V6 e2 H1 q7 Z( c% g$ emaple(’completesquare(f,{x,y,...})’) 把f按指定的变量x,y,...配方 2 e- @' Q; J- m+ m0 g
, M0 ]! c% v$ c' C( K3 o
maple(’completesquare(f,[x,y,...])’) 把f按指定的变量x,y,...配方,
8 x' [/ e) B1 z C8 Q" s
/ v k6 @ Q( t. G( C如何用matlab进行多项式运算 7 k2 C3 S7 I! E0 X+ _8 C
- o& r$ j' D$ M7 k8 K: x+ H' Q. f
(1) 合并同类项 8 P% Z; e' v" A8 l, G6 \
% x. a5 \# i5 V" B. n3 |0 ~3 ^syms 表达式中包含的变量 collect(表达式,指定的变量)
. g) R+ z8 T- W2 k Q0 W
: F* A9 @: E8 N: S7 A5 B(2)因式分解
) ]3 S6 }" A# l; `. R& q$ J* O' s, ~- v# m) F ^: ^( ?2 I# G
syms 表达式中包含的变量 factor(表达式) " h- m: G! o) ]$ {4 M s+ a0 H
4 S$ [- b1 R# n9 n8 Q9 a) s(3)展开 ( O0 s$ s9 V+ r* ?; ^- e* g
+ Y8 c# r% m2 H B; f0 B$ @" O( P- Rsyms 表达式中包含的变量 expand(表达式) . B9 ^5 I: y9 B: h8 Q* Q. E
0 r/ }9 L& l; Z
我们也可在matlab中调用maple的命令进行多项式的运算,调用格式如下: 1 V$ c8 y- p/ d# R' Z# ]0 D
6 y' k" E, c4 n) w( J maple(’maple中多项式的运算命令’)
?) c @' Y% Z( p! B$ [% K9 i7 i4 {8 f
如何用matlab进行分式运算 ; R& n/ {8 i; i
- ?5 n# [5 f+ S, H( K4 ?( l( h发现matlab只有一条处理分式问题的命令,其使用格式如下: + G0 V0 v5 ^9 `0 Q$ n
& } @; j$ z) c; ]3 g: i
[n,d]=numden(f) 把符号表达式f化简为有理形式,其中分子和分母的系数为整数且分子分母不含公约项,返回结果n为分子,d为分母。注意:f必须为符号表达式
. d+ B& _+ X3 I l$ a) I8 n! ^4 R7 `/ E; e* o/ v
不过我们可以调用maple的命令,调用方法如下:
1 {" y7 E: Q4 F. Y0 A& e! B/ ?3 K
+ O+ {* c3 J/ \' Z4 r5 l: ymaple(’denom(f)’) ) W6 n6 Y3 { P3 x/ Z% ~, b& x
提取分式f的分母
$ I# D9 i# Z- Q/ y * q* |- a, M% e5 \
maple(’numer(f)’)
4 V. [$ b/ h% K2 ^$ V4 \6 t( ? 提取分式f的分子
, r1 @' c$ |4 d; h! k$ O" G! Z% p9 q( p
" Z- G9 C6 Z# n' Pmaple(’normal(f)’ )
6 m5 {' b# ^7 ^9 [! ?& X 把分式f的分子与分母约分成最简形式
* ]4 B4 w; J0 C3 E- S1 t/ o
% W4 Y+ v H9 ?5 I* K. w/ dmaple(’expand(f)’) + T7 ^8 N7 i1 Z* \- ^
把分式f的分子展开,分母不变且被看成单项。
4 F* b( l t1 h7 ^% J & D& h5 k% R% G* U" @( r
maple(’factor(f)’)
]: I# E$ v* v$ b: | 把分式f的分母和分子因式分解,并进行约分。4 ]: G! u0 ]. O& e- n
0 G. ]' s$ o+ T) q {) g9 N8 \+ P+ S
! z2 q# q H& @2 @8 l- t" s如何用Matlab进行因式分解 1 t2 h4 K" g: ?! q0 j( U) q* s) d2 g
; \. Y# l2 N% e' I) F
syms 表达式中包含的变量 factor(表达式)
2 ~: L* J/ \7 V/ d- \% |; T$ _' q( X
如何用Matlab展开 + N' r( _: a( G; E# F; ?0 u
& p, h& Y8 b0 e4 O
syms 表达式中包含的变量 expand(表达式)
( V* L2 @1 [ {" g' d1 H1 y; K7 R5 J# n
如何用Matlab进行化简
/ G3 }, b) z% V# C4 D; c
; P/ S$ N3 z$ |2 R6 c& D" \! Gsyms 表达式中包含的变量 simplify(表达式) 2 X5 f; s8 n" l" u7 ^+ V0 ?
E: p' T* u9 E& W如何用Matlab合并同类项 $ n$ C: K2 ^' J- }2 |+ J2 c0 I
1 M7 o6 v6 O+ `# o5 E: e
syms 表达式中包含的变量 collect(表达式,指定的变量)
9 {5 z0 K& N* O# l9 h- P+ L
; s2 B! @$ w4 f, n1 ^7 l如何用Matlab进行数学式的转换 " q& M3 @- i' I5 d7 v8 C5 _
: r; N0 \7 G% {
调用Maple中数学式的转换命令,调用格式如下:
0 J' k: |. ^2 a) w4 G; z/ J# P3 D9 k- c
maple(‘Maple的数学式转换命令’)
" l% z( z; \; A
v1 q( C$ H3 U# b/ A" X即:maple(‘convert(表达式,form)’) 将表达式转换成form的表示方式 $ Z' }2 m2 O% R
0 A3 q9 ]1 f. t& z4 xmaple(‘convert(表达式,form, x)’) 指定变量为x,将依赖于变量x的函数转换成form的表示方式(此指令仅对form为exp与sincos的转换式有用) ( Q. s" a, X0 Y; w- T0 Q( Y
3 g; p L% m/ A6 y5 w
如何用Matlab进行变量替换
2 F+ m$ @+ r- i! y' @! U- \% B, @/ r& A( t7 c7 m* \
syms 表达式和代换式中包含的所有变量 subs(表达式,要替换的变量或式子,代换式) * X+ z+ n5 H1 I3 g
. B* Y7 L# c2 a2 F
如何用matlab进行复数运算
. m3 F4 a# ?& s: ?. Y2 q2 H: l) K. x: l6 W1 g2 w) d+ g, V
a+b*i 或 a +b*j
; ~9 l: n; L% W 表示复数a+bi 或 a+bj , g1 b0 k |: n! d7 e- ?
( X$ Z2 A% R& I3 x2 `
real(z)
- t% Q2 x7 B' M3 e* p! N. S 求复数z的实部 ! }- @$ C, D! U7 o5 a* u% w
4 I0 Y0 R4 ^3 I2 _7 X F
imag(z) + B9 ~, Q7 z* ^/ {
求复数z的虚部
K% r# {+ g' o- n6 D " x% L1 E9 `6 X+ O' ^7 ]' t+ y
abs(z) ) ~) o/ m* V3 e% x& ?4 _, `
求复数z的模 " {$ [# |* B) }7 E, m+ p/ `* t" F
3 {7 h* t, T; l5 cangle(z)
) k) J: t/ s% o3 k9 M: i5 C 求复数z的辐角,
; \4 l+ A0 J; Z" D5 p5 V
& A! z# J+ }' Q9 J1 |2 Qconj(z)
- a9 [+ E) ?6 x! ~9 h( J 求复数z的共轭复数
% P7 {' r: r4 L+ T" O# d 3 U3 L2 c' y9 R1 Y" _( J7 k
exp(z) 9 f& Z/ h0 U- L2 W' o6 _, G( d
复数的指数函数,表示e^z& i" W& N2 ~5 G9 u' Q2 m
) X, A- v/ o* q9 Y2 T
6 F8 j, N5 U) e+ M% g
如何在matlab中表示集合
% b" ^$ q4 @" Q$ X4 G8 E, c
: c, H" |# ~) X9 V$ |0 K[a, b, c,…] 表示由a, b, c,…组成的集合 (注意:元素之间也可用空格隔开)
1 _6 I% h. f5 U0 K0 B) r! Z3 T7 t! W t
unique(A) 表示集合A的最小等效集合(每个元素只出现一次) 1 Z& a) n8 E1 A4 q/ O
$ L8 ]4 k5 _7 q! s也可调用maple的命令,格式如下: 8 R7 q8 I( R& |/ j+ l3 N/ m7 V
, v4 }+ B- ?9 p4 g, tmaple('{a, b, c,…}') 表示由a, b, c,…组成的集合
% R4 K' @5 o! U0 O) H* d8 k
1 W- J0 C0 d1 N! x下列命令可以生成特殊的集合:
- D! b f0 ^& _; O; E4 f0 ?
' m* V5 x6 a8 ]* W5 g6 j8 @maple(‘{seq(f(i),i=n..m)}’) 生成集合{f(n), f(n+1), f(n+2), … , f(m)} " s9 N! E) g/ U" c
1 D; I" j1 |3 x* K2 a如何用Matlab求集合的交集、并集、差集和补集 / |6 h v k* i1 E: l
/ w1 z& D$ @# i( x" c4 P( ~union(A,B)
/ \( }9 S# ~% ]# i% \: _( K) e( Z 求集合A和B的并集
3 u- l( T6 D5 @; T; m* M + R, [3 y. F9 \. ^5 n
intersect(A,B)
+ s) _. L2 G4 @8 O$ @5 V! ~ 求集合A和B的交集 & h8 ]( H9 D0 G) y, e, B% D
8 x4 y; P: A, q$ u
setdiff(A,B) ; v# E5 S$ `' n+ L
求集合A和B的差集A-B 5 B$ ^: z# H' q, J, K
1 ]6 V* p# _! _! l% H/ M5 jsetdiff(U,A)
# Q! x- V( a1 B4 J% { 求集合A关于全集U的补集
! X* S5 e, d5 T7 H ! {0 I/ b+ d0 M6 G4 N8 T: H
) o M+ h" ^: Y2 \5 o
我们也可以调用Maple的相应功能,调用方法如下: # Z7 T! _+ d d5 ~/ D7 ^( D
, u% O( V( O( s
maple('用Maple求集合的交集、并集、差集和补集的命令 ') " d: {- S+ J; m5 J
$ b5 y5 U# o; W4 G- W9 O" J具体地说,共有下列几个调用命令: 9 w8 o7 w& G6 q9 c; m& w+ o
7 h9 H' }7 q* F+ X7 l; P; r
maple( 'A union B' ) 求集合A和B的并集 9 M( Z; v! }% D! c! ^; h
9 ]1 p+ p- _! R z0 F3 J7 Imaple( 'A intersect B ' ) 求集合A和B的交集
$ U' g* r& A2 [! G( z; O1 V- g* k4 A/ c, I! y1 f( j/ e
maple('A minus B ' ) 求差集A-B % ?) Y g& n3 O* j
; \0 k: b6 H, ]! j) @" h! O
maple( '全集I minus A ' ) 求集合A关于全集I的补集
6 h# o9 R; M+ } x t1 J! O3 O" v/ a e) l* i l
如何用matlab排序
# ?( h4 ?+ w. _% U) f
& b/ s3 p4 [" @; A, dsort(v) 将向量v的元素从小到大排列(升序排列) |
|