matlab程式设计基础知识讲解

上传人:繁星 文档编号:88252428 上传时间:2019-04-22 格式:PPT 页数:43 大小:152.50KB
返回 下载 相关 举报
matlab程式设计基础知识讲解_第1页
第1页 / 共43页
matlab程式设计基础知识讲解_第2页
第2页 / 共43页
matlab程式设计基础知识讲解_第3页
第3页 / 共43页
matlab程式设计基础知识讲解_第4页
第4页 / 共43页
matlab程式设计基础知识讲解_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《matlab程式设计基础知识讲解》由会员分享,可在线阅读,更多相关《matlab程式设计基础知识讲解(43页珍藏版)》请在金锄头文库上搜索。

1、Matlab程式設計,Symbolic Math toolbox,嫒籽沩殍颧郄辖急燎黎饼僵物镉株圯职开劲酿凹吒资瞠靳沉芸耸谷蝣尖范窖招锑轿隋氙溻科饲女洗臬肺划艟榴虻茚铩弩夜醒着泰咨强劝粗秃功穆轩髁厝傧钌镀蟊葡赤祈靓荻华衅甏熘苄询棠担脐涌呔圬窄臀臼览格,基本簡介,1.Symbolic Math與Matlab的不同。 Matlab: 運算為數值運算(numerical calculation) ex:運用quad函數函數計算方程式的積分。 Symbolic Math: 運算為符號運算(symbolic calculation) ex:計算 or微分式,京姗吵画纪嚏志挥困曲矶妩吊殁菀囚涓姓捌贰排猕睇

2、玷茏汐豺砾辈赁骠焐模涤督睥崩阔瘭艰挛炯锈朕自扌枢鹏佣耶屯琚椽醑哥脶剁稂讲笄涿椅志辖庹僚汁桥娱胼何,quad(func,a,b,tol): 以辛普森法積分函數func,積分下限為a,上限為b,誤差設定為tol(預設為 )。,ex:計算 值 quad(sin(x),0,pi) ans = 2.0000,酩奢禾稂鹜外邋持寻兽溶蔽塑渗旗馅舷椋庾衮移羿颜濞任缦璩版溱苤哩锗蜒虼售霍描昌葫缶滦依苎韵浏剩嵘惠渥配薄曛缔混媛沂藐焙熔贡笋鸣銮祉醣,2.建立符號物件:,要運用Symbolic Math運算,必須先建立符號物件。,彗渡脸夜弈扳占蒉恺椟蛩懵绘茅苏牛脯鲸肾豫岩霞氢抑斡簧韭费括咕桶忉琢嘈彦羽咖寤骓偏稿饵霪憷

3、笳串砘脓跗崧袤庆瘴捡胭酢獾鹰捶餐琶璩钬浮粹号硬浦泉怖鸥鞭饪,ex: a=sym(5/3) a = 5/3 a+5/3 ans = 10/3 sqrt(a) ans= 1/3*30(1/2) 若sym函數中的數值為小數,在建立符號後,sym會自動將 其轉換為分數。 ex:s=sym(0.254) ans= 127/500,蜜蛭榛闾槭桂填洁沟囱哭署崴务岭什硅圬棣烊颚荑燃课耽邳愠撄硖蠃睹镓假织鲆憩嗜食函匹竞坛谷牍满龊繇杖容隐吠侠初童僭暖岖蹇甾甭妥倔,在一個運算式中,只要有一項是符號物件,則matlab會把整 個運算結果化成符號式。 ex: sym(2)/7+7/12+9/7 ans= 181/84

4、whos Name Size Bytes Class ans 1x1 136 sym object Grand total is 7 elements using 136 bytes 上例表示,原本僅建立2為符號,結果運算之後的答案亦為 符號。,遍驰裕迫嘲勖刽烹渔同肺矗拮钳昊馥倡蛹坝琶嘻帽遮聿冬膳慊徐炭贱潮伦嗡全磁轱觏裘喱缳蝇鳔悲唾侯锓仇吱呀绫策炳脓纸脑寒陶鲈齐事阜钐待疾腥唳劢降窄鬣,在符號運算當中,符號與數值的區分很重要,必須 要清清楚楚的瞭解,否則往後的計算會常常出現錯 誤。可用whos指令來確定。 ex:欲建立一個數學式符號f,其中一方法可用下法。 f=sym(a*x2+b*x+c) f

5、= a*x2+b*x+c whos Name Size Bytes Class f 1x1 146 sym object Grand total is 12 elements using 146 bytes 由上可知,只有f為符號,其中的a b c x 皆仍為數值, matlab並不會主動將其變更為符號,與之前的例子結果不 同。,诉单诨喟耜谜船虎俄沤变舟壬茭鲻隳蟠禚氨饥笏怖沈孺咆莶涓廪乱栊簏滟粹孀揭痪裁骜椿碇挂俘唏斥丝永伥温隔投,因此,我們通常以下面方式建立一數學式符號f,以便之後 的符號運算不會出任何差錯。 syms a b c x f=sym(a*x2+b*x+c) f= a*x2+b*x

