MATLAB上機實驗實驗報告.doc
《MATLAB上機實驗實驗報告.doc》由會員分享,可在線閱讀,更多相關《MATLAB上機實驗實驗報告.doc(68頁珍藏版)》請在裝配圖網上搜索。
MATLAB上機實驗一 一、實驗目的 初步熟悉 MATLAB 工作環(huán)境,熟悉命令窗口,學會使用幫助窗口查找?guī)椭畔ⅰ? 命令窗口 二、實驗內容 (1) 熟悉MATLAB 平臺的工作環(huán)境。 (2) 熟悉MATLAB 的5 個工作窗口。 (3) MATLAB 的優(yōu)先搜索順序。 三、實驗步驟 1. 熟悉MATLAB 的5 個基本窗口 ① Command Window (命令窗口) ② Workspace (工作空間窗口) ③ Command History (命令歷史記錄窗口) ④ Current Directory (當前目錄窗口) ⑤ Help Window (幫助窗口) (1) 命令窗口(Command Window)。 在命令窗口中依次輸入以下命令: >>x=1 >> y=[1 2 3 4 5 6 7 8 9]; >> z1=[1:10],z2=[1:2:5]; >> w=linspace(1,10,10); >> t1=ones(3),t2=ones(1,3),t3=ones(3,1) >> t4=ones(3),t4=eye(4) x =1 z1 = 1 2 3 4 5 6 7 8 9 10 t1 = 1 1 1 1 1 1 1 1 t2 = 1 1 1 t3 = 1 1 1 t4 = 1 1 1 1 1 1 1 1 1 t4 = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 思考題:① 變量如何聲明,變量名須遵守什么規(guī)則、是否區(qū)分大小寫。 答:(1)變量聲明 1.局部變量 每個函數(shù)都有自己的局部變量,這些變量只能在定義它的函數(shù)內部使用。當函數(shù)運行時,局部變量保存在函數(shù)的工作空間中,一旦函數(shù)退出,這些局部變量將不復存在。 腳本(沒有輸入輸出參數(shù),由一系列MATLAB命令組成的M文件)沒有單獨的工作空間,只能共享調用者的工作空間。當從命令行調用,腳本變量存在基本工作空間中;當從函數(shù)調用,腳本變量存在函數(shù)空間中。 2.全局變量 在函數(shù)或基本工作空間內,用global聲明的變量為全局變量。例如聲明a為全局變量: >>global a 聲明了全局變量的函數(shù)或基本工作空間,共享該全局變量,都可以給它曲賦值。 如果函數(shù)的子函數(shù)也要使用全局變量,也必須用global聲明。 3.永久變量 永久變量用persistent聲明,只能在M文件函數(shù)中定義和使用,只允許聲明它的函數(shù)存取。當聲明它的函數(shù)退出時,MATLAB不會從內存中清除它,例如聲明a為永久變量: >>persistent a (2)變量命名規(guī)則如下: 始于字母,由字母、數(shù)字或下劃線組成; 區(qū)分大小寫; 可任意長,但使用前N個字符。N與硬件有關,由函數(shù)namelengthmax返回,一般N=63; 不能使用關鍵字作為變量名(關鍵字在后面給出); 避免使用函數(shù)名作為變量名。 如果變量采用函數(shù)名,該函數(shù)失效。 (3)區(qū)分大小寫 ② 試說明分號、逗號、冒號的用法。 答:分號:加上分號“;”其作用是將計算機結果存入內存,但不顯示在屏幕上,反之,語句結尾若不加“;”,則表示在語句執(zhí)行后,在將計算結果存入內存的同時,還將運算結果顯示出來。 逗號:分割列表 冒號:從什么到什么,比如1:10意思是——1到10 ③ linspace( )稱為“線性等分”函數(shù),說明它的用法??墒褂胔elp命令,格式如下: >>help linspace ④ 說明函數(shù)ones( )、zeros( )、eye( ) 的用法。 答;(1)ones()函數(shù):全部元素都為1的常數(shù)矩陣; (2)zeros()函數(shù):全部元素都為0的矩陣; (3)eye()函數(shù):單位矩陣; (4)linspace()函數(shù):如a=linspace(n1,n2,n3),表示在線性空 間上,行矢量的值從n1到n2 (2) 工作空間窗口(Workspace)。 單擊工作空間窗口右上角的按鈕,將其從MATLAB 主界面分離出來。 ① 在工作空間查看各個變量,或在命令窗口用who, whos(注意大小寫)查看各個 變量。 ② 在工作空間雙擊變量,彈出Array Editor 窗口(數(shù)組編輯器窗口),即可修改變量。 ③ 使用save 命令把工作空間的全部變量保存為my_var.mat 文件。 >>save my_var.mat ④ 輸入下列命令: >>clear all %清除工作空間的所有變量 觀察工作空間的變量是否被清空。使用load 命令把剛才保存的變量載入工作空間。 >>load my_var.mat ⑤ 清除命令窗口命令: >>clc (3) 歷史命令窗口(Command History)。 打開歷史命令窗口,可以看到每次運行MATLAB 的時間和曾在命令窗口輸入過的命 令,練習以下幾種利用歷史命令窗口重復執(zhí)行輸入過的命令的方法。 ① 在歷史命令窗口中選中要重復執(zhí)行的一行或幾行命令,右擊,出現(xiàn)快捷菜單,選擇 Copy,然后再Paste 到命令窗口。 ② 在歷史命令窗口中雙擊要執(zhí)行的一行命令,或者選中要重復執(zhí)行的一行或幾行命令 后,用鼠標將其拖動到命令窗口中執(zhí)行。 ③ 在歷史命令窗口中選中要重復執(zhí)行的一行或幾行命令,右擊,出現(xiàn)快捷菜單,選擇 Evaluate Selection,也可以執(zhí)行。 ④ 或者在命令窗口使用方向鍵的上下鍵得到以前輸入的命令。例如,按方向鍵“↑” 一次,就重新將用戶最后一次輸入的命令調到MATLAB 提示符下。重復地按方向上鍵 “↑”,就會在每次按下的時候調用再往前一次輸入的命令。類似地,按方向鍵“↓”的時 候,就往后調用一次輸入的命令。按方向鍵“←”或者方向鍵“→”就會在提示符的命令 中左右移動光標,這樣用戶就可以用類似于在字處理軟件中編輯文本的方法編輯這些命令。 (4) 當前目錄命令窗口(Current Directory)。 MATLAB 的當前目錄即是系統(tǒng)默認的實施打開、裝載、編輯和保存文件等操作時的文 件夾。打開當前目錄窗口后,可以看到用“save”命令所保存的my_var.mat 文件是保存在 目錄C:\MATLAB6p5\work 下。 (5) 幫助窗口(Help Window)。 單擊工具欄的圖標,或選擇菜單View|Help,或選擇菜單Help|MATLAB Help 都能 啟動幫助窗口。 ① 通過Index 選項卡查找log2()函數(shù)的用法,在Search index for 欄中輸入需要查找的 詞匯“l(fā)og2”,在左下側就列出與之最匹配的詞匯條目,選擇“l(fā)og2[1]”,右側的窗口就 會顯示相應的內容。 ② 也可以通過Search 選項卡查找log2( )函數(shù)的用法。Search 選項卡與Index 選項卡 不同,Index 只在專用術語表中查找,而Search 搜索的是整個HTML 幫助文件。 2. MATLAB 的數(shù)值顯示格式設置 屏幕顯示方式有緊湊(Compact)和松散(Loose)兩種,其中Loose 為默認方式。 >>a=ones(1,30) >>format compact >>a 數(shù)字顯示格式有short、long、short e、long e 等,請參照教材的列表練習一遍。 >>format long >>pi >>format short >>pi >>format long >>pi >>format + >>pi >>-pi 3. 變量的搜索順序 在命令窗口中輸入以下指令: >>pi >>sin(pi); >>exist(pi) >>pi=0; >>exist(pi) >>pi >>clear pi >>exist(pi) >>pi 思考題:① 3 次執(zhí)行exist(pi)的結果一樣嗎?如果不一樣,試解釋為什么? 答:不一樣,pi原來是庫存函數(shù),但是如果被賦值則系統(tǒng)默認被賦予的值為pi后來的值,但是當執(zhí)行clear pi之后所賦的值被清空,因此pi的值又成為3.1416 ② 圓周率pi 是系統(tǒng)的默認常量,為什么會被改變?yōu)?? 答:pi原來是庫存函數(shù),但是如果被賦值則系統(tǒng)默認被賦予的值為pi后來的值,但是當執(zhí)行clear pi之后所賦的值被清空,因此pi的值又成為3.1416 實驗二 MATLAB語言基礎 1、 實驗目的 基本掌握MATLAB向量、矩陣、數(shù)組的生成及其基本運算(區(qū)分數(shù)組運算和矩陣運算)、常用的數(shù)學函數(shù)。交接字符串的操作。 2、 實驗內容 (1) 向量的生成和運算。 (2) 矩陣的創(chuàng)建、引用和運算。 (3) 多維數(shù)組的創(chuàng)建及運算。 (4) 字符串的操作。 三、實驗步驟 1.向量的生成和運算 1) 向量的生成 ?直接輸入法: A = 2 3 4 5 6 >> B=[1;2;3;4;5] B = 1 2 3 4 5 ? 冒號生成發(fā): >> A=1:2:10 ,B=1:10 ,C=10:-1:1 A = 1 3 5 7 9 B = 1 2 3 4 5 6 7 8 9 10 C = 10 9 8 7 6 5 4 3 2 1 ? 函數(shù)法: Linspace( )是線性等分函數(shù),logspace( )是對數(shù)等分函數(shù)。 >> A=linspace(1,10) ,B=linspace(1,30,10) A = Columns 1 through 9 1.0000 1.0909 1.1818 1.2727 1.3636 1.4545 1.5455 1.6364 1.7273 Columns 10 through 18 1.8182 1.9091 2.0000 2.0909 2.1818 2.2727 2.3636 2.4545 2.5455 Columns 19 through 27 2.6364 2.7273 2.8182 2.9091 3.0000 3.0909 3.1818 3.2727 3.3636 Columns 28 through 36 3.4545 3.5455 3.6364 3.7273 3.8182 3.9091 4.0000 4.0909 4.1818 Columns 37 through 45 4.2727 4.3636 4.4545 4.5455 4.6364 4.7273 4.8182 4.9091 5.0000 Columns 46 through 54 5.0909 5.1818 5.2727 5.3636 5.4545 5.5455 5.6364 5.7273 5.8182 Columns 55 through 63 5.9091 6.0000 6.0909 6.1818 6.2727 6.3636 6.4545 6.5455 6.6364 Columns 64 through 72 6.7273 6.8182 6.9091 7.0000 7.0909 7.1818 7.2727 7.3636 7.4545 Columns 73 through 81 7.5455 7.6364 7.7273 7.8182 7.9091 8.0000 8.0909 8.1818 8.2727 Columns 82 through 90 8.3636 8.4545 8.5455 8.6364 8.7273 8.8182 8.9091 9.0000 9.0909 Columns 91 through 99 9.1818 9.2727 9.3636 9.4545 9.5455 9.6364 9.7273 9.8182 9.9091 Column 100 10.0000 B = Columns 1 through 9 1.0000 4.2222 7.4444 10.6667 13.8889 17.1111 20.3333 23.5556 26.7778 Column 10 30.0000 >> A=logspace(0,4,5) A = 1 10 100 1000 10000 練習: 使用logspace( )創(chuàng)建1-4的有10個元素的行向量。 答案: >> A=logspace(1,10,4*pi) A = 1.0e+010 * Columns 1 through 9 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0001 0.0005 0.0035 Columns 10 through 12 0.0231 0.1520 1.0000 2) 向量的運算 ?維數(shù)相同的行向量只見可以相加減,維數(shù)相同的列向量也可以相加減,標量可以與向量直接相乘除。 >> A=[1 2 3 4 5], B=3:7, A = 1 2 3 4 5 B = 3 4 5 6 7 >> AT=A, BT=B, AT = 1 2 3 4 5 BT = 3 4 5 6 7 >> E1=A+B, E2=A-B E1 = 4 6 8 10 12 E2 = -2 -2 -2 -2 -2 >> F=AT-BT, F = -2 -2 -2 -2 -2 >> G1=3*A, G2=B/3, G1 = 3 6 9 12 15 G2 = 1.0000 1.3333 1.6667 2.0000 2.3333 ? 向量的點積與叉積運算。 >> A=ones(1,10);B=(1:10); BT=B; >> E1=dot(A,B) E1 = 55 >> E2=A*BT E2 = 55 >> clear >> A=1:3,B=3:5, A = 1 2 3 B = 3 4 5 >> E=cross(A,B) E = -2 4 -2 2. 矩陣的創(chuàng)建、引用和運算 1) 矩陣的創(chuàng)建和引用 矩陣是由元素構成的矩陣結構,行向量和列向量是矩陣的特殊形式。 ? 直接輸入法: >> A=[1 2 3;4 5 6] A = 1 2 3 4 5 6 >> B=[ 1 4 7 2 5 8 3 6 9 ] B = 1 4 7 2 5 8 3 6 9 >> A(1) ans = 1 >> A(4:end) ans = 5 3 6 >> B(:,1) ans = 1 2 3 >> B(:) ans = 1 2 3 4 5 6 7 8 9 >> B(5) ans = 5 ?抽取法 >> clear >> A=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16] A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 >> B=A(1:3,2:3) B = 2 3 6 7 10 11 >> C=A([1 3],[2 4]) C = 2 4 10 12 >> A([1 3;2 4]) ans = 1 9 5 13 ? 函數(shù)法: >> A=ones(3,4) A = 1 1 1 1 1 1 1 1 1 1 1 1 >> B=zero(3) ??? Undefined function or method zero for input arguments of type double. >> B=zeros(3) B = 0 0 0 0 0 0 0 0 0 >> C=eyes(3,2) ??? Undefined function or method eyes for input arguments of type double. >> C=eye(3,2) C = 1 0 0 1 0 0 >> D=magic(3) D = 8 1 6 3 5 7 4 9 2 拼接法 >> clear >> A=ones(3,4) A = 1 1 1 1 1 1 1 1 1 1 1 1 >> B=zeros(3) B = 0 0 0 0 0 0 0 0 0 >> C=eye(4) C = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 >> D=[A B] D = 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 >> F=[A;C] F = 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 拼接函數(shù)和變形函數(shù)法: >> clear >> A=[0 1;1 1] A = 0 1 1 1 >> B=2*ones(2) B = 2 2 2 2 >> cat (1,A,B,A) ans = 0 1 1 1 2 2 2 2 0 1 1 1 >> cat (2 A,B,A) ??? cat (2 A,B,A) Error: Unexpected MATLAB expression. >> cat(2,A,B,A) ans = 0 1 2 2 0 1 1 1 2 2 1 1 >> repmat(A,2,2) ans = 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 >> repmat(A,2) ans = 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 練習:使用函數(shù)法、拼接法、拼接函數(shù)法和變形函數(shù)法,按照要求創(chuàng)建以下矩陣:A為 的全1矩陣、B為的0矩陣/C為的單位矩陣、D為的魔方陣、E由C 和D縱向拼接而成,F(xiàn)抽取E的2---5行元素生成、G由F經變形為的矩陣而得、 以G為子矩陣用復制函數(shù)(repmat)生成的大矩陣H。 答案: >> A=ones(3,4) A = 1 1 1 1 1 1 1 1 1 1 1 1 >> B=zeros(3,3) B = 0 0 0 0 0 0 0 0 0 >> C=eye(3) C = 1 0 0 0 1 0 0 0 1 >> D=magic(3) D = 8 1 6 3 5 7 4 9 2 >> E=[C;D] E = 1 0 0 0 1 0 0 0 1 8 1 6 3 5 7 4 9 2 >> F=(2:5,:) ??? F=(2:5,:) Error: Expression or statement is incorrect--possibly unbalanced (, {, or [. >> F=E(2:5,:) F = 0 1 0 0 0 1 8 1 6 3 5 7 >> G=respace(E,3,4) ??? Undefined command/function respace. >> G=respace(F,3,4) ??? Undefined command/function respace. >> G=reshape(F,3,4) G = 0 3 1 1 0 1 5 6 8 0 0 7 >> H=repmat(G,2,2) H = 0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 7 0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 7 2) 矩陣的運算 ? 矩陣的加減、數(shù)乘與乘法 已知矩陣: >> A=[1 2 3 -1], A = 1 2 3 -1 >> B=[-1 0 1 2] B = -1 0 1 2 >> A+B ans = 0 2 4 1 >> 2*A ans = 2 4 6 -2 >> 2*A-3*B ans = 5 4 3 -8 >> A*B ans = 1 4 -4 -2 ? 矩陣的逆矩陣 >> format rat;A=[1 0 1;2 1 2;0 4 6] A = 1 0 1 2 1 2 0 4 6 >> A1=inv(A) A1 = -1/3 2/3 -1/6 -2 1 0 4/3 -2/3 1/6 >> A*A1 ans = 1 0 0 0 1 0 0 0 1 ?矩陣的除法 >> a=[1 2 1;3 1 4;2 2 1],b=[1 1 2],d=b a = 1 2 1 3 1 4 2 2 1 b = 1 1 2 d = 1 1 2 >> c1=b*inv(a),c2=b/a c1 = 6/7 3/7 -4/7 c2 = 6/7 3/7 -4/7 >> c3=inv(a)*d, c4=a\b c3 = 1 2/7 -4/7 ??? Error using ==> mldivide Matrix dimensions must agree. >> c3=inv(a)*d, c4=a\d c3 = 1 2/7 -4/7 c4 = 1 2/7 -4/7 練習: 按下列要求求出各種的矩陣運算的值 求矩陣的秩、特征值和特征向量、 矩陣的乘冪與開方; 矩陣的指數(shù)與對數(shù) 矩陣的提取與翻轉 答案: >> A=[6 3 4 3 -2 5 7 -4 8 -1 -3 -7] A = 6 3 4 3 -2 5 7 -4 8 -1 -3 -7 >> B=rank(A) B = 3 >> rb=rank(A) rb = 3 >> [X,Lamda]=eig(A) ??? Error using ==> eig Matrix must be square. >> [X,Lamda]=eigs(A) ??? Error using ==> eigs A must be a square matrix or a function which computes A*x. >> C=[6 3 4 -2 5 7 8 -1 -3] C = 6 3 4 -2 5 7 8 -1 -3 >> [X,Lamda]=eigs(C) X = 0.8013 -0.1094 -0.1606 0.3638 -0.6564 0.8669 0.4749 0.7464 -0.4719 Lamda = 9.7326 0 0 0 -3.2928 0 0 0 1.5602 >> [X,Lamda]=eig(C) X = 0.8013 -0.1094 -0.1606 0.3638 -0.6564 0.8669 0.4749 0.7464 -0.4719 Lamda = 9.7326 0 0 0 -3.2928 0 0 0 1.5602 >> [X,Lamda]=eig(C) X = 0.8013 -0.1094 -0.1606 0.3638 -0.6564 0.8669 0.4749 0.7464 -0.4719 Lamda = 9.7326 0 0 0 -3.2928 0 0 0 1.5602 >> D=A^2 ??? Error using ==> mpower Matrix must be square. >> D=C^2 D = 62 29 33 34 12 6 26 22 34 >> E=sqrtm(C) E = 2.2447 + 0.2706i 0.6974 - 0.1400i 0.9422 - 0.3494i -0.5815 + 1.6244i 2.1005 - 0.8405i 1.7620 - 2.0970i 1.9719 - 1.8471i -0.3017 + 0.9557i 0.0236 + 2.3845i >> F=expm(C) F = 1.0e+004 * 1.0653 0.5415 0.6323 0.4830 0.2465 0.2876 0.6316 0.3206 0.3745 >> G=logm(C) Warning: Principal matrix logarithm is not defined for A with nonpositive real eigenvalues. A non-principal matrix logarithm is returned. > In funm at 153 In logm at 27 G = 1.7129 + 0.4686i 0.5305 - 0.2425i 0.5429 - 0.6049i 1.1938 + 2.8123i 0.3658 - 1.4552i -0.5514 - 3.6305i -0.0748 - 3.1978i 0.7419 + 1.6546i 1.8333 + 4.1282i >> H=fliplr(C) H = 4 3 6 7 5 -2 -3 -1 8 >> I=triu(C) I = 6 3 4 0 5 7 0 0 -3 >> J=tril(C) J = 6 0 0 -2 5 0 8 -1 -3 >> K=diag(C) K = 6 5 -3 3. 多維數(shù)組的創(chuàng)建及運算 1) 多維數(shù)組的創(chuàng)建 >> A1=[1,2,3;4 5 6;7,8,9];A2=reshape([10:18],3,3) A2 = 10 13 16 11 14 17 12 15 18 >> T1(:,:,1)=ones(3);T1(:,:,2)=zeros(3) T1(:,:,1) = 1 1 1 1 1 1 1 1 1 T1(:,:,2) = 0 0 0 0 0 0 0 0 0 >> T2=ones(3,3,2) T2(:,:,1) = 1 1 1 1 1 1 1 1 1 T2(:,:,2) = 1 1 1 1 1 1 1 1 1 >> T3=cat(3,A1,A2),T4=repmat(A1,[1,1,2]) T3(:,:,1) = 1 2 3 4 5 6 7 8 9 T3(:,:,2) = 10 13 16 11 14 17 12 15 18 T4(:,:,1) = 1 2 3 4 5 6 7 8 9 T4(:,:,2) = 1 2 3 4 5 6 7 8 9 2) 多維數(shù)組的創(chuàng)建 數(shù)組運算用小圓點加在運算符的前面表示,以區(qū)分矩陣的運算。特點是兩個數(shù)組相對應的元素進行運算。 >> A=[1:6];B=ones(1,6); >> C1=A+B,C2=A-B C1 = 2 3 4 5 6 7 C2 = 0 1 2 3 4 5 >> C3=A.*B,C4=B./A,C5=A.\B C3 = 1 2 3 4 5 6 C4 = 1.0000 0.5000 0.3333 0.2500 0.2000 0.1667 C5 = 1.0000 0.5000 0.3333 0.2500 0.2000 0.1667 關系運算或邏輯運算的結果都是邏輯值。 >> I=A>3,C6=A(I) I = 0 0 0 1 1 1 C6 = 4 5 6 >> A1=A-3,I2=A1&A A1 = -2 -1 0 1 2 3 I2 = 1 1 0 1 1 1 >> I3=~I I3 = 1 1 1 0 0 0 4. 字符串的操作 1) 字符串的創(chuàng)建 >> S1=Ilike MATLAB S1 = Ilike MATLAB >> S2=Im a stuent. S2 = Im a stuent. >> S3=[S2,and,S1] S3 = Im a stuent.andIlike MATLAB 2) 求字符串長度 >> length(S1) ans = 12 >> size(S1) ans = 1 12 3) 字符串與一維數(shù)值數(shù)組的相互轉換 >> CS1=abs(S1) CS1 = 73 108 105 107 101 32 77 65 84 76 65 66 >> CS2=double(S1) CS2 = 73 108 105 107 101 32 77 65 84 76 65 66 >> char(CS2) ans = Ilike MATLAB >> setstr(CS2) ans = Ilike MATLAB 練習:用char( )和向量生成的方法創(chuàng)建如下字符串AaBbCc......XxYyZz. >> S1=65:90;S2=97:122; >> C=[S1;S2]; >> C=C(:); >> S3=double(C);char(S3) ans = AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz 實驗三 MALTAB數(shù)值運算 一、實驗目的 掌握MATLAB的數(shù)值運算及其運算中所用到的函數(shù),掌握結構數(shù)組和細胞數(shù)組的操作。 二、實驗內容 1) 多項式運算。 2) 多項式插值和擬合。 3) 數(shù)值為積分。 4) 結構數(shù)組和細胞數(shù)組。 三、實驗步驟 1、多項式運算 1) 多項式表示。在MATLAB中,多項式表示成向量的形式。 如: 在MATLAB中表示為 >> s=[1 3 -5 0 9] 2) 多項式的加減法相當于向量的加減法,但必須注意階次要相同。如不同,低階次的要補0。如多項式與多項式相加。 >> s1=[0 0 2 3 11] >> s2=[1 2 -5 4 7] >> s3=s1+s2 答;s1 = 0 0 2 3 11 s2 = 1 2 -5 4 7 s3 = 1 2 -3 7 18 3) 多項式的乘、除法分別用函數(shù)conv和的deconv實現(xiàn)。 >> s1=[2 3 11] >> s2=[1 3 -5 4 7] >> s3=conv(s1,s2) >> s4=deconv(s3,s1) 答;s1 = 2 3 11 s2 = 1 3 -5 4 7 s3 = 2 9 10 26 -29 65 77 s4 = 1 3 -5 4 7 4) 多項式求根用函數(shù)roots。 >> s1=[2 4 2] >> roots(s1) 答;s1 = 2 4 2 ans = -1 -1 5) 多項式求值用函數(shù)polyval >> s1=[2 4 1 -3] >> polyval(s1,3) >> x=1:10 >> y=polyval(s1,x) 答;s1 = 2 4 1 -3 ans = 90 x = 1 2 3 4 5 6 7 8 9 10 y = Columns 1 through 8 4 31 90 193 352 579 886 1285 Columns 9 through 10 練習:求的“商”及余數(shù)。 >> s1=[1 0 1];s2=[1 3];s3=[1 1]; >> s4=[1 0 2 1]; >> [q,r]=deconv(conv(conv(s1,s2),s3),s4) 答;q = 1 4 r = 0 0 2 -5 -1 2、多項式插值和擬合 有一組實驗數(shù)據(jù)如附表1-1所示。 附表1-1 X 1 2 3 4 5 6 7 8 9 10 Y 16 32 70 142 260 436 682 1010 1432 1960 分別用擬合(二階至三階)和插值(線性和三次樣條)的方法來估算X=9.5時Y的值。以下是實現(xiàn)一階擬合的語句。 >> x=1:10 >> y=[16 32 70 142 260 436 682 1010 1342 1960] >> p1=polyfit(x,y,1) %一階擬合 >> y1=polyval(p1,9.5) %計算多項式P1在x=9.5的值 答;x = 1 2 3 4 5 6 7 8 9 10 y = Columns 1 through 8 16 32 70 142 260 436 682 1010 Columns 9 through 10 1342 1960 p1 = 200.9818 -510.4000 y1 = 1.3989e+003 3、數(shù)值微積分 1) 差分使用diff函數(shù)實現(xiàn)。 >> x=1:2:9 >> diff(x) 答;x = 1 3- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設計者僅對作品中獨創(chuàng)性部分享有著作權。
- 關 鍵 詞:
- MATLAB 上機 實驗 報告
裝配圖網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
鏈接地址:http://www.820124.com/p-6499438.html