MATLAB程序設(shè)計(jì) 課件 第7章_第1頁(yè)
MATLAB程序設(shè)計(jì) 課件 第7章_第2頁(yè)
MATLAB程序設(shè)計(jì) 課件 第7章_第3頁(yè)
MATLAB程序設(shè)計(jì) 課件 第7章_第4頁(yè)
MATLAB程序設(shè)計(jì) 課件 第7章_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、MATLAB程序設(shè)計(jì)及應(yīng)用程序設(shè)計(jì)及應(yīng)用第第7章章 符號(hào)運(yùn)算簡(jiǎn)介符號(hào)運(yùn)算簡(jiǎn)介 7.1 符號(hào)對(duì)象的創(chuàng)建符號(hào)對(duì)象的創(chuàng)建 在在MATLAB中,數(shù)學(xué)表達(dá)式所用到的變量必須事先被賦中,數(shù)學(xué)表達(dá)式所用到的變量必須事先被賦過(guò)值。這一點(diǎn)對(duì)于符號(hào)運(yùn)算而言,同樣不例外。首先也要定過(guò)值。這一點(diǎn)對(duì)于符號(hào)運(yùn)算而言,同樣不例外。首先也要定義基本的符號(hào)對(duì)象,然后才能進(jìn)行符號(hào)運(yùn)算。義基本的符號(hào)對(duì)象,然后才能進(jìn)行符號(hào)運(yùn)算。 符號(hào)對(duì)象是一種數(shù)據(jù)結(jié)構(gòu),包括符號(hào)常量、符號(hào)變量和符符號(hào)對(duì)象是一種數(shù)據(jù)結(jié)構(gòu),包括符號(hào)常量、符號(hào)變量和符號(hào)表達(dá)式,用來(lái)存放代表符號(hào)的字符串。號(hào)表達(dá)式,用來(lái)存放代表符號(hào)的字符串。MATLAB規(guī)定:規(guī)定:任何包含符

2、號(hào)對(duì)象的表達(dá)式或方程,將繼承符號(hào)對(duì)象的屬性任何包含符號(hào)對(duì)象的表達(dá)式或方程,將繼承符號(hào)對(duì)象的屬性。也就是說(shuō),也就是說(shuō),包含符號(hào)對(duì)象的包含符號(hào)對(duì)象的表達(dá)式或方程也一定是符號(hào)對(duì)象。表達(dá)式或方程也一定是符號(hào)對(duì)象。第第7章章 符號(hào)運(yùn)算簡(jiǎn)介符號(hào)運(yùn)算簡(jiǎn)介 7.1 符號(hào)對(duì)象的創(chuàng)建符號(hào)對(duì)象的創(chuàng)建 定義符號(hào)對(duì)象的指令有兩個(gè):定義符號(hào)對(duì)象的指令有兩個(gè):sym和和syms。它們常用的調(diào)用格。它們常用的調(diào)用格式為式為 sym(arg) 把數(shù)字、字符串或表達(dá)式把數(shù)字、字符串或表達(dá)式arg定義為符定義為符 號(hào)對(duì)象號(hào)對(duì)象 sym(argn, flagn) 把數(shù)值或數(shù)值表達(dá)式把數(shù)值或數(shù)值表達(dá)式argn定義為定義為flagn 格

3、式的符號(hào)對(duì)象格式的符號(hào)對(duì)象 sym(argv, flagv) 按按flagv指定的要求把字符指定的要求把字符argv定義定義 為符號(hào)對(duì)象為符號(hào)對(duì)象 syms(argv1, ,argvk, flagv) 把字符把字符argv1,,argvk 定義為符號(hào)對(duì)象定義為符號(hào)對(duì)象 syms argv1 argvk, flagv 前一格式的簡(jiǎn)潔形式前一格式的簡(jiǎn)潔形式 【說(shuō)明說(shuō)明】 當(dāng)當(dāng)sym(argn, flagn)中的中的argn是數(shù)值或數(shù)值表達(dá)式時(shí),是數(shù)值或數(shù)值表達(dá)式時(shí),flagn可以取為以下可以取為以下4種種格式:格式:d 用最接近的十進(jìn)制數(shù)格式表示符號(hào)量用最接近的十進(jìn)制數(shù)格式表示符號(hào)量e 用最接近的

4、帶有機(jī)器浮點(diǎn)誤差的有理數(shù)格式表示符號(hào)量用最接近的帶有機(jī)器浮點(diǎn)誤差的有理數(shù)格式表示符號(hào)量f 用最接近的浮點(diǎn)格式表示符號(hào)量用最接近的浮點(diǎn)格式表示符號(hào)量r 用有理數(shù)格式(系統(tǒng)默認(rèn)格式)表示符號(hào)量用有理數(shù)格式(系統(tǒng)默認(rèn)格式)表示符號(hào)量 sym(argv, flagv)中的中的argv是字符時(shí),是字符時(shí),flagv可以取下列可以取下列“限制性限制性”選項(xiàng):選項(xiàng):positive 限定限定argv為為“正、實(shí)正、實(shí)”符號(hào)變量符號(hào)變量real 限定限定argv為為“實(shí)實(shí)”符號(hào)變量符號(hào)變量unreal 限定限定argv為為“非實(shí)非實(shí)”符號(hào)變量符號(hào)變量 如果不限制,則如果不限制,則flagv可以省略。可以省略。