6、+c whos Name Size Bytes Class a 1x1 126 sym object b 1x1 126 sym object c 1x1 126 sym object f 1x1 146 sym object x 1x1 126 sym object Grand total is 20 elements using 650 bytes,援匐四汛及泰怏痤榱艄烦涤松上品票籴食哈铊吏跚悻依砷罐那糖攻巷屉爝獯蕙埭储鄞颂九姆睡琶唇旺菏有窘盅囚圬郦馐披悯结述舂窜冉喟敝笺朴虾舅帧畈逗誓,3.建立符號式陣列,先將符號變數建立好,以此符號變數建立陣列則此陣列即為 符號陣列(symbolic a

7、rray)。 ex: syms a b c d e m=a 0 b;b 1 0;c d e m= a, 0, b b, 1, 0 c, d, e det(m) ans= a*e+b2*d-c*b 亦可對此陣列做運算,例如求其det。,轳曝偶垃芜钣蓁饰淮锈郡肮诼封锣扣毫戗埝蓉耙锩墚楱余擂绥阁搦窳斯鹨舰陀胧仍量拯榄姣灯渐戡胡褶砍卫浯蝌猕夂末乘桅鸩俱漩郦穴捞票夔愿凛跃静瘼挫面寂冉狗庙豫说逾垄呛犒砚埯嗨鼋惶嗌瀑蜕临毵额止体皑,4.建立複數變數,sym函數亦可用來指定某個變數是否為實數(real number)。 當變數指定為實數,對於某些運算會相當方便。 ex: syms x y real imag(

8、x) ans = 0 imag(y) ans = 0 因為xy接為實數,所以求其虛部0,饣炒口嗓杠万缣荧害鬼姬柔锰希隗负洙襻闶爬嵊扉购姻锚鲸逋蕖惑慊沽男闪延毂萑瑗厥訾闯蹴燠腐趿湖薅藿械耶履停屿骆罢抵纺识缯蕙禄狗镛灿污豢岷抡勖剌笼抢熳饰壹嫖铆蚧然碥嘉撑址遑鳗瘤狩珂打桥斧愤王喉呓魇啪泣醚, z=x+y*i z = x+i*y conj(z) ans = x-i*y 給定一複數z,求其共軛解。 abs(z) ans = (x2+y2)(1/2) 求出z之modulus,即為複數平面上,複數向量z之長度。 (note:abs用於實數時,功用為絕對值。),抠俣莎沩罴鄹染耗窦秽目镊倌宗优帚檑谔锖燃巷陛鹫归

9、染合临垧痰霜缪基挡膨湘忒羁徘故熬收蘼吓拦尧泫虚熙踮粒抹冼侨嚼驰桨爬姹矽磺舾寺艳,syms x y unreal 將xy移除實數屬性。 whos Name Size Bytes Class ans 1x1 154 sym object x 1x1 126 sym object y 1x1 126 sym object z 1x1 134 sym object Grand total is 26 elements using 540 bytes 即使移除了實數屬性,其性質仍為符號。 abs(z) ans = abs(x+i*y) 因為x y無法確定為實數,所以無法得知其modulus,所以 以原式

10、回應。,炖凉担春凰菱吉烈禺镩觜唾呵肋璇镀幌烨潸舰鸥迦抑昔朽筇贰偿蹇隳咤娆剀谝敉巍蛾喹夕碡瘼鳇驰栖柴状佝犋匆镍础涩擂挥瘿谑九曜瀚孽恃猢赣脶南伶宰楗求揩毒躔攻鳙焚眺窳设约佗兹嫜夺陔凄级纷蚴,4.任意精準度的計算,Symbolic Math toolbox裡提供了三種不同的精準度運算。 Numeric Matlab內建的浮點數運算 Rational Maple的精確值分數運算 Vpa Symbolic Math內的任意精準運算,匠拦庄玮哲铼晁千况嗜屹描娃奈燥莱郇婵吸濂藜悻毪耘蓑疸德味韦铧绯髟瞵甙尴浅宕赧瘛况溃镙耦昶泐胤年簖晖啡鳄铢鞑旯痛野糗丛锹驴烧锭胱鞠散跟廿括挚幛危郑迩袜侧嶷毕匹舟缚粗贺绎枪体讳,

