15-3 ���������������

±`¥Î¦b¦h¶µ¦¡ªº¾Þ§@¥]§t¨D­È¡B¨D®Ú¡B·L¤À¡B¿n¤Àµ¥¡A³o¨Ç¾Þ§@§Ú­Ì³£¥i¥H¬Ý¦¨¬O¦h¶µ¦¡ª«¥óªº¤èªk¡]Methods¡^¡A¨C¤@­Ó¤èªk³£¹ïÀ³¨ì @polynom ¥Ø¿ý¤Uªº¤@­Ó¨ç¦¡¡C¦Ó¥B³o¨Ç¨ç¦¡¥u¯àÀ³¥Î©ó§Ú­Ì©Ò©w¸qªº¦h¶µ¦¡ª«¥ó¡C

¤@­Ó³Ì²³æªº¤èªk¡A´N¬O­n¨ú¥Î¦h¶µ¦¡ª«¥óªº«Y¼Æ¡A¥i¥H¾a¤U¦C¨ç¦¡¨Ó§¹¦¨¡G

Example 1: 15-ª«¥ó¾É¦Vµ{¦¡³]­p/@polynom/polyCoef.mfunction c = polyCoef(p) % POLYNOM/POLYCOEF Convert polynom object to coefficient vector. c = p.c;

¸g¥Ñ¦¹¨ç¦¡¡]©Î¤èªk¡^¡A¥~³¡¥@¬É¤~¯à¨ú±o¤@­Ó¦h¶µ¦¡ª«¥óªº«Y¼Æ¡C

­Y­n­pºâ¦h¶µ¦¡ªº­È¡A§Ú­Ì¥i¥H±Ä¥Î¤U¦C¨ç¦¡¡G

Example 2: 15-ª«¥ó¾É¦Vµ{¦¡³]­p/@polynom/polyval.mfunction y = polyval(p, x) % POLYNOM/POLYVAL POLYVAL(p, x) evaluates p at the points x. y = polyval(p.c, x);

¦b¤W­z¨ç¦¡¤¤¡A§Ú­Ìª½±µ©I¥s MATLAB ­ì¦³ªº¨ç¦¡ polyval ¨Ó­pºâ¦h¶µ¦¡ªº­È¡AÁöµM¨ç¦¡¦WºÙ¤@¼Ë¡A¦ý MATLAB ¯à°÷®Ú¾Ú¸ê®Æ«¬ºAªº¤£¦P¨Ó©I¥s¤£¦Pªº¨ç¦¡¡A³o¤]¬OÄÝ©ó¨ç¦¡­«¸ü¥\¯àªºÅé²{¡C±ý´ú¸Õ¦¹¤èªk¡A½Ð¨£¤U¨Ò½d¨Ò¡G

Example 3: 15-ª«¥ó¾É¦Vµ{¦¡³]­p/polyval01.mp = polynom([1 2 3]); x = polyval(p, 1) y = polyval(p, [1 2 3 4])x = 6 y = 6 11 18 27

Hint
¦b¤W­z½d¨Ò¤¤¡AMATLAB ±Ä¥Î y = polyval(p, [1 2 3 4]) ªº¤è¦¡¨Ó©I¥s¦h¶µ¦¡ª«¥ó p ªº¤èªkpolyval¡A¦ý¦b¤@¯ë¤ä´©OOPªºµ{¦¡»y¨¥¡]¦p C++ ©Î JavaScript¡^¤¤¡A¹ïÀ³ªº©I¥s¤è¦¡À³¸Ó¬O y = p.polyval([1 2 3 4])¡A¶È¨Ñ°Ñ¦Ò¤ñ¸û¡C

§Q¥ÎÃþ¦üªº¤è¦¡¡A§Ú­Ì¤]¥i¥H¨D¨ú¦h¶µ¦¡ªº®Ú¡]roots.m¡^¡B·L¤À¡]polyder.m¡^¡B¿n¤À¡]polyint.m¡^¡A³o¨Ç¨ç¦¡³£¤w¸g¸m©ñ©ó @polynom ¥Ø¿ý¤§¤U¡AŪªÌ¥i¥H¦Û¦æ¶i¦æ¬ÛÃö´ú¸Õ¤Î¹êÅç¡C

¥t¤@­Ó±`¥Îªº¥\¯à¡A´N¬O¹ï¦h¶µ¦¡µe¹Ï¡A³o¥i¥Ñ¤U¦Cªº plot.m ¨ç¦¡¨Ó¹F¦¨¡G

Example 4: 15-ª«¥ó¾É¦Vµ{¦¡³]­p/@polynom/plot.mfunction plot(p, range) % POLYNOM/PLOT PLOT(p) plots the polynom p. if nargin<2 range = max(abs(roots(p)))*[-1 1]; end x = linspace(range(1), range(2)); y = polyval(p, x); plot(x, y); title(polyAsString(p)) grid on

¦b¤W­z¨ç¦¡¤¤¡Arange ¬O´yÂI§@¹Ïªº½d³ò¡A­Y¤£µ¹©w¡A¦¹¨ç¦¡¤]·|¦Û°Ê¨M©w¤@­Ó½d³ò¨Ó¶i¦æ§@¹Ï¡C¥H¤U½d¨Ò¥i¥Î¨Ó´ú¸Õ¦¹ plot ¨ç¦¡¡G

Example 5: 15-ª«¥ó¾É¦Vµ{¦¡³]­p/polyPlot01.mp = polynom([1 -4 -1 4]); range = [-1.2, 4.2]; subplot(3,1,1); plot(p, range); p2 = polyder(p); subplot(3,1,2); plot(p2, range); p3 = polyder(p2); subplot(3,1,3); plot(p3, range);

¦b¤W­z½d¨Ò¤¤¡A²Ä¤@­Ó¹Ï¬O¦h¶µ¦¡ ¦b [-1.2, 4.2] °Ï¶¡ªº¦±½u¹Ï¡A²Ä¤G¡B¤T­Ó¹Ï¤À§O¬O ªº¤@¦¸©M¤G¦¸¾É¨ç¼Æªº¹Ï¡C

¦pªG§A­nÅã¥Ü¤@­ÓÃþ§Oªº©Ò¦³¤èªk¡A¥i¥H¨Ï¥Î methods «ü¥O¡A¨Ò¦p¦pªG§A¦b MATLAB ©R¥Oµøµ¡¿é¤J¡umethods polynom¡v¡A´N¥i¥H¬Ý¨ì¥Ñ polynom Ãþ«¬©Ò¾Ö¦³ªº¦UºØ¤èªk¡C


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