5、 syms(argv1, ,argvk, flagv)中的中的flagv與與 sym(argv, flagv)中的一致。中的一致。 最后一種格式中的各符號(hào)變量名之間只能用空格分隔。最后一種格式中的各符號(hào)變量名之間只能用空格分隔。 sym和和syms指令也可以創(chuàng)建符號(hào)數(shù)組。指令也可以創(chuàng)建符號(hào)數(shù)組。7.1 符號(hào)對(duì)象的創(chuàng)建符號(hào)對(duì)象的創(chuàng)建 % exam7_1cleara_s=pi+sin(5) % 創(chuàng)建一個(gè)數(shù)值類常量創(chuàng)建一個(gè)數(shù)值類常量a_f=sym(pi+sin(5) % 創(chuàng)建一個(gè)符號(hào)類常量創(chuàng)建一個(gè)符號(hào)類常量a_str=pi+sin(5) % 創(chuàng)建一個(gè)字符串創(chuàng)建一個(gè)字符串whos % 了解各變量的具體

6、信息了解各變量的具體信息7.1 符號(hào)對(duì)象的創(chuàng)建符號(hào)對(duì)象的創(chuàng)建 【例例7.1】 符號(hào)(類)數(shù)字與數(shù)值(類)數(shù)字、字符(類)數(shù)字符號(hào)(類)數(shù)字與數(shù)值(類)數(shù)字、字符(類)數(shù)字之間的差異。之間的差異。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_1.m如下:如下:7.1 符號(hào)對(duì)象的創(chuàng)建符號(hào)對(duì)象的創(chuàng)建 exam7_1.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果【說(shuō)明說(shuō)明】 符號(hào)類數(shù)字總是被準(zhǔn)確地符號(hào)類數(shù)字總是被準(zhǔn)確地記錄和運(yùn)算;數(shù)值類數(shù)字記錄和運(yùn)算;數(shù)值類數(shù)字并不能保證被完全準(zhǔn)確地并不能保證被完全準(zhǔn)確地記錄,運(yùn)算時(shí)也會(huì)引入截記錄,運(yùn)算時(shí)也會(huì)引入截?cái)嗾`差。斷誤差。 盡管盡管a_f 和和a_str 顯示出顯示出的內(nèi)容完全相同,但它

7、們的內(nèi)容完全相同,但它們是屬于不同的數(shù)據(jù)類型是屬于不同的數(shù)據(jù)類型(注意三類數(shù)據(jù)在工作空注意三類數(shù)據(jù)在工作空間中不同的標(biāo)識(shí)間中不同的標(biāo)識(shí)),運(yùn)算),運(yùn)算方式也完全不同。符號(hào)常方式也完全不同。符號(hào)常量占用的存儲(chǔ)空間也較大。量占用的存儲(chǔ)空間也較大。7.1 符號(hào)對(duì)象的創(chuàng)建符號(hào)對(duì)象的創(chuàng)建 【例例7.2】數(shù)值量轉(zhuǎn)換成符號(hào)量時(shí)的不同表示。數(shù)值量轉(zhuǎn)換成符號(hào)量時(shí)的不同表示。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_2.m如下:如下:% exam7_2cleara1=sym(pi+sin(5), d) % 十進(jìn)制數(shù)格式,十進(jìn)制數(shù)格式,32位長(zhǎng)度位長(zhǎng)度a2=sym(pi+sin(5), e) % 帶有機(jī)器浮點(diǎn)誤差的有

8、理數(shù)格式帶有機(jī)器浮點(diǎn)誤差的有理數(shù)格式a3=sym(pi+sin(5), f ) % 浮點(diǎn)數(shù)格式浮點(diǎn)數(shù)格式a4=sym(pi+sin(5) % 指數(shù)形式的有理數(shù)格式指數(shù)形式的有理數(shù)格式7.1 符號(hào)對(duì)象的創(chuàng)建符號(hào)對(duì)象的創(chuàng)建 exam7_2.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果7.1 符號(hào)對(duì)象的創(chuàng)建符號(hào)對(duì)象的創(chuàng)建 【例例7.3】創(chuàng)建符號(hào)變量,用參數(shù)設(shè)置其特性。創(chuàng)建符號(hào)變量,用參數(shù)設(shè)置其特性。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_3.m如下:如下:% exam7_3clearsym(x, real); sym(y,real); % 創(chuàng)建實(shí)數(shù)符號(hào)變量創(chuàng)建實(shí)數(shù)符號(hào)變量z=sym(x+i*y) % 創(chuàng)建創(chuàng)建z為復(fù)數(shù)符號(hào)

9、變量為復(fù)數(shù)符號(hào)變量real(z) % z的實(shí)部是實(shí)數(shù)的實(shí)部是實(shí)數(shù)sym(x, unreal); % 將將x的實(shí)數(shù)特性清除的實(shí)數(shù)特性清除real(z) % z的實(shí)部的實(shí)部7.1 符號(hào)對(duì)象的創(chuàng)建符號(hào)對(duì)象的創(chuàng)建 exam7_3.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果【說(shuō)明說(shuō)明】 當(dāng)設(shè)置當(dāng)設(shè)置x和和y為實(shí)數(shù)型變量時(shí),為實(shí)數(shù)型變量時(shí),可以確定可以確定z的實(shí)部和虛部分別為的實(shí)部和虛部分別為x和和y。當(dāng)將當(dāng)將x的的“real”特性特性去除后,去除后,MATLAB默認(rèn)默認(rèn)x是一個(gè)復(fù)數(shù)符號(hào)是一個(gè)復(fù)數(shù)符號(hào)變量。此時(shí)變量。此時(shí)x的實(shí)部必然是:的實(shí)部必然是: 1/2*x+1/2*conj(x) 函數(shù)函數(shù)real和和conj都是第都是

10、第2章表章表2.2 (p.28)中的標(biāo)準(zhǔn)函數(shù)中的標(biāo)準(zhǔn)函數(shù)。7.1 符號(hào)對(duì)象的創(chuàng)建符號(hào)對(duì)象的創(chuàng)建 【例例7.4】多種方法創(chuàng)建符號(hào)表達(dá)式的示例。多種方法創(chuàng)建符號(hào)表達(dá)式的示例。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_4.m如下:如下:% exam7_4clearf1=sym(a*x2+b*x+c) % 不創(chuàng)建符號(hào)變量,只創(chuàng)建不創(chuàng)建符號(hào)變量,只創(chuàng)建f1符號(hào)表達(dá)式符號(hào)表達(dá)式syms a b c x; % 創(chuàng)建多個(gè)符號(hào)變量創(chuàng)建多個(gè)符號(hào)變量f2=a*x2+b*x+c % 創(chuàng)建創(chuàng)建f2符號(hào)表達(dá)式符號(hào)表達(dá)式syms(a, b, c, x); % 創(chuàng)建多個(gè)符號(hào)變量的另一種格式創(chuàng)建多個(gè)符號(hào)變量的另一種格式f3=a*

11、x2+b*x+c % 創(chuàng)建創(chuàng)建f3符號(hào)表達(dá)式符號(hào)表達(dá)式7.1 符號(hào)對(duì)象的創(chuàng)建符號(hào)對(duì)象的創(chuàng)建 exam7_4.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果【說(shuō)明說(shuō)明】 三種創(chuàng)建方式的結(jié)果相同。三種創(chuàng)建方式的結(jié)果相同。7.1 符號(hào)對(duì)象的創(chuàng)建符號(hào)對(duì)象的創(chuàng)建 【例例7.5】 不同方法創(chuàng)建符號(hào)數(shù)組以及符號(hào)數(shù)組與字符串不同方法創(chuàng)建符號(hào)數(shù)組以及符號(hào)數(shù)組與字符串?dāng)?shù)組差異的示例。數(shù)組差異的示例。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_5.m如下:如下:% exam7_5clear% 不同方法創(chuàng)建符號(hào)數(shù)組不同方法創(chuàng)建符號(hào)數(shù)組x1=sym(a,b; c,d) % 直接創(chuàng)建符號(hào)數(shù)組直接創(chuàng)建符號(hào)數(shù)組syms a b c d % 先定義符號(hào)變

12、量先定義符號(hào)變量x2=a,b; c,d % 再創(chuàng)建符號(hào)數(shù)組再創(chuàng)建符號(hào)數(shù)組% 符號(hào)數(shù)組與字符串?dāng)?shù)組差異符號(hào)數(shù)組與字符串?dāng)?shù)組差異y=a,b; c,d % 創(chuàng)建字符串?dāng)?shù)組創(chuàng)建字符串?dāng)?shù)組whos % 了解各數(shù)組的具體信息了解各數(shù)組的具體信息7.1 符號(hào)對(duì)象的創(chuàng)建符號(hào)對(duì)象的創(chuàng)建 exam7_5.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果【說(shuō)明說(shuō)明】 x1和和x2是完全相同的是完全相同的(22)符號(hào)數(shù)組,占用了較大存儲(chǔ)空間;它符號(hào)數(shù)組,占用了較大存儲(chǔ)空間;它們與字符串?dāng)?shù)組們與字符串?dāng)?shù)組y明顯不同。明顯不同。 7.2 符號(hào)表達(dá)式的代數(shù)運(yùn)算符號(hào)表達(dá)式的代數(shù)運(yùn)算 與數(shù)值運(yùn)算相比,符號(hào)運(yùn)算具有如下特點(diǎn):與數(shù)值運(yùn)算相比,符號(hào)運(yùn)算具有如

13、下特點(diǎn): (1)符號(hào)運(yùn)算不會(huì)出現(xiàn)每次數(shù)值運(yùn)算都可能產(chǎn)生的截?cái)嗾`差以)符號(hào)運(yùn)算不會(huì)出現(xiàn)每次數(shù)值運(yùn)算都可能產(chǎn)生的截?cái)嗾`差以及由于多次運(yùn)算產(chǎn)生的累積誤差,因此符號(hào)運(yùn)算是非常準(zhǔn)確的。及由于多次運(yùn)算產(chǎn)生的累積誤差,因此符號(hào)運(yùn)算是非常準(zhǔn)確的。 (2)符號(hào)運(yùn)算可以得到完全封閉的解析解或者任意精度的數(shù)值)符號(hào)運(yùn)算可以得到完全封閉的解析解或者任意精度的數(shù)值解。解。 (3)符號(hào)運(yùn)算的時(shí)間往往要比數(shù)值運(yùn)算的時(shí)間長(zhǎng)得多,)符號(hào)運(yùn)算的時(shí)間往往要比數(shù)值運(yùn)算的時(shí)間長(zhǎng)得多,有很多有很多工程和科學(xué)中的問(wèn)題是無(wú)法用符號(hào)運(yùn)算求解的工程和科學(xué)中的問(wèn)題是無(wú)法用符號(hào)運(yùn)算求解的 。 第第7章章 符號(hào)運(yùn)算簡(jiǎn)介符號(hào)運(yùn)算簡(jiǎn)介 7.2 符號(hào)表達(dá)式

14、的代數(shù)運(yùn)算符號(hào)表達(dá)式的代數(shù)運(yùn)算 7.2.1 符號(hào)運(yùn)算中的算符和函數(shù)符號(hào)運(yùn)算中的算符和函數(shù) 與數(shù)值運(yùn)算相同,與數(shù)值運(yùn)算相同,MATLAB的符號(hào)數(shù)學(xué)工具箱也把符號(hào)數(shù)組的符號(hào)數(shù)學(xué)工具箱也把符號(hào)數(shù)組(Symbolic Array)看作是存儲(chǔ)和運(yùn)算的基本單元,標(biāo)量數(shù)據(jù)被看)看作是存儲(chǔ)和運(yùn)算的基本單元,標(biāo)量數(shù)據(jù)被看成是成是(11)的數(shù)組,而矩陣則是二維數(shù)組。因此,所有數(shù)值運(yùn)算中的數(shù)組,而矩陣則是二維數(shù)組。因此,所有數(shù)值運(yùn)算中的基本運(yùn)算符,包括數(shù)組的的基本運(yùn)算符,包括數(shù)組的“加加”、“減減”、“乘乘”、“左除左除”、“右除右除”、“點(diǎn)乘點(diǎn)乘”、“共軛轉(zhuǎn)置共軛轉(zhuǎn)置”和和“非共軛轉(zhuǎn)置非共軛轉(zhuǎn)置”等同樣適合等同樣

15、適合于符號(hào)數(shù)組運(yùn)算,并且運(yùn)算法則與數(shù)值運(yùn)算的相同。于符號(hào)數(shù)組運(yùn)算,并且運(yùn)算法則與數(shù)值運(yùn)算的相同。 符號(hào)運(yùn)算中沒(méi)有邏輯運(yùn)算,關(guān)系運(yùn)算也只有是否符號(hào)運(yùn)算中沒(méi)有邏輯運(yùn)算,關(guān)系運(yùn)算也只有是否“等于等于”的概念。的概念。關(guān)系操作符關(guān)系操作符“= =”和和“=”分別對(duì)算符兩邊的對(duì)象進(jìn)行分別對(duì)算符兩邊的對(duì)象進(jìn)行“相等相等”和和“不等不等”的比較。當(dāng)所得結(jié)果為的比較。當(dāng)所得結(jié)果為“真真”時(shí),用時(shí),用“1”表示;為表示;為“假假”時(shí),則用時(shí),則用“0”表示。表示。 7.2.1 符號(hào)運(yùn)算中的算符和函數(shù)符號(hào)運(yùn)算中的算符和函數(shù) MATLAB提供的是面向?qū)ο蟮能浖h(huán)境。對(duì)于不同的數(shù)據(jù)對(duì)象,提供的是面向?qū)ο蟮能浖h(huán)境。對(duì)

16、于不同的數(shù)據(jù)對(duì)象,它借助重載它借助重載(Overload)技術(shù),把具有相同函數(shù)運(yùn)算功能的文件采技術(shù),把具有相同函數(shù)運(yùn)算功能的文件采用同一個(gè)函數(shù)名加以保存。在運(yùn)算中是調(diào)用數(shù)值運(yùn)算文件還是符號(hào)用同一個(gè)函數(shù)名加以保存。在運(yùn)算中是調(diào)用數(shù)值運(yùn)算文件還是符號(hào)運(yùn)算文件,完全由所運(yùn)算的對(duì)象屬性決定。運(yùn)算文件,完全由所運(yùn)算的對(duì)象屬性決定。 MATLAB中可用于符中可用于符號(hào)運(yùn)算的函數(shù)很多,號(hào)運(yùn)算的函數(shù)很多,第第2章表章表2.2(p. 28)中列出的數(shù)組運(yùn)算函數(shù),中列出的數(shù)組運(yùn)算函數(shù),除了除了angle,atan2,log2和和log10只能用于數(shù)組運(yùn)算外,其它均可只能用于數(shù)組運(yùn)算外,其它均可用于符號(hào)運(yùn)算,且使用

17、方法與數(shù)值運(yùn)算中的相同。用于符號(hào)運(yùn)算,且使用方法與數(shù)值運(yùn)算中的相同。第第6章表章表6.1(p.130)中列出的線性代數(shù)矩陣運(yùn)算函數(shù)在符號(hào)運(yùn)算中的用法幾中列出的線性代數(shù)矩陣運(yùn)算函數(shù)在符號(hào)運(yùn)算中的用法幾乎與數(shù)值運(yùn)算中的情況完全一樣。乎與數(shù)值運(yùn)算中的情況完全一樣。7.2 符號(hào)表達(dá)式的代數(shù)運(yùn)算符號(hào)表達(dá)式的代數(shù)運(yùn)算 7.2.2 符號(hào)數(shù)值的任意精度控制和運(yùn)算符號(hào)數(shù)值的任意精度控制和運(yùn)算 數(shù)值運(yùn)算存在截?cái)嗾`差,且在計(jì)算過(guò)程中不斷傳播,而產(chǎn)生累積數(shù)值運(yùn)算存在截?cái)嗾`差,且在計(jì)算過(guò)程中不斷傳播,而產(chǎn)生累積誤差;符號(hào)運(yùn)算的運(yùn)算過(guò)程是在完全準(zhǔn)確的情況下進(jìn)行的,不產(chǎn)生誤差;符號(hào)運(yùn)算的運(yùn)算過(guò)程是在完全準(zhǔn)確的情況下進(jìn)行的,

18、不產(chǎn)生累積誤差。符號(hào)運(yùn)算的這種準(zhǔn)確性是以降低計(jì)算速度和增加內(nèi)存需累積誤差。符號(hào)運(yùn)算的這種準(zhǔn)確性是以降低計(jì)算速度和增加內(nèi)存需求為代價(jià)的。為了兼顧計(jì)算精度和速度,求為代價(jià)的。為了兼顧計(jì)算精度和速度,MATLAB針對(duì)符號(hào)運(yùn)算針對(duì)符號(hào)運(yùn)算提供了一種提供了一種“變精度變精度”算法。常用的指令格式為算法。常用的指令格式為 digits 顯示當(dāng)前環(huán)境下符號(hào)數(shù)值顯示當(dāng)前環(huán)境下符號(hào)數(shù)值“十進(jìn)制浮點(diǎn)十進(jìn)制浮點(diǎn)”表示表示的的 有效數(shù)字位數(shù)有效數(shù)字位數(shù) digits(n) 設(shè)定符號(hào)數(shù)數(shù)值設(shè)定符號(hào)數(shù)數(shù)值“十進(jìn)制浮點(diǎn)十進(jìn)制浮點(diǎn)”表示的有效數(shù)表示的有效數(shù)字字 位數(shù)位數(shù) xs=vpa(x) 根據(jù)表達(dá)式根據(jù)表達(dá)式x 得到得到d

19、igits指定精度下的符號(hào)數(shù)指定精度下的符號(hào)數(shù) 值值xs xs=vpa(x,n) 根據(jù)表達(dá)式根據(jù)表達(dá)式x 得到得到n位有效數(shù)字的符號(hào)數(shù)值位有效數(shù)字的符號(hào)數(shù)值xs7.2.2 符號(hào)數(shù)值的任意精度控制和運(yùn)算符號(hào)數(shù)值的任意精度控制和運(yùn)算 【說(shuō)明說(shuō)明】 變精度函數(shù)變精度函數(shù)vpa(x)的運(yùn)算精度受它之前運(yùn)行的的運(yùn)算精度受它之前運(yùn)行的digits(n)控制??刂?。MATLAB對(duì)對(duì)digits指令的默認(rèn)精度設(shè)置是指令的默認(rèn)精度設(shè)置是32位。位。 xs=vpa(x,n) 只在運(yùn)行的當(dāng)時(shí)起作用。只在運(yùn)行的當(dāng)時(shí)起作用。 x可以是符號(hào)對(duì)象,也可以是數(shù)值對(duì)象,但指令運(yùn)行后所得結(jié)果可以是符號(hào)對(duì)象,也可以是數(shù)值對(duì)象,但指

20、令運(yùn)行后所得結(jié)果xs一定是符號(hào)對(duì)象。一定是符號(hào)對(duì)象。 【例例7.6】指令指令digits和和 vpa的使用的使用 。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_6.m如下:如下:7.2.2 符號(hào)數(shù)值的任意精度控制和運(yùn)算符號(hào)數(shù)值的任意精度控制和運(yùn)算 % exam7_6cleardigits % 觀察當(dāng)前觀察當(dāng)前“十進(jìn)制浮點(diǎn)十進(jìn)制浮點(diǎn)”表示符號(hào)數(shù)值的有效位數(shù)表示符號(hào)數(shù)值的有效位數(shù)p0=sym(pi+sin(5) % (pi+sin(5)字面數(shù)值的完全準(zhǔn)確表達(dá)字面數(shù)值的完全準(zhǔn)確表達(dá)pr=sym(pi+sin(5) % (pi+sin(5)字面數(shù)值在字面數(shù)值在16位精度浮點(diǎn)運(yùn)算下,所得位精度浮點(diǎn)運(yùn)算下,所

21、得 % 雙精度數(shù)字的雙精度數(shù)字的 “廣義有理表示廣義有理表示”形式形式pd=sym(pi+sin(5),d) % (pi+sin(5)字面數(shù)值在字面數(shù)值在16位精度浮點(diǎn)運(yùn)算下,所得位精度浮點(diǎn)運(yùn)算下,所得 % 雙精度數(shù)字的雙精度數(shù)字的 32位十進(jìn)制符號(hào)表達(dá)位十進(jìn)制符號(hào)表達(dá)e32r=vpa(abs(p0-pr) % 用用32位變精度算法計(jì)算位變精度算法計(jì)算 p0與與pr之間的誤差之間的誤差e16=vpa(abs(p0-pd),16) % 用用16位變精度算法計(jì)算位變精度算法計(jì)算p0與與pr之間的誤差之間的誤差 e32d=vpa(abs(p0-pd) % 用用32位變精度算法計(jì)算位變精度算法計(jì)算p0

22、與與pd之間的誤差之間的誤差7.2.2 符號(hào)數(shù)值的任意精度控制和運(yùn)算符號(hào)數(shù)值的任意精度控制和運(yùn)算 exam7_6.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果7.2 符號(hào)表達(dá)式的代數(shù)運(yùn)算符號(hào)表達(dá)式的代數(shù)運(yùn)算 7.2.3 符號(hào)對(duì)象與數(shù)值對(duì)象的轉(zhuǎn)換符號(hào)對(duì)象與數(shù)值對(duì)象的轉(zhuǎn)換 借助借助sym 指令將數(shù)值類數(shù)字轉(zhuǎn)換為符號(hào)類數(shù)字的指令將數(shù)值類數(shù)字轉(zhuǎn)換為符號(hào)類數(shù)字的sym(argn, flag)格式(格式(flag共有四種選項(xiàng),見(jiàn)共有四種選項(xiàng),見(jiàn)7.1節(jié))。節(jié))。 MATLAB的數(shù)值運(yùn)算和可視化指令不能接收符號(hào)類數(shù)字,只能的數(shù)值運(yùn)算和可視化指令不能接收符號(hào)類數(shù)字,只能接收數(shù)值類數(shù)字。在這種情況下,必須利用下列指令格式進(jìn)行數(shù)據(jù)接收

23、數(shù)值類數(shù)字。在這種情況下,必須利用下列指令格式進(jìn)行數(shù)據(jù)類型的轉(zhuǎn)換。類型的轉(zhuǎn)換。 double(Num_sym) 把符號(hào)數(shù)值把符號(hào)數(shù)值Num_sym轉(zhuǎn)換為雙精度轉(zhuǎn)換為雙精度 數(shù)值數(shù)值7.2.3 符號(hào)對(duì)象與數(shù)值對(duì)象的轉(zhuǎn)換符號(hào)對(duì)象與數(shù)值對(duì)象的轉(zhuǎn)換 【例例7.7】將符號(hào)對(duì)象將符號(hào)對(duì)象 轉(zhuǎn)換成數(shù)值量。轉(zhuǎn)換成數(shù)值量。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_7.m如下:如下:)5sin(% exam7_7cleara_sym=sym(pi+sin(5)a_num=double(a_sym) % 轉(zhuǎn)化為數(shù)值量轉(zhuǎn)化為數(shù)值量7.2.3 符號(hào)對(duì)象與數(shù)值對(duì)象的轉(zhuǎn)換符號(hào)對(duì)象與數(shù)值對(duì)象的轉(zhuǎn)換 exam7_7.m的運(yùn)行結(jié)果

24、的運(yùn)行結(jié)果7.3 符號(hào)表達(dá)式的基本操作符號(hào)表達(dá)式的基本操作 第第7章章 符號(hào)運(yùn)算簡(jiǎn)介符號(hào)運(yùn)算簡(jiǎn)介 7.3.1 符號(hào)表達(dá)式中自變量的確定符號(hào)表達(dá)式中自變量的確定 當(dāng)符號(hào)表達(dá)式或方程中有若干個(gè)符號(hào)變量時(shí),應(yīng)該按照哪個(gè)符號(hào)當(dāng)符號(hào)表達(dá)式或方程中有若干個(gè)符號(hào)變量時(shí),應(yīng)該按照哪個(gè)符號(hào)變量進(jìn)行解題呢?顯然,選擇不同符號(hào)變量作為自變量,方程的解變量進(jìn)行解題呢?顯然,選擇不同符號(hào)變量作為自變量,方程的解是不同的。是不同的。MATLAB 專門設(shè)計(jì)了一套確定符號(hào)自變量的規(guī)則。專門設(shè)計(jì)了一套確定符號(hào)自變量的規(guī)則。 在專門指定變量名的符號(hào)運(yùn)算中,解題一定圍繞指定變量進(jìn)行。在專門指定變量名的符號(hào)運(yùn)算中,解題一定圍繞指定變

25、量進(jìn)行。 在沒(méi)有專門指定變量名的符號(hào)運(yùn)算中,將按照以下原則選擇一個(gè)在沒(méi)有專門指定變量名的符號(hào)運(yùn)算中,將按照以下原則選擇一個(gè)自變量:自變量: (1)小寫(xiě)字母小寫(xiě)字母i和和j不能作為自變量(它們通常用于表示不能作為自變量(它們通常用于表示 )。)。 (2)x 是首選的自變量;如果沒(méi)有是首選的自變量;如果沒(méi)有x,則與,則與x的的ASCII碼值之差的碼值之差的絕對(duì)值小的字母優(yōu)先;差的絕對(duì)值相同時(shí),絕對(duì)值小的字母優(yōu)先;差的絕對(duì)值相同時(shí),ASCII碼值大的字母優(yōu)碼值大的字母優(yōu)先(即排在先(即排在x后面的字母優(yōu)先)。后面的字母優(yōu)先)。 17.3.1 符號(hào)表達(dá)式中自變量的確定符號(hào)表達(dá)式中自變量的確定 MATL

26、AB提供了提供了findsym指令,可以實(shí)現(xiàn)對(duì)表達(dá)式中所有自變量指令,可以實(shí)現(xiàn)對(duì)表達(dá)式中所有自變量或指定數(shù)目的獨(dú)立自變量的自動(dòng)認(rèn)定。其格式為或指定數(shù)目的獨(dú)立自變量的自動(dòng)認(rèn)定。其格式為 findsym(EXPR) 確定表達(dá)式確定表達(dá)式EXPR中所有符號(hào)自變量中所有符號(hào)自變量 findsym(EXPR,N) 確認(rèn)表達(dá)式確認(rèn)表達(dá)式EXPR中距離中距離x最近的最近的N個(gè)個(gè) 符號(hào)自變量符號(hào)自變量【說(shuō)明說(shuō)明】 EXPR可以是符號(hào)數(shù)組。此時(shí),對(duì)自變量的確認(rèn)是針對(duì)整個(gè)數(shù)組可以是符號(hào)數(shù)組。此時(shí),對(duì)自變量的確認(rèn)是針對(duì)整個(gè)數(shù)組進(jìn)行的。進(jìn)行的。 自動(dòng)識(shí)別符號(hào)變量時(shí),字母的優(yōu)先次序?yàn)樽詣?dòng)識(shí)別符號(hào)變量時(shí),字母的優(yōu)先次序?yàn)?/p>

27、x,y,w,z,v等。等。 【例例7.8】 對(duì)獨(dú)立符號(hào)自變量的自動(dòng)辨認(rèn)。對(duì)獨(dú)立符號(hào)自變量的自動(dòng)辨認(rèn)。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_8.m如下:如下:% exam7_8clearsyms a b s t v w x X Y % 定義符號(hào)變量定義符號(hào)變量k=sym(pi+sin(5); % 符號(hào)常量符號(hào)常量z=sym(c*sqrt(delta)+y*sin(theta); % 直接定義符號(hào)表達(dá)式直接定義符號(hào)表達(dá)式EXPR=a*z*X+k*x*Y+v2+v*t+w*s; % 構(gòu)成符號(hào)表達(dá)式構(gòu)成符號(hào)表達(dá)式f_free=findsym(EXPR) % 找出找出EXPR中的全部符號(hào)自變量中的全部

28、符號(hào)自變量(除符號(hào)常數(shù)除符號(hào)常數(shù)k) % 表達(dá)式外,所有獨(dú)立符號(hào)變量都被列出表達(dá)式外,所有獨(dú)立符號(hào)變量都被列出)f_1=findsym(EXPR,1) % 在在EXPR中確定中確定1個(gè)自變量個(gè)自變量f_2=findsym(EXPR,2) % 在在EXPR中確定中確定2個(gè)自變量個(gè)自變量f_5=findsym(EXPR,5) % 在在EXPR中確定中確定5個(gè)自變量個(gè)自變量f_6=findsym(EXPR,6) % 在在EXPR中確定中確定6個(gè)自變量個(gè)自變量7.3.1 符號(hào)表達(dá)式中自變量的確定符號(hào)表達(dá)式中自變量的確定 exam7_8.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果7.3.1 符號(hào)表達(dá)式中自變量的確定符號(hào)表達(dá)

29、式中自變量的確定 【說(shuō)明說(shuō)明】 findsym指令所確定的是表達(dá)式中的指令所確定的是表達(dá)式中的“自由自由”、“獨(dú)立獨(dú)立”的符號(hào)的符號(hào)變量。由于變量。由于k不是不是“自由自由”的,的,z不是不是“獨(dú)立獨(dú)立”的,所以都不被該指的,所以都不被該指令認(rèn)作自變量。令認(rèn)作自變量。 雖然雖然w與與x的的ASCII碼值之差的絕對(duì)值和碼值之差的絕對(duì)值和y與與x的的ASCII碼值之差的碼值之差的絕對(duì)值是一樣的,但由于絕對(duì)值是一樣的,但由于y的的ASCII碼值較大,故碼值較大,故f_2 =x,y。 findsym指令首先是對(duì)符號(hào)變量的第指令首先是對(duì)符號(hào)變量的第1個(gè)字母進(jìn)行比較,然后再比個(gè)字母進(jìn)行比較,然后再比較其余

30、的字母,這就是較其余的字母,這就是f_5=x,y,w,v,t,而,而f_6=x,y,w,v,t,theta的原因。的原因。 大寫(xiě)字母的大寫(xiě)字母的ASCII碼比相同小寫(xiě)字母的大碼比相同小寫(xiě)字母的大32,所以排在后面。,所以排在后面。7.3.1 符號(hào)表達(dá)式中自變量的確定符號(hào)表達(dá)式中自變量的確定 % exam7_9clearsyms a b t u v w zA=a+b*w,cos(t)+u;w*exp(-t),log(z)+sin(v)% 創(chuàng)建衍生符號(hào)數(shù)組創(chuàng)建衍生符號(hào)數(shù)組findsym(A,1) % 確定符號(hào)數(shù)組確定符號(hào)數(shù)組A中的自變中的自變量量 【例例7.9】 findsym指令確定自變量是對(duì)整

31、個(gè)數(shù)組進(jìn)行的。指令確定自變量是對(duì)整個(gè)數(shù)組進(jìn)行的。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_9.m如下:如下:7.3.1 符號(hào)表達(dá)式中自變量的確定符號(hào)表達(dá)式中自變量的確定 exam7_9.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果7.3.1 符號(hào)表達(dá)式中自變量的確定符號(hào)表達(dá)式中自變量的確定 7.3 符號(hào)表達(dá)式的基本操作符號(hào)表達(dá)式的基本操作 7.3.2 符號(hào)表達(dá)式的化簡(jiǎn)符號(hào)表達(dá)式的化簡(jiǎn) 符號(hào)數(shù)學(xué)工具箱中有許多符號(hào)表達(dá)式的操作指令,其中最常用的符號(hào)數(shù)學(xué)工具箱中有許多符號(hào)表達(dá)式的操作指令,其中最常用的為為 collect(EXPR, v) 用指定的符號(hào)對(duì)象用指定的符號(hào)對(duì)象v合并合并EXPR表達(dá)式中表達(dá)式中的同冪次項(xiàng)系數(shù)的同

32、冪次項(xiàng)系數(shù) expand(EXPR) 對(duì)對(duì)EXPR表達(dá)式進(jìn)行多項(xiàng)式、三角函表達(dá)式進(jìn)行多項(xiàng)式、三角函數(shù)、指數(shù)、對(duì)數(shù)函數(shù)等展開(kāi)數(shù)、指數(shù)、對(duì)數(shù)函數(shù)等展開(kāi) factor(EXPR) 對(duì)對(duì)EXPR表達(dá)式(或正整數(shù))進(jìn)行因式表達(dá)式(或正整數(shù))進(jìn)行因式 (或因子)分解(或因子)分解 horner(EXPR) 把多項(xiàng)式把多項(xiàng)式EXPR分解成嵌套形式分解成嵌套形式 n,d=numden(EXPR) 提取提取EXPR表達(dá)式的最小分母公因式表達(dá)式的最小分母公因式d和相應(yīng)的分子多項(xiàng)式和相應(yīng)的分子多項(xiàng)式n7.3.2 符號(hào)表達(dá)式的化簡(jiǎn)符號(hào)表達(dá)式的化簡(jiǎn) simplify(EXPR) 運(yùn)用多種恒等式轉(zhuǎn)換對(duì)運(yùn)用多種恒等式轉(zhuǎn)換對(duì)

33、EXPR表達(dá)式進(jìn)表達(dá)式進(jìn) 行綜合簡(jiǎn)化行綜合簡(jiǎn)化 simple(EXPR) 運(yùn)用包括運(yùn)用包括simplify在內(nèi)的各種指令把在內(nèi)的各種指令把 EXPR轉(zhuǎn)換成最簡(jiǎn)短形式轉(zhuǎn)換成最簡(jiǎn)短形式【說(shuō)明說(shuō)明】 EXPR可以是符號(hào)表達(dá)式或數(shù)組表達(dá)式。在數(shù)組情況下,這些指可以是符號(hào)表達(dá)式或數(shù)組表達(dá)式。在數(shù)組情況下,這些指令將對(duì)數(shù)組中的元素逐個(gè)進(jìn)行操作。令將對(duì)數(shù)組中的元素逐個(gè)進(jìn)行操作。 【例例7.10】 將表達(dá)式將表達(dá)式 分別按自變量分別按自變量x和和y進(jìn)行進(jìn)行同冪次項(xiàng)系數(shù)合并。同冪次項(xiàng)系數(shù)合并。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_10.m如下:如下:yxxxf)16)8(7.3.2 符號(hào)表達(dá)式的化簡(jiǎn)符號(hào)表達(dá)式

34、的化簡(jiǎn) % exam7_10clearsyms x yf=x*(x*(x+8)+16)*y; % 按默認(rèn)的自變量按默認(rèn)的自變量x合并同類項(xiàng)合并同類項(xiàng)f1=collect(f)% 按指定的自變量按指定的自變量y合并同類項(xiàng)合并同類項(xiàng)f2=collect(f,y) exam7_10.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果7.3.2 符號(hào)表達(dá)式的化簡(jiǎn)符號(hào)表達(dá)式的化簡(jiǎn) 【例例7.11】 展開(kāi)表達(dá)式展開(kāi)表達(dá)式 和和 。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_11.m如下:如下:6)2( xf)sin(yxg% exam7_11clearsyms x yf=(x+2)6; g=sin(x-y);f1=expand(f),

35、g1=expand(g) exam7_11.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果 【例例7.12】 分別對(duì)表達(dá)式分別對(duì)表達(dá)式 和大整數(shù)和大整數(shù)12345678901234567890進(jìn)行因式和因子分解。進(jìn)行因式和因子分解。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_12.m如下:如下: 18xf7.3.2 符號(hào)表達(dá)式的化簡(jiǎn)符號(hào)表達(dá)式的化簡(jiǎn) % exam7_12clearsyms x f=factor(x8-1)factor(sym(12345678901234567890) exam7_12.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果7.3.2 符號(hào)表達(dá)式的化簡(jiǎn)符號(hào)表達(dá)式的化簡(jiǎn) % exam7_13clearf=sym(x4+5*

36、x3+6*x2+7*x+8);horner(f) exam7_13.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果 【例例7.13】將表達(dá)式將表達(dá)式 進(jìn)行嵌套形式重寫(xiě)。進(jìn)行嵌套形式重寫(xiě)。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_13.m如下:如下: 8765234xxxxf7.3.2 符號(hào)表達(dá)式的化簡(jiǎn)符號(hào)表達(dá)式的化簡(jiǎn) % exam7_14clearf=sym(x/y+y/x);n,d=numden(f) exam7_14.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果 【例例7.14】對(duì)表達(dá)式對(duì)表達(dá)式 進(jìn)行通分。進(jìn)行通分。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_14.m如下:如下: xyyxf【說(shuō)明說(shuō)明】 所得結(jié)果表明,所得結(jié)果表明, 。 x

37、yyxxyyxf227.3.2 符號(hào)表達(dá)式的化簡(jiǎn)符號(hào)表達(dá)式的化簡(jiǎn) % exam7_15clearsyms yf=sin(y)2+cos(y)2;simplify(f) exam7_15.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果【說(shuō)明說(shuō)明】 如果將本例中的如果將本例中的simplify指令換成指令換成simple指令,所得結(jié)果是什么?指令,所得結(jié)果是什么? 【例例7.15】簡(jiǎn)化簡(jiǎn)化 。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_15.m如下:如下: )(cos)(sin22yyf7.3 符號(hào)表達(dá)式的基本操作符號(hào)表達(dá)式的基本操作 7.3.3 符號(hào)表達(dá)式的替換符號(hào)表達(dá)式的替換 MATLAB提供了兩個(gè)符號(hào)表達(dá)式的替換函數(shù),

38、用于簡(jiǎn)化表達(dá)式提供了兩個(gè)符號(hào)表達(dá)式的替換函數(shù),用于簡(jiǎn)化表達(dá)式的輸出形式。它們常用的調(diào)用格式為的輸出形式。它們常用的調(diào)用格式為 RS, ssub=subexpr(S,ssub) 用變量用變量ssub置換置換S中重復(fù)出現(xiàn)中重復(fù)出現(xiàn) 的字符串,重寫(xiě)的字符串,重寫(xiě)S為為RS RES=subs(ES,old,new) 用用new替換替換ES中的中的old后產(chǎn)生后產(chǎn)生RES【說(shuō)明說(shuō)明】 subexpr函數(shù)對(duì)字符串(亦稱為是子表達(dá)式)是自動(dòng)尋找的,只函數(shù)對(duì)字符串(亦稱為是子表達(dá)式)是自動(dòng)尋找的,只有比較長(zhǎng)的字符串才被置換。對(duì)于比較短的字符串,即使重復(fù)出現(xiàn)有比較長(zhǎng)的字符串才被置換。對(duì)于比較短的字符串,即使重復(fù)

39、出現(xiàn)多次,也不被置換。多次,也不被置換。 如果如果subs函數(shù)中的函數(shù)中的new是數(shù)值形式,顯示的結(jié)果雖然是數(shù)值,但是數(shù)值形式,顯示的結(jié)果雖然是數(shù)值,但它實(shí)際上仍然是符號(hào)變量。它實(shí)際上仍然是符號(hào)變量。7.3.3 符號(hào)表達(dá)式的替換符號(hào)表達(dá)式的替換 【例例7.16】用用subexpr函數(shù)使矩陣函數(shù)使矩陣 的逆的表達(dá)式簡(jiǎn)的逆的表達(dá)式簡(jiǎn)潔易讀。潔易讀。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_16.m如下:如下: 333231232221131211aaaaaaaaa% exam7_16clearsyms xA=sym(a11,a12,a13; a21,a22,a23; a31,a32,a33 );S=

40、inv(A); % 計(jì)算計(jì)算A的逆陣的逆陣RS, x=subexpr(S,x) % 用用x替換其中的子表達(dá)式替換其中的子表達(dá)式7.3.3 符號(hào)表達(dá)式的替換符號(hào)表達(dá)式的替換 exam7_16.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果【說(shuō)明說(shuō)明】 本例結(jié)果表明,本例結(jié)果表明,如果不進(jìn)行符號(hào)如果不進(jìn)行符號(hào)替換,則矩陣表替換,則矩陣表達(dá)式的表示將是達(dá)式的表示將是十分繁瑣的。十分繁瑣的。 7.3.3 符號(hào)表達(dá)式的替換符號(hào)表達(dá)式的替換 【例例7.17】分別用新變量替換表達(dá)式分別用新變量替換表達(dá)式x+2y和和sin(x)+cos(y)中的變量。中的變量。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_17.m如下:如下: % exa

41、m7_17clearsyms x yf1=subs(x+2*y, x, 5) % x+2y的的x用用5替換替換% x和和y分別用分別用alpha和和beta替換替換f2=subs(sin(x)+cos(y),x,y,sym(alpha),sym(beta)7.3.3 符號(hào)表達(dá)式的替換符號(hào)表達(dá)式的替換 exam7_17.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果【說(shuō)明說(shuō)明】 f1和和f2仍然是符號(hào)對(duì)象。仍然是符號(hào)對(duì)象。 注意注意f2的替換格式。的替換格式。7.4 符號(hào)微積分運(yùn)算符號(hào)微積分運(yùn)算 第第7章章 符號(hào)運(yùn)算簡(jiǎn)介符號(hào)運(yùn)算簡(jiǎn)介 7.4.1 極限和導(dǎo)數(shù)的符號(hào)運(yùn)算極限和導(dǎo)數(shù)的符號(hào)運(yùn)算 MATLAB提供的計(jì)算符號(hào)表達(dá)式

42、的極限和導(dǎo)數(shù)的指令為提供的計(jì)算符號(hào)表達(dá)式的極限和導(dǎo)數(shù)的指令為 limit(f,v,a) 求求 limit(f,v,a,right) 求求 limit(f,v,a,left) 求求 dfdvn=diff(f,v,n) 求求 fjac=jacobian(f,v) 求多元向量函數(shù)的求多元向量函數(shù)的Jacobian矩陣矩陣 r=tarlor(f,n,v,a) 求在求在v=a處的處的(n-1)階階 )(limvfav)(limvfav)(limvfavnnvvfd)(d10)()(!)(nkkkaxkaf7.4.1 極限和導(dǎo)數(shù)的符號(hào)運(yùn)算極限和導(dǎo)數(shù)的符號(hào)運(yùn)算 【說(shuō)明說(shuō)明】 f是數(shù)組時(shí),求極限和求導(dǎo)操作對(duì)元

43、素逐個(gè)進(jìn)行,但自變量定義在是數(shù)組時(shí),求極限和求導(dǎo)操作對(duì)元素逐個(gè)進(jìn)行,但自變量定義在整個(gè)數(shù)組上。整個(gè)數(shù)組上。 v缺省時(shí),自變量會(huì)由缺省時(shí),自變量會(huì)由findsym確認(rèn);確認(rèn);n缺省時(shí),默認(rèn)為缺省時(shí),默認(rèn)為n=1。 注意:注意:在數(shù)值運(yùn)算中,指令在數(shù)值運(yùn)算中,指令diff是用來(lái)求差值的。是用來(lái)求差值的。 【例例7.18】 分別計(jì)算分別計(jì)算 , , , 和和 。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_18.m如下:如下:xx1lim0 xx1lim0 xx1lim0 xxx)sin(lim0 xxxa)1 (lim7.4.1 極限和導(dǎo)數(shù)的符號(hào)運(yùn)算極限和導(dǎo)數(shù)的符號(hào)運(yùn)算 % exam7_18clears

44、yms a x f_left=limit(1/x,x,0,left); f_right=limit(1/x,x,0,right);f_limit=limit(1/x,x,0); Limit_f=f_left, f_right, f_limitlimit(sin(x)/x,x,0), limit(1+a/x)x,x,inf) exam7_18.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果【說(shuō)明說(shuō)明】 由于當(dāng)時(shí)由于當(dāng)時(shí) , 的左右極限不相等,的左右極限不相等,在該點(diǎn)的極限不存在,表示為在該點(diǎn)的極限不存在,表示為NaN。0 xx/17.4.1 極限和導(dǎo)數(shù)的符號(hào)運(yùn)算極限和導(dǎo)數(shù)的符號(hào)運(yùn)算 【例例7.19】已知函數(shù)數(shù)組已知函數(shù)

45、數(shù)組 ,求,求 , , 。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_19.m如下:如下:)ln()sin(2xyyxbxafxddf22ddyfyxddd2f% exam7_19clearsyms a b x yf=a,b*x2;x*sin(y), log(x*y);df=diff(f) % 求求f對(duì)對(duì)x的導(dǎo)數(shù)的導(dǎo)數(shù)dfdy2=diff(f,y,2) % 求求f對(duì)對(duì)y的二階導(dǎo)數(shù)的二階導(dǎo)數(shù)dfdxdy=diff(diff(f,x),y) % 求求f對(duì)對(duì)x和和y的二階混合導(dǎo)數(shù)的二階混合導(dǎo)數(shù)7.4.1 極限和導(dǎo)數(shù)的符號(hào)運(yùn)算極限和導(dǎo)數(shù)的符號(hào)運(yùn)算 exam7_19.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果7.4.1 極限和

46、導(dǎo)數(shù)的符號(hào)運(yùn)算極限和導(dǎo)數(shù)的符號(hào)運(yùn)算 % exam7_20clearsyms x1 x2;f=x1*exp(x2); x2; sin(x1)+cos(x2);v=x1,x2; fjac=jacobian(f,v) 【例例7.20】已知函數(shù)數(shù)組已知函數(shù)數(shù)組 的的Jacobian矩陣矩陣 。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_20.m如下:如下:)cos()sin(),(2121212xxxexxxxf231322122111xfxfxfxfxfxf7.4.1 極限和導(dǎo)數(shù)的符號(hào)運(yùn)算極限和導(dǎo)數(shù)的符號(hào)運(yùn)算 exam7_20.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果7.4.1 極限和導(dǎo)數(shù)的符號(hào)運(yùn)算極限和導(dǎo)數(shù)的符號(hào)運(yùn)算

47、% exam7_21clearsyms xr=taylor(x*exp(x),9,x,0) % 忽略忽略9階及階及9階以上小量的展開(kāi)階以上小量的展開(kāi) 【例例7.21】求求 在在 處展開(kāi)的處展開(kāi)的8階麥克勞林級(jí)數(shù)。階麥克勞林級(jí)數(shù)。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_21.m如下:如下:xxexf)(0 x exam7_21.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果7.4 符號(hào)微積分運(yùn)算符號(hào)微積分運(yùn)算 7.4.2 序列序列/級(jí)數(shù)的符號(hào)求和運(yùn)算級(jí)數(shù)的符號(hào)求和運(yùn)算 MATLAB提供了求和指令解決數(shù)學(xué)上的通式求和,格式為提供了求和指令解決數(shù)學(xué)上的通式求和,格式為 s=symsum(f,v,a,b) 求通式求通式f在指

48、定變量在指定變量v取遍取遍a,b中所有中所有 整數(shù)時(shí)的和整數(shù)時(shí)的和【說(shuō)明說(shuō)明】 f f是數(shù)組是數(shù)組時(shí),求和對(duì)元素逐個(gè)進(jìn)行,但自變量定義在整個(gè)數(shù)組上。時(shí),求和對(duì)元素逐個(gè)進(jìn)行,但自變量定義在整個(gè)數(shù)組上。 v缺省時(shí),缺省時(shí),f中的自變量會(huì)由中的自變量會(huì)由findsym指令自動(dòng)辨認(rèn);指令自動(dòng)辨認(rèn);b可以取有限可以取有限整數(shù),也可以是無(wú)窮大。整數(shù),也可以是無(wú)窮大。 a,b可以同時(shí)缺省,此時(shí)默認(rèn)求和的自變量區(qū)間為可以同時(shí)缺省,此時(shí)默認(rèn)求和的自變量區(qū)間為0,v-1。7.4.2 序列序列/級(jí)數(shù)的符號(hào)求和運(yùn)算級(jí)數(shù)的符號(hào)求和運(yùn)算% exam7_22clearsyms k x;f1=x, k2;f2=1/(2*k-

49、1)2,(-1)k/k;s1=simple(symsum(f1)% 求和運(yùn)算后化簡(jiǎn)求和運(yùn)算后化簡(jiǎn)s2=simple(symsum(f2,1,inf) 【例例7.22】求求 和和 。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_22.m如下:如下:102,xtkx12)1(,)12(1kkkkexam7_22.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果7.4.2 序列序列/級(jí)數(shù)的符號(hào)求和運(yùn)算級(jí)數(shù)的符號(hào)求和運(yùn)算【說(shuō)明說(shuō)明】 通式中的自變量只取整數(shù)值。通式中的自變量只取整數(shù)值。 求和指令中的求和指令中的f可以是符號(hào)數(shù)組,可以是符號(hào)數(shù)組,此時(shí)求和操作將對(duì)數(shù)組中的此時(shí)求和操作將對(duì)數(shù)組中的“元素元素通式通式”逐個(gè)進(jìn)行,但數(shù)組的自變

50、量逐個(gè)進(jìn)行,但數(shù)組的自變量及其取值區(qū)間對(duì)各及其取值區(qū)間對(duì)各“元素通式元素通式”是是相同的。相同的。7.4 符號(hào)微積分運(yùn)算符號(hào)微積分運(yùn)算 7.4.3 符號(hào)積分運(yùn)算符號(hào)積分運(yùn)算 積分分為不定積分、定積分、廣義積分和重積分等幾種。一般而積分分為不定積分、定積分、廣義積分和重積分等幾種。一般而言,積分比微分更難求取。與數(shù)值積分相比,符號(hào)積分指令簡(jiǎn)單,言,積分比微分更難求取。與數(shù)值積分相比,符號(hào)積分指令簡(jiǎn)單,適應(yīng)性強(qiáng),但可能占有很長(zhǎng)的機(jī)器時(shí)間。當(dāng)積分上、下限不是數(shù)值適應(yīng)性強(qiáng),但可能占有很長(zhǎng)的機(jī)器時(shí)間。當(dāng)積分上、下限不是數(shù)值時(shí),符號(hào)積分可能給出相當(dāng)冗長(zhǎng)而生疏的時(shí),符號(hào)積分可能給出相當(dāng)冗長(zhǎng)而生疏的“封閉型封

51、閉型”的符號(hào)表達(dá)式,的符號(hào)表達(dá)式,也可能給不出也可能給不出“封閉型封閉型”的解析解。此時(shí),如果把積分上、下限用的解析解。此時(shí),如果把積分上、下限用具體數(shù)值替代,符號(hào)積分將能給出具有任意精度的定積分值。具體數(shù)值替代,符號(hào)積分將能給出具有任意精度的定積分值。MATLAB提供的積分指令的格式為提供的積分指令的格式為 intf=int(f,v) 給出給出f對(duì)指定變量對(duì)指定變量v的(不帶積分常數(shù)的)的(不帶積分常數(shù)的) 不定積分不定積分 intf=int(f,v,a,b) 給出給出f對(duì)指定變量對(duì)指定變量v的定積分的定積分7.4.3 符號(hào)積分運(yùn)算符號(hào)積分運(yùn)算【說(shuō)明說(shuō)明】 與與symsum和和diff指令相

52、同,當(dāng)指令相同,當(dāng)f是數(shù)組時(shí),積分將對(duì)元素逐個(gè)進(jìn)是數(shù)組時(shí),積分將對(duì)元素逐個(gè)進(jìn)行。行。 v缺省時(shí),積分對(duì)缺省時(shí),積分對(duì)findsym指令確認(rèn)的自變量進(jìn)行。指令確認(rèn)的自變量進(jìn)行。 a,b分別是積分的上、下限,允許它們?nèi)∪魏沃祷蚍?hào)表達(dá)式。分別是積分的上、下限,允許它們?nèi)∪魏沃祷蚍?hào)表達(dá)式。 【例例7.23】 求求 。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_23.m如下:如下:xexxd2% exam7_23clearsyms xf=(2x)*exp(x)s=int(f,x)% 求不定積分求不定積分7.4.3 符號(hào)積分運(yùn)算符號(hào)積分運(yùn)算exam7_23.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果【說(shuō)明說(shuō)明】 為了使完成積

53、分運(yùn)算所得的表達(dá)為了使完成積分運(yùn)算所得的表達(dá)式形式簡(jiǎn)潔明了,可能要多次用到式形式簡(jiǎn)潔明了,可能要多次用到simple指令。對(duì)于本例而言,將指令。對(duì)于本例而言,將最 后 一 條 語(yǔ) 句 改 成 :最 后 一 條 語(yǔ) 句 改 成 :s=simple(int(f,x)更好。更好。7.4.3 符號(hào)積分運(yùn)算符號(hào)積分運(yùn)算% exam7_24clearsyms a b x yf=a*x,b*y;1/x,cos(x);disp(The integral of f is);disp(int(f) 【例例7.24】 求求 。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_24.m如下:如下:xxxbyaxd)cos(1e

54、xam7_24.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果7.4.3 符號(hào)積分運(yùn)算符號(hào)積分運(yùn)算% exam7_25clearsyms x y zf=x2+y2+z2f_int1=int(f,z,sqrt(x*y),x2*y) % 第第1次積分(對(duì)次積分(對(duì)z)f_int2=int(f_int1,y,sqrt(x),x2) % 第第2次積分(對(duì)次積分(對(duì)y)f_int3=int(f_int2,x,1,2) % 第第3次積分(對(duì)次積分(對(duì)x)F_int3=vpa(f_int3) % 積分結(jié)果用積分結(jié)果用32位數(shù)字表示位數(shù)字表示 【例例7.25】 求積分求積分 。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_25.m如下:如

55、下: 2 1 22222ddd)(xxyxxyxyzzyx7.4.3 符號(hào)積分運(yùn)算符號(hào)積分運(yùn)算exam7_25.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果f =x2+y2+z2f_int1 =x2*(x2*y-(x*y)(1/2)+y2*(x2*y-(x*y)(1/2)+1/3*x6*y3-1/3*(x*y)(3/2)f_int2 =1/420*(56*(x(3/2)(5/2)*x2+120*(x(3/2)(7/2)-210*x8+280*x4*(x(3/2)(3/2)+175*x11-105*x7-56*(x3)(5/2)*x2-120*(x3)(7/2)-280*x4*(x3)(3/2)+35*x17+105

56、*x13)/x3f_int3 =1610027357/6563700-6072064/348075*2(1/2)+14912/4641*2(1/4)+64/225*2(3/4)F_int3 =224.921535733311431597907100328047.4.3 符號(hào)積分運(yùn)算符號(hào)積分運(yùn)算【說(shuō)明說(shuō)明】 由于無(wú)法在一幅由于無(wú)法在一幅MATLAB指令窗中將指令窗中將f_int2 的結(jié)果顯示出來(lái),故的結(jié)果顯示出來(lái),故只能如此給出運(yùn)算結(jié)果。只能如此給出運(yùn)算結(jié)果。 對(duì)于內(nèi)積分上下限為函數(shù)的多重積分,若采用數(shù)值計(jì)算方法求取,對(duì)于內(nèi)積分上下限為函數(shù)的多重積分,若采用數(shù)值計(jì)算方法求取,編程將很不輕松。編程

57、將很不輕松。7.5 符號(hào)方程的求解符號(hào)方程的求解 第第7章章 符號(hào)運(yùn)算簡(jiǎn)介符號(hào)運(yùn)算簡(jiǎn)介 7.5.1 符號(hào)代數(shù)方程的求解符號(hào)代數(shù)方程的求解 一般代數(shù)方程包括線性(一般代數(shù)方程包括線性(Linear)方程、非線性(方程、非線性(Nonlinear)方)方程和超越(程和超越(Transcedental)方程等,求解函數(shù)是)方程等,求解函數(shù)是solve。當(dāng)方程不。當(dāng)方程不存在符號(hào)解而且無(wú)其它自由參數(shù)時(shí),存在符號(hào)解而且無(wú)其它自由參數(shù)時(shí),solve函數(shù)將給出數(shù)值解。該函數(shù)將給出數(shù)值解。該函數(shù)最常用的調(diào)用格式為函數(shù)最常用的調(diào)用格式為 S=solve(eq,v) 求方程關(guān)于指定變量的解求方程關(guān)于指定變量的解

58、S=solve(eq1,eq2,eqn,v1,v2,vn) 求方程組關(guān)于指求方程組關(guān)于指 定變量的解定變量的解7.5.1 符號(hào)代數(shù)方程的求解符號(hào)代數(shù)方程的求解【說(shuō)明說(shuō)明】 在第在第1種種格式中,格式中,eq可以是含等號(hào)的符號(hào)表達(dá)式的方程,也可以可以是含等號(hào)的符號(hào)表達(dá)式的方程,也可以是不含等號(hào)的符號(hào)表達(dá)式,但指的仍然是令是不含等號(hào)的符號(hào)表達(dá)式,但指的仍然是令eq=0的方程;的方程;v是表示是表示求解變量名的字符串,當(dāng)它省略時(shí),求解對(duì)求解變量名的字符串,當(dāng)它省略時(shí),求解對(duì)findsym指令確認(rèn)的變指令確認(rèn)的變量進(jìn)行。量進(jìn)行。 第第2種格式中輸入宗量的含義與第種格式中輸入宗量的含義與第1種格式類似。

59、種格式類似。 在第在第2種格式中,輸出宗量種格式中,輸出宗量S是結(jié)構(gòu)數(shù)組。如果要顯示求解結(jié)果,是結(jié)構(gòu)數(shù)組。如果要顯示求解結(jié)果,必須采用必須采用S.v1,S.v2,S.vn的提取方式。的提取方式。 第第2種格式也可以寫(xiě)成:種格式也可以寫(xiě)成: S=solve(eq1,eq2,eqn,v1,v2,vn) 在得不到在得不到“封閉型解析解封閉型解析解”時(shí),又不存在其它不確定參數(shù),則給時(shí),又不存在其它不確定參數(shù),則給出數(shù)值解。出數(shù)值解。 7.5.1 符號(hào)代數(shù)方程的求解符號(hào)代數(shù)方程的求解 【例例7.26】求方程求方程 , 以及以及 的解。的解。 編寫(xiě)編寫(xiě)M腳本文件腳本文件exam7_26.m如下:如下:02

60、cbxax2)2(xx01)2cos()sin(xx% exam7_26clearsyms a b c xs1=solve(a*x2+b*x+c) % 無(wú)等號(hào),默認(rèn)求解變量為無(wú)等號(hào),默認(rèn)求解變量為xs2=solve(x+2)x=2,x) % 有等號(hào),指定求解變量為有等號(hào),指定求解變量為xs3=solve(sin(x)+cos(2*x)-1,x) % 無(wú)等號(hào),指定求解變量為無(wú)等號(hào),指定求解變量為x7.5.1 符號(hào)代數(shù)方程的求解符號(hào)代數(shù)方程的求解exam7_26.m的運(yùn)行結(jié)果的運(yùn)行結(jié)果【說(shuō)明說(shuō)明】 由于三角函數(shù)是周期函數(shù),只能得由于三角函數(shù)是周期函數(shù),只能得到在到在x=0附近的有限幾個(gè)解。附近的有

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論