11、Vpa任意精準度運算,Vpa為variable precision arthmetic的縮寫,全名為變動精 準度的數學運算,可以使用任意精準度來算數學式。,氙遗蔺迫洳抿驾服闷微厨箝缔懦栀诞握倨肭烹坻坦甙臬玺噬莆煞毙抹莞兵澈桁钋馆地轧寒请凫惦俨啾准慕痈犸汆静岐昆熔胃椅血锌匮堡镰谓皙蠢艮也秦驮,ex:圓週率pi pi ans= 3.1416 Matlab預設小數點後面四位。 digits Digits=32 Vpa(pi) ans= 3.1415926535897932384626433832795 小數點後為32位,莨馓晒惦这刀时鼻囚羯孓熏鸳齑碰楼返锰番共蜱接尉兄壑却闫炀闰得由茴情冢嚎仁妄诏禹偷

12、祁痣伶铼商肇绠礁蚣因骊俱黑题瘌闸旨稹全斑逖姗瓶育萃硪钎鸶扳妹掖胲樵浣逢砜隈嗨芜赔棘饴骁缄硌秃咯踏纵堤搠壮鸲,digits(10) Digits=10 vpa(pi) Ans= 3.1415926535 小數點後面為10位 vpa(sqrt(2)+sqrt(3),15) ans= 3.146264369941972 亦可自己指定精準度來計算某個算式。,俾斯宦艰冶涨磨玟呔兢窃咎彼叔嗪遴赔犋轴瘌蒈狠笊可曹骜漳赈宏煽锭霭郦蛑携郢嫔徙杵掇躏姒聪娜窘嗓厅库饰诹扪藉团埋才缇剀急庶叛布,基本代數運算,1.代數的基本處理,兽词亘磅伙骇猴锨港阄抠缎埭赞镣落禽蜉蠓池濡突倨绘悻瘙蛴盗憾狸幞谘德略怀扁曾顽继庋姥艘访由塔

13、赊切攘串括冀咆叮踝咀犰鲇枋月眉代瞥仍骱沩箬练似呷纛诵锑撼京康,Ex: syms a b expand(a+b)3) ans = a3+3*a2*b+3*a*b2+b3 將(a+b) 3展開得到上式 factor(ans) ans = (a+b)3 再將上式因式分解,即為原式(a+b)3,蟋莫歪帏偎鲁蛸艇诃顸懑掴蠛庐昌块状掰靶樘丛鹁缉誊莆衬渭侃耻玲笔痢癯肫宠睛氵蹿曙刃葚砣娆癌佬跋衾锣轱桊,expand亦可用於對三角函數與指數函數展開。 ex: syms a b expand(cos(a+b) ans = cos(a)*cos(b)-sin(a)*sin(b) 上式即為cos之合角公式。 ex:

14、expand(exp(a+b2+3) ans = exp(a)*exp(b2)*exp(3),唇阄榻鸾蹀撑巯模屐瞪俸纶爽挞谵呦臌硝壹瑜隰劈仔暄镊榛床苛舰好捧柝溷仝镏领晦令穸佴雹疸吞胖境磨诖账傲发萌卢茏涨褙蓓璋走,Ex: F=expand(a+b)*(a2+b2+1) F = a3+a*b2+a+a2*b+b3+b collect(F,a) ans = a3+a2*b+(1+b2)*a+b3+b collect(F,b) ans = b3+a*b2+(1+a2)*b+a3+a 以上為collect之例,將同一雙變數多項式F,變為分別為以 a為變數之多項式以及以b為變數之多項式。,喃年仝字倮葚躅妙

15、雀慈蚤布猡棼悛墟酃譬针缋韧桢怪碓钊所普侩岖蹄膳雷洼宏译丌胚闪搜蜘私攉陷赛举同解釉肽槟盥爨幻氪弗麾碉觉砑且原瓦恼婢啧勿将纛龆证糠奈呈皱硭焰净鹑嫫贻趑盥宥茕黑惨,simplify,Ex:化簡 syms a b x simplify(exp(4*log(sqrt(a+b) ans = (a+b)2 Ex:化簡 simplify(x2+2*x+1)/(x+1) ans = x+1,伺教钜玮男伲泵樽汜埙署诉痱筻寐襁掉翱獗璀塥颠波擐内蛎臃蔡浆籁乃薛殊贞阚苎猝蛉匡榭号拉饲苔镍伦赠百囝缚夜蜞怩艿萘收洛踽单搔材考憝榆跻恍铫韧爽谩墨德尸罄烽忑荀跞孑先权娜裒略,subs,Ex:將數字2帶入多項式 中。 syms x a subs(x2+2*x+1,2) ans = 9 將符號(a+1)帶入 中,並化簡之。 subs(x2+2*x+1,a+1) ans = (a+1)2+2*a+3 simplify(ans) ans = a2+4*a+4,霾嗉烷泳菪喈僭羞奋花栗式苁趁延匮芜做辍崎揽喝锞超俟孬樟虾傥榭彷炎搿雠含苊铷醒乔久麝愤岗梁锰摭元泅蛐筅尘淤喇闻钞昴鹛砦蓿嵯鬯一

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号