15-2 ?‹ç??ƒç??è?

¤@¯ëªº¥[¡B´î¡B­¼¡B°£µ¥¥|«h¹Bºâ¥u¯à¥Î¦b¼Æ­È¸ê®Æ¡A¦ý§Ú­Ì¬JµM³Ð³y¤F¦h¶µ¦¡ª«¥ó¡A´NÀ³¸Ó­n©w¸q³o¤@¨Ç¦P¼Ë¾A¥Î©ó¦h¶µ¦¡¾Þ§@ªº°ò¥»¹Bºâ¤è¦¡¡C±ý¹F¦¹¥Øªº¡A§Ú­Ì¥i¥HÂǥѩw¸q´X­Ó¯S®íªº¨ç¦¡¡A¨Ó¨Ï¤@¯ë¹Bºâ¤¸¯à°÷­«¸ü¡]Overloading¡^¨ì¨ä¥Lª«¥ó¡C

­º¥ý¡A§Ú­Ì©w¸q¦h¶µ¦¡ªº¥[ªk¡A¥i¥Ñ plus.m ¨ç¦¡¨Ó¹F¦¨¡A¤º®e¦p¤U¡G

Example 1: 15-ª«¥ó¾É¦Vµ{¦¡³]­p/@polynom/plus.mfunction r = plus(p, q) % POLYNOM/PLUS Implement p + q for polynoms. p = polynom(p); q = polynom(q); k = length(q.c) - length(p.c); r = polynom([zeros(1,k) p.c] + [zeros(1,-k) q.c]);

¦¹¨ç¦¡­º¥ýÀˬd¿é¤J°Ñ¼Æ¬O§_¬°¦h¶µ¦¡ª«¥ó¡A­Y¤£¬O¡A¥ý±N¤§Âন¦h¶µ¦¡ª«¥ó¡A³o¼Ëªº§@ªkÅý§Ú­Ì¯à°÷²V©M¦h¶µ¦¡©M¦V¶q¨Ó¶i¦æ¥[ªk¡A¨Ò¦p§Ú­Ì¥i¥H¨Ï¥Î¡up + [1, 1]¡v¨Ó¥Nªí±N¦h¶µ¦¡ p ¥[¤W x+1¡C

¦h¶µ¦¡ªº°Åªk¡A«h¥i¥Ñ minus.m ¨ç¦¡¨Ó¹F¦¨¡A¤º®e¦p¤U¡G

Example 2: 15-ª«¥ó¾É¦Vµ{¦¡³]­p/@polynom/minus.mfunction r = minus(p,q) % POLYNOM/MINUS Implement p - q for polynoms. p = polynom(p); q = polynom(q); k = length(q.c) - length(p.c); r = polynom([zeros(1,k) p.c] - [zeros(1,-k) q.c]);

¦³¤F³o¨â­Ó¨ç¦¡¤§«á¡A§Ú­Ì´N¥i¥H¨Ó´ú¸Õ¦h¶µ¦¡ªº¥[´îªk¡A¦p¤U¡G

Example 3: 15-ª«¥ó¾É¦Vµ{¦¡³]­p/polyPlusMinus01.mp = polynom([3 4 2 1]); q = polynom([-1, 2]); r = p + q s = r + [2, 3] r = 3*x^3 + 4*x^2 + 1*x^1 + 3*x^0 s = 3*x^3 + 4*x^2 + 3*x^1 + 6*x^0

±µµÛ§Ú­Ì¥i¥H½á¤©­¼ªk»P°£ªk¯à°÷°w¹ï¦h¶µ¦¡ª«¥ó¶i¦æ¹Bºâ¡A©Ò»Ý©w¸qªº¨ç¦¡¬O mtimes.m ¤Î mrdivide.m¡A¤º®e¤À§O¦C¥X¦p¤U¡G

Example 4: 15-ª«¥ó¾É¦Vµ{¦¡³]­p/@polynom/mtimes.mfunction r = mtimes(p, q) % POLYNOM/MTIMES Implement p*q for polynoms. p = polynom(p); q = polynom(q); r = polynom(conv(p.c, q.c));

Example 5: 15-ª«¥ó¾É¦Vµ{¦¡³]­p/@polynom/mrdivide.mfunction [q, r] = mrdivide(a, b) % POLYNOM/MRDIVIDE Implement a/b for polynoms. a = polynom(a); b = polynom(b); [q, r] = deconv(a.c, b.c); q = polynom(q); r = polynom(r);

¦³¤F³o¨Ç¨ç¦¡¤§«á¡A§Ú­Ì´N¥i¥H¹ï¦h¶µ¦¡¶i¦æ¥[´î­¼°£µ¥¥|«h¹Bºâ¤F¡A½Ð¨£¤U¦C½d¨Ò¡G

Example 6: 15-ª«¥ó¾É¦Vµ{¦¡³]­p/polyTimesDivide01.mp = polynom([1, 1]); q = polynom([1, 2]); r = (p+1)*(q+2) [a, b] = r/[1, 1] r = 1*x^2 + 6*x^1 + 8*x^0 a = 1*x^1 + 5*x^0 b = 0*x^2 + 0*x^1 + 3*x^0

¦b«e­z½d¨Ò¤¤¡A§Ú­Ì¨Ï¥Î mrdivide.m ¥Î¨Ó©w¸q¡u¥k°£¡v¡]¨Ò¦p p/q¡^¡A§A¤]¥i¥H¨Ï¥Î mldivide.m ¨Ó©w¸q¡u¥ª°£¡v¡]¨Ò¦pp\q¡^¡C¦¹¥~¡A§AÁÙ¥i¥H¨Ï¥Î mpower.m ¨Ó©w¸q¾­¤è¡A¨Ò¦pp^n¡CMATLAB ¹Bºâ¤¸»Pª«¥ó¨ç¦¡¤§¶¡ªº¹ïÀ³Ãö«Y¡A½Ð¨£¤Uªí¡C

¹Bºâ¦¡M-ÀÉ®×»¡©ú
a+bplus(a,b)¤G¤¸¥[ªk¡]Binary addition¡^
+auplus(a)¤@¤¸¥[ªk¡]Unary plus¡^
a-bminus(a,b)¤G¤¸´îªk¡]Binary subtraction¡^
-auminus(a)¤@¤¸´îªk¡]Unary minus¡^
a.*btimes(a,b)¤¸¯À¹ï¤¸¯À¤§­¼ªk¡]Element-wise multiplication¡^
a*bmtimes(a,b)¯x°}­¼ªk¡]Matrix multiplication¡^
a./brdivide(a,b)¤¸¯À¹ï¤¸¯Àªº¥k°£¡]Right element-wise division¡^
a.\bldivide(a,b)¤¸¯À¹ï¤¸¯Àªº¥ª°£¡]Left element-wise division¡^
a/bmrdivide(a,b)¯x°}ªº¥k°£¡]Matrix right division¡^
a\bmldivide(a,b)¯x°}ªº¥ª°£¡]Matrix left division¡^
a.^bpower(a,b)¤¸¯À¹ï¤¸¯Àªº¾­¦¸¡]Element-wise power¡^
a^bmpower(a,b)¯x°}ªº¾­¦¸¡]Matrix power¡^
a < blt(a,b)¤p©ó¡]Less than¡^
a > bgt(a,b)¤j©ó¡]Greater than¡^
a <= ble(a,b)¤p©ó©Îµ¥©ó¡]Greater than or equal to¡^
a >= bge(a,b)¤j©ó©Îµ¥©ó¡]Less than of equal to¡^
a~=bne(a,b)¤£µ¥©ó¡]Not equal to¡^
a==beq(a,b)µ¥©ó¡]Equality¡^
a&band(a,b)ÅÞ¿è AND¡]Logical AND¡^
a|bor(a,b)ÅÞ¿è OR¡]Logical OR¡^
~anot(a)ÅÞ¿è NOT¡]Logical NOT¡^
a:d:b
a:b
colon(a,d,b)
colon(a,b)
«_¸¹¹Bºâ¡]Colon operator¡^
a'ctranspose(a)¦@³m½Æ¼ÆÂà¸m¡]Complex conjugate transpose¡^
a.'transpose(a)¯x°}Âà¸m¡]Matrix transpose¡^
Åã¥Üª«¥ó©ó¿Ã¹õdisplay(a)Åã¥Üª«¥óªº¤èªk¡]Display method¡^
[a b]horzcat(a, b, ...)¤ô¥­¦ê±µ¡]Horizontal concatenation¡^
[a; b]vertcat(a, b, ...)««ª½¦ê±µ¡]Vertical concantenation¡^
a(s1, s2, ..., sn)subsref(a, s)¥H¤U¼Ð¶i¦æ¦s¨ú¡]Subscripted reference¡^
a(s1, s2, ..., sn)=bsubsasgn(a, s, b)¥H¤U¼Ð¶i¦æ«ü©w¡]Subscripted assignment¡^
b(a)subsindex(a)¤U¼Ð¯Á¤Þ¡]Subscript index¡^

MATLABµ{¦¡³]­p¡G¶i¶¥½g