《數學實驗 第4版》課件全套 李秀珍 第1-9章 準備實驗- 綜合實驗_第1頁
《數學實驗 第4版》課件全套 李秀珍 第1-9章 準備實驗- 綜合實驗_第2頁
《數學實驗 第4版》課件全套 李秀珍 第1-9章 準備實驗- 綜合實驗_第3頁
《數學實驗 第4版》課件全套 李秀珍 第1-9章 準備實驗- 綜合實驗_第4頁
《數學實驗 第4版》課件全套 李秀珍 第1-9章 準備實驗- 綜合實驗_第5頁
已閱讀5頁,還剩891頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第一章準備實驗實驗1.1MATLAB的基本用法實驗1.2矩陣的運算實驗1.4MATLAB繪圖實驗1.3M文件與程序設計實驗1.5MATLAB符號運算實驗1.1MATLAB的基本用法實驗1.1

MATLAB的基本用法一、MATLAB簡介二、矩陣的輸入三、數組的輸入及運算四、常量、變量、與表達式五、函數六、幫助系統七、數據顯示格式一、MATLAB簡介

1.MATLAB語言的發展實驗1.1

MATLAB的基本用法MATLAB是英文MatrixLaboratory(矩陣實驗室)的縮寫,是一款由美國MATHWORKS公司出品的數學軟件,每年都會推出新的版本.MATLAB最早是C.Moler為了減輕學生編程的負擔,用Fortran語言編寫的,后來他與另外兩人合作創立了MATHWORKS公司,正式把MATLAB推向市場.MATLAB將計算、可視化和編程功能集成在非常便于使用的環境中,是一個交互式的、以矩陣計算為基礎的科學和工程計算軟件.2、Matlab適用領域(1)工業研究與開發(2)數學教學,特別是線性代數(3)數值分析和科學計算方面的教學與研究(4)電子學、控制理論和物理學等工程和科學學科方面的教學與研究(5)經濟學、化學和生物學等計算問題的所有其他領域中的教學與研究實驗1.1

MATLAB的基本用法實驗1.1

MATLAB的基本用法3.MATLAB語言的特點編程效率高更接近我們通常進行計算時的思維方式.用它編程猶如在紙上書寫公式,編程時間和程序量大大減少計算功能強它以不必指定維數的矩陣和數組為主要數據對象,矩陣和向量計算功能特別強,庫函數也很豐富.使用簡便方便調試,計算結果也用人們十分熟悉的數學符號表示出來.易于擴充用戶可根據需要建立的文件可以與庫函數一樣被調用,還可以與Fortran、C語言子程序混合編程.實驗1.1

MATLAB的基本用法4.豐富的MATLAB工具箱MATLAB主工具箱符號數學工具箱SIMULINK仿真工具箱控制系統工具箱信號處理工具箱圖象處理工具箱

通訊工具箱系統辨識工具箱神經元網絡工具箱金融工具箱統計工具箱小波分析工具箱……啟動MATLAB后,就出現MATLAB的窗口命令行窗口:在這里輸入命令和輸出結果命令歷史記錄:顯示過去所輸入的命令當前文件夾:當前搜索目錄下的文件5.

MATLAB窗口實驗1.1

MATLAB的基本用法工作區:顯示所有的變量菜單欄ans=0.3224

在命令窗口里首先可以按計算器一樣使用了,如計算在MATLAB的命令窗口中輸入:2*cos(0.3*pi)/(1+sqrt(7))↙實驗1.1

MATLAB的基本用法2*cos(0.4*pi)/(1+sqrt(7))↙ans=0.1695實驗1.1

MATLAB的基本用法按↑鍵(或用Ctrl+p,而↓鍵或Ctrl+n是調出下一行),調出上次的輸入.用←或→健移動光標,將3改為4:

矩陣的輸入方法是,將矩陣元素以行序為先在方括號內逐行輸入矩陣各元素,同一行各元素之間用逗號或空格分開,兩行元素之間用分號或回車分開,如輸入:二、矩陣的輸入

矩陣是MATLAB的基本數據形式,數和向量可視為它的特殊形式,用戶不必對矩陣的行、列數作專門的說明.1.矩陣的輸入實驗1.1

MATLAB的基本用法A=123456789A

=[1,2,3;4,5,6;7,8,9]↙ans=8矩陣中的元素可以用它的行、列數表示,如:a=6A(3,2)↙a=A(2,3)↙實驗1.1

MATLAB的基本用法矩陣A輸入后一直保存在工作空間中,可隨時調用,除非被清除或替代.可以直接修改矩陣的元素,如:A=123756789A=123075607891A(2,1)=7↙A(3,4)=1↙MATLAB還提供了一些函數來構造特殊矩陣,如:w=000000u=111111111w=zeros(2,3)↙u=ones(3)↙%2×3零矩陣%3×3全1矩陣v=eye(3,4)↙%3×4對角線為1的矩陣實驗1.1

MATLAB的基本用法v=100001000010r=

0.81470.90580.1270n=0.8622-1.30770.34262.76940.3188-0.43363.5784-1.3499n=randn(2,4)↙%標準正態分布矩陣r=rand(1,3)↙%(0,1)均勻分布隨機矩陣實驗1.1

MATLAB的基本用法2.矩陣的裁剪ans=7891B=12307560A(3,:)↙B=A(1:2,:)↙%A的第3行%A的第1、2行實驗1.1

MATLAB的基本用法從一個矩陣中取出若干行(列)ans=258C=230560A(:,2)↙C=B(:,2:4)↙%A的第2列%B的第2~4列ans=032198A=230560891A(1:2:3,4:-1:2)↙%A的第1、3行,4、3、2列A(:,1)=[]↙%刪除A的第一列,[]表示空集實驗1.1

MATLAB的基本用法3.矩陣的拼接E=23005600F=123075601000左右拼接時行數要相同,上下拼接時列數要相同,如:E=[C,zeros(2,1)]↙F=[A(1:2,:);eye(1,4)]↙G=230115601191230G=[C,ones(2);9,F(1,:)]↙實驗1.1

MATLAB的基本用法將幾個矩陣接在一起4.矩陣編輯器當輸入的矩陣很大,不適合用手工直接輸入時,MATLAB提供了一個矩陣編輯器來方便用戶創建和修改比較大的矩陣.w=[21;34];%先定義一個名為w的變量從主頁菜單中找到“打開變量”就可以打開矩陣編輯器:實驗1.1

MATLAB的基本用法在調用矩陣編輯器之前,需要預先定義一個變量,無論是數值還是矩陣均可.在這里就可以修改矩陣w的維數和元素了實驗1.1

MATLAB的基本用法三、數組的輸入及運算在MATLAB中數組是一種比矩陣更基本的數據形式,它是元素為一維連續存儲的數據的集合.a=1234567a=[1,2,3,4,5,6,7]↙實驗1.1

MATLAB的基本用法數組運算的最重要的特征是按對應元素進行運算.數組常采用“:”輸入方式,如:ans=1c=00.50001.00001.50002.0000b=345678910b=3:10↙c=0:0.5:2↙c(3)↙實驗1.1

MATLAB的基本用法MATLAB中有兩個命令可以創建特殊的數組:x=00.78541.57082.35623.1416linspace(a,b,m)生成從a到b,m個數的等差數列logspace(a,b,n)生成從到,n個數的等比數列x=linspace(0,pi,5)↙實驗1.1

MATLAB的基本用法ans=

列1至6

1.00001.58492.51193.98116.309610.0000

列7至11

15.848925.118939.810763.0957100.0000logspace(0,2,11)↙實驗1.1

MATLAB的基本用法數組的運算符有“+”、“-”、“.*”、“./”、“.\”、和“.^”a1=1234a2=3214b1=4448b2=-2020b1=a1+a2↙b2=a1-a2↙a1=[1,2,3,4]↙a2=[3,2,1,4]↙實驗1.1

MATLAB的基本用法數組的運算是數組的每一個元素進行相應的運算(注意“./”、和“.\”的區別),如:b3=34316b4=0.33331.00003.00001.0000b3=a1.*a2↙b4=a1./a2↙a1+2↙ans=3456b5=3.00001.00000.33331.0000b5=a1.\a2↙實驗1.1

MATLAB的基本用法b8=392781b6=143256b7=182764b7=a1.^3↙b8=3.^a1↙b6=a1.^a2↙實驗1.1

MATLAB的基本用法四、常量、變量、與表達式

變量名以字母開始,由字母、數字等構成,最多31個字符,區分大小寫字母,在MATLAB中不必對變量作任何的類型說明.

MATLAB提供若干特殊的變量,如:實驗1.1

MATLAB的基本用法pi(

);i(或j,虛數單位);eps(機器無窮小,約為);inf(無窮大);nan(不確定值,0/0,

/所得)當輸入一個新變量時MATLAB自動建立變量并為其分配內存空間.

變量、常量和函數由運算符連接得到算術表達式.

通常表達式的值賦給某個變量稱為賦值命令語句,其形式為:變量=表達式

但亦可略去“變量”,此時表達式之值自動賦給MATLAB系統指定的變量ans.實驗1.1

MATLAB的基本用法當運算對象是矩陣時,應用矩陣運算符;當運算對象為數組時則用數組運算符.

用who或whos命令可以顯示當前工作空間中各變量的名稱及分配給這些變量的空間等信息,who給出的信息較少,whos給出的信息比較詳細.a=1;↙b=[1234];↙c=zeros(2);↙who↙您的變量為:abc

實驗1.1

MATLAB的基本用法disp(x)可以顯示變量x的內容,可以用clear命令從工作空間中清除現存的變量.但clc

命令只清屏不清除變量.(注:命令后加“;”,MATLAB只計算不輸出)函數或變量'a'無法識別.NameSizeBytesClassAttributesa1x18doublearrayb1x432doublearrayc2x232doublearrayclear↙a↙whos↙disp(c)↙0000實驗1.1

MATLAB的基本用法函數名稱函數功能函數名稱函數功能sin(x)正弦函數conj(z)復數的共軛cos(x)余弦函數round(x)四舍五入至最近整數tan(x)正切函數fix(x)向0方向取整asin(x)反正弦函數floor(x)

方向取整acos(x)反余弦函數ceil(x)

方向取整atan(x)反正切函數rat(x)將實數x化為分數表示sinh(x)雙曲正弦函數rats(x)實數化為多項分數展開cosh(x)雙曲余弦函數sign(x)符號函數tanh(x)雙曲正切函數rem(x,y)求x除以y的余數asinh(x)反雙曲正弦函數gcd(x,y)整數x和y的最大公因數acosh(x)反雙曲余弦函數lcm(x,y)整數x和y的最小公倍數atanh(x)反雙曲正切函數exp(x)自然指數abs(x)絕對值或向量的長度pow2(x)2的指數angle(z)復數的幅角log(x)自然對數sqrt(x)開平方log2(x)以2為底的對數real(z)復數的實部log10(x)常用對數imag(z)復數的虛部五、函數實驗1.1

MATLAB的基本用法

這些函數本質上是作用于標量的,當它們作用于矩陣或數組時,是作用于矩陣或數組的每一個元素,如:y=00.58780.95110.95110.58780.0000x=(0:0.2:1)*pi;y=sin(x)↙實驗1.1

MATLAB的基本用法a=[-3.5,4.6];b=round(a),c=floor(a),d=ceil(a),e=fix(a),f=rats(a)↙b=-45c=-44d=-35e=-34

另一個計算函數值的命令是feval(F,x),F是表示函數名的字符串,如:y=00.58780.95110.95110.58780.0000x=(0:0.2:1)*pi;y=feval('sin',x)↙實驗1.1

MATLAB的基本用法函數名稱函數功能函數名稱函數功能max最大值mean平均值min最小值median中值sum和prod乘積length長度sort從小到大排列

有些函數只有當它們作用于(行或列)向量時才有意義,稱為向量函數.實驗1.1

MATLAB的基本用法這些函數也作用于矩陣,此時它產生一個行向量,行向量的每一個元素是函數作用于矩陣相應列向量的結果。b=-1.2000c=11.9000d=3.1000a=[4,3.1,-1.2,0,6];b=min(a),c=sum(a),d=median(a)↙實驗1.1

MATLAB的基本用法f=sort(a)%升序排列↙f=-1.200003.10004.00006.0000g=sort(a,'descend')%降序排列↙g=6.00004.00003.10000-1.2000h=

-1.200003.10004.00006.0000index=

34215[h,index]=sort(a)%h是排序好的向量,index是向量h中對向量a的索引

實驗1.1

MATLAB的基本用法六、幫助系統

MATLAB提供了非常方便的幫助系統,如果知道某個程序(或主題)的名字,就可用幫助命令:helpsin↙實驗1.1

MATLAB的基本用法help程序(或主題)的名窗口中會給出sin命令的具體用法。MATLAB還提供了一個命令lookfor,它可以搜索包含某個關鍵詞的幫助主題,這個關鍵詞并不一定是MATLAB的命令或函數lookforequation

↙窗口中會顯示出所有與equation有關的命令。七、數據顯示格式1.如果數據是整數,則顯示整數;命令顯示格式命令顯示格式formatshort小數點后4位,缺省顯示formatshorte5位科學記數法formatlong15位數字formatlonge15位科學記數法formatbank小數點后2位formatrat最接近的有理數format+顯示+,-或0(分數表示)MATLAB顯示數據結果時,一般遵循下列原則:實驗1.1

MATLAB的基本用法2.如果數據是實數,在缺省情況下顯示小數點后4位數字.可以在要輸出的數據前加上這些命令,如ans=3.1416formatshort,pi↙format+,pi↙formatbank,pi↙ans=3.14ans=+formatlonge,pi↙formatrat,pi↙ans=355/113ans=3.141592653589793e+00實驗1.1

MATLAB的基本用法第一章準備實驗實驗1.1MATLAB的基本用法實驗1.2矩陣的運算實驗1.4MATLAB繪圖實驗1.3M文件與程序設計實驗1.5MATLAB符號運算實驗1.2矩陣的運算實驗1.2

矩陣的運算一、矩陣的四則運算二、矩陣的轉置、行列式、秩和逆三、對角陣、上(下)三角陣和稀疏矩陣四、特征值與特征向量一、矩陣的四則運算矩陣的四則運算符有:+加法、-減法、^冪、*乘法、/右除、\左除在使用時應該注意兩點:①左除和右除的區別:設A是可逆矩陣,AX=B的解是A左除B,即X=A\B;XA=B的解是A右除B,即X=A/B。②冪,乘、除三種運算和線性代數中的定義一致,但.^;.*;./;.\是指數組之間的運算,即對應元素進行相應的運算。實驗1.2

矩陣的運算M=1.00000.50002.00002.00003.00003.00004.50001.00006.0000R1=

5.50004.50009.000016.000010.000024.000018.000016.000029.5000例如M=[1,.5,2;2,3,3;4.5,1,6]↙N=[2,2,3;3,1,4;1,1,2]↙N=223314112R1=M*N↙R2=M.*N↙R2=2.00001.00006.00006.00003.000012.00004.50001.000012.0000實驗1.2

矩陣的運算二、矩陣的轉置、行列式、秩和逆

設A是一個矩陣.A’求A的轉置det(A)求A的行列式(方陣),rank(A)求A的秩inv(A)求A的逆矩陣(若不可逆,則給出警告信息)A=123221343A=[1,2,3;2,2,1;3,4,3]↙實驗1.2

矩陣的運算ans=123224313ans=2ans=3A'↙det(A)↙rank(A)↙B=inv(A)↙B=1.00003.0000-2.0000-1.5000-3.00002.50001.00001.0000-1.0000實驗1.2矩陣的運算A=123456789ans=2警告:矩陣接近奇異值,或者縮放不良。結果可能不準確。RCOND=1.541976e-18。

ans=

1.0e+16*

-0.45040.9007-0.45040.9007-1.80140.9007-0.45040.9007-0.4504A=[1,2,3;4,5,6;7,8,9]↙rank(A)↙inv(A)↙實驗1.2

矩陣的運算三、對角陣、上(下)三角陣和稀疏矩陣1.提取(產生)對角陣v=diag(x):若輸入向量x,則輸出v是以x為對角元素的對角陣;v=100020003ans=123x=[123]↙x=123diag(v)↙v=diag(x)↙若輸入矩陣x,則輸出v是x的對角元素構成的向量.實驗1.2

矩陣的運算2.提取(產生)上(下)三角陣v=triu(x):輸入矩陣x,輸出x的上三角陣v;v=tril(x):輸入矩陣x,輸出x的下三角陣v.a=123456789b=123056009c=100450789a=[123;456;789]↙b=triu(a)↙c=tril(a)↙實驗1.2

矩陣的運算3.稀疏矩陣的處理

對稀疏矩陣在存儲和運算上的特殊處理,是MATLAB進行大規模科學計算時的特點和優勢之一.a=sparse(r,c,v,m,n):創建m行n列的稀疏矩陣a;其第r行、c列的元素為v。aa=full(a):將稀疏矩陣a轉換為滿矩陣aa(包括零元素)。用以下語句輸入稀疏矩陣的非零元素(零元素不必輸入),即可進行計算.實驗1.2

矩陣的運算a=(2,2)8(2,3)8aa=00000880a=sparse(2,2:3,8,2,4),aa=full(a)↙實驗1.2

矩陣的運算關于特征值與特征向量,MATLAB有以下命令:命

令作

用poly(A)輸出A的特征多項式的系數(按降冪排列)d=eig(A)返回方陣A的全部特征值所構成的向量[V,D]=eig(A)返回矩陣V和D.其中,對角陣D的對角元素為A的特征值,V的列向量是相應的特征向量,使得A*V=V*Dd=eig(A,B)求解

返回方陣A和B的廣義特征值所構成的向量[V,D]=eig(A,B)求廣義的特征值D和特征向量V,使得AV=BV*D實驗1.2

矩陣的運算四、特征值與特征向量A=400031013ans=1-1032-32ans=244例如:A=[400;031;013]↙poly(A)↙eig(A)↙實驗1.2

矩陣的運算v=

001.0000-0.70710.707100.70710.70710d=200040004ans=

400

031

013[v,d]=eig(A)↙v*d*inv(v)↙inv(v)*d*v↙ans=400040002實驗1.2矩陣的運算A=21-15B=3114d=

0.7405

1.3504V=

-1.0000-0.1708-0.85411.0000D=

0.7405001.3504A=[21;-15]↙B=[31;14]↙d=eig(A,B)↙[V,D]=eig(A,B)↙實驗1.2矩陣的運算A*V↙%驗證A*V=B*V*Dans=-2.85410.6584

-3.27055.1708B*V*D↙

ans=-2.85410.6584

-3.27055.1708實驗1.2矩陣的運算55第一章準備實驗實驗1.1MATLAB的基本用法實驗1.2矩陣的運算實驗1.4MATLAB繪圖實驗1.3M文件與程序設計實驗1.5MATLAB符號運算實驗1.3M文件與程序設計一、M文件二、程序控制結構三、函數M-文件四、應用舉例一、M文件1.M文件概述

MATLAB作為一種應用廣泛的科學計算軟件,不僅可以通過直接交互的指令和操作方式進行強大的數值計算、繪圖等,還可以像

C、C++等高級程序語言一樣,根據自己的語法規則來進行程序設計.

M文件是一個文本文件,它可以用任何編輯程序來建立和編輯,而一般常用且最為方便的是使用MATLAB提供的文本編輯器.實驗1.3

M文件與程序設計編寫的程序文件以

.m作為擴展名,稱之為M文件.2.M文件的建立與打開(1)建立新的M文件菜單操作:主頁——新建——腳本操作后會啟動MATLAB文本編輯器,輸入M文件的內容并存盤就建立了一個新的M文件。實驗1.3

M文件與程序設計命令操作:命令行窗口中輸入edit注:儲存時文件名遵循MATLAB變量命名的原則,但必須以.m為擴展名.實驗1.3

M文件與程序設計(2)打開已有的M文件菜單操作:主頁——打開——選擇文件M文件根據調用方式的不同分為兩類:腳本文件(ScriptFile)和函數文件(FunctionFile).實驗1.3

M文件與程序設計命令操作:命令行窗口中輸入:edit文件名然后在命令行窗口中輸入:f1c↙c=22.7778InputFahrenheittemperature:73↙實驗1.3

M文件與程序設計clear;%清除工作空間中的變量f=input(‘InputFahrenheittemperature:');c=5*(f-32)/9例1

分別建立腳本文件和函數文件,將華氏溫度f轉換為攝氏溫度c.解1首先建立腳本文件并以文件名f1c.m存盤.解2首先建立函數文件f2c.m.functionc=f2c(f)c=5*(f-32)/9;然后在MATLAB的命令行窗口調用該函數文件.InputFahrenheittemperature:70↙x=21.1111clear;y=input('InputFahrenheittemperature:');x=f2c(y)↙實驗1.3

M文件與程序設計二、關系運算與邏輯運算1.關系運算符

關系運算符主要用以比較數、字符串、矩陣之間的大小或不等關系,其返回值為0或1,當返回值為1時,表示比較的兩個對象關系為真;當返回值為0時,表示比較的兩個對象關系為假.關系操作符功能<

判斷小于關系<=判斷小于等于關系>

判斷大于關系>=判斷大于等于關系==判斷等于關系~=判斷不等于關系注:關系運算符“==”和賦值運算符“=”是不同的,“==”用來判斷兩個數字或者變量是否有相等關系,“=”用來給變量賦值.實驗1.3

M文件與程序設計A=1:2:10;

B=10-A;big=A>4

%判斷A中元素是否大于4,結果是1表明為真,結果是0表明為假big=1×5logical數組00111ab=(A==B)↙ab=1×5logical數組00100%判斷A、B中對應元素是否相等實驗1.3

M文件與程序設計2.邏輯運算符邏輯運算符說明&與(Element-wiseLogicalAND)|或(Element-wiseLogicalOR)~非(優先級最高)注:三種運算符的優先順序按從高到低排列為:算術運算符、關系運算符、邏輯運算符,從高到低,如果要改變運算的優先級,可以在表達式中加入括號.實驗1.3

M文件與程序設計實驗1.3

M文件與程序設計A=1:2:10;a1=(A>2)&(A<6)↙a1=1×5logical數組01100a2=(A>7)|(A<6)↙a2=1×5logical數組11101%當A中的元素大于2并且小于6時,返回1%當A中的元素大于7或者小于6時,返回1三、程序控制結構1.順序結構——依次順序執行程序的各條語句MATLAB語言的程序控制結構與其它高級語言是一致的,分為順序結構,選擇結構,循環結構。(1)數據的輸入——input調用格式:A=input(提示信息,選項)

如果在input函數調用時采用‘s’選項,則允許用戶輸入一個字符串。實驗1.3

M文件與程序設計其中提示信息為一個字符串,用于提示用戶輸入什么樣的數據。(2)數據的輸出——disp調用格式:disp(輸出項)其中輸出項既可以為字符串,也可以為矩陣。(3)程序的暫停——pause調用格式:

pause(延遲秒數)如果省略延遲時間,直接使用pause,則將暫停程序,直到用戶按任一鍵后程序繼續執行.實驗1.3

M文件與程序設計若要強行中止程序的運行可使用Ctrl+C命令.例2

輸入x,y的值,并將它們的值互換后輸出。x=input(‘Inputxplease:');y=input(‘Inputyplease:');z=x;x=y;y=z;disp(x);disp(y);存盤為f1.m,在命令行窗口中輸入f1↙Inputxplease:5↙Inputyplease:6↙6

5解實驗1.3

M文件與程序設計a=input('a=?');b=input('b=?');c=input('c=?');d=b*b-4*a*c;x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))])例3

求一元二次方程的根.解程序如下:實驗1.3

M文件與程序設計注:num2str函數的作用是把數值轉換成字符串,以便用disp進行輸出.2.選擇結構——根據一定條件來執行各條語句(1)if語句條件語句if最簡單的用法是:if條件<語句組1>end

如果條件成立,則語句組1執行;

否則,執行end的后繼命令實驗1.3

M文件與程序設計如果條件成立,則語句組1執行;否則,語句組2執行,然后執行end的后續命令if語句的另一種用法是:if條件<語句組1>else<語句組2>endif條件1<語句組1>elseif條件2<語句組2>……elseif條件m<語句組m>else<語句組n>end當我們有多個選擇時,還可以用下列結構:實驗1.3

M文件與程序設計例4計算分段函數的值.解程序如下:x=input('請輸入x的值:');ifx<=0y=(x+sqrt(pi))/exp(2);elsey=log(x+sqrt(1+x*x))/2;endy實驗1.3

M文件與程序設計例5

輸入一個字符,若為大寫字母,則輸出其對應的小寫字母;若為小寫字母,則輸出其對應的大寫字母;若為數字字符則輸出其對應的數值,若為其他字符則原樣輸出.

c=input('請輸入一個字符','s');ifc>='A'&c<='Z'disp(setstr(abs(c)+abs('a')-abs('A')));elseifc>='a'&c<='z'disp(setstr(abs(c)-abs('a')+abs('A')));elseifc>='0'&c<='9'disp(abs(c)-abs('0'));elsedisp(c);end解

實驗1.3

M文件與程序設計(2)switch語句switch

表達式case

表達式1〈語句組1〉case

表達式2〈語句組2〉……otherwise〈語句組n〉endswitch語句根據表達式的值來執行相應的語句,用法如下:實驗1.3

M文件與程序設計例6

某商場對顧客所購買的商品實行打折銷售,標準如下(商品價格用price來表示):

price<200沒有折扣

200≤price<5003%折扣

500≤price<10005%折扣

1000≤price<25008%折扣

2500≤price<500010%折扣

5000≤price14%折扣輸入所售商品的價格,求其實際銷售價格。實驗1.3

M文件與程序設計price=input(‘請輸入商品價格:’);switchfix(price/100)case{0,1}rate=0;case{2,3,4}rate=3/100;casenum2cell(5:9)rate=5/100;casenum2cell(10:24)rate=8/100;解程序如下:實驗1.3

M文件與程序設計請輸入商品價格:700↙price=665存盤為ff2.m,在命令窗口中輸入:ff2↙casenum2cell(25:49)rate=10/100;otherwiserate=14/100;endprice=price*(1-rate)實驗1.3

M文件與程序設計(3)try語句try〈語句組1〉catch〈語句組2〉end

運行時先試探性執行語句組1,如果語句組1在執行過程中出現錯誤,則將錯誤信息付給保留的lasterr變量,并轉去執行語句組2。try語句用法如下:實驗1.3

M文件與程序設計例7

矩陣乘法運算要求兩矩陣的維數相容,否則會出錯.先求兩矩陣的乘積,若出錯,則自動轉去求兩矩陣的點乘.A=[1,2,3;4,5,6];B=[7,8,9;10,11,12];try

C=A*B;catch

C=A.*B;endClasterr

%顯示出錯原因解程序如下:實驗1.3

M文件與程序設計(1)for語句for循環變量=初值:步長:終值循環體語句end3.循環結構——被重復執行的一組語句,循環是計算機解決問題的主要手段注:步長為1時可以省略循環語句for的一般形式為:實驗1.3

M文件與程序設計例8

一個三位整數各位數字的立方和等于該數本身則稱該數為水仙花數,編寫程序輸出全部水仙花數.form=100:999m1=fix(m/100);

%求m的百位數字m2=rem(fix(m/10),10);%求m的十位數字m3=rem(m,10);

%求m的個位數字ifm==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend解程序如下:實驗1.3

M文件與程序設計例9

已知

,當n=100時,求y的值.y=0;n=100;fori=1:ny=y+1/(2*i-1);endy

解程序如下:在實際MATLAB編程中,采用循環語句會降低其執行速度,所以前面的程序通常由下面的程序來代替:

n=100;i=1:2:2*n-1;y=sum(1./i);y實驗1.3

M文件與程序設計for循環更一般的格式為:for循環變量=矩陣表達式

循環體語句end執行過程是依次將矩陣的各列元素賦給循環變量,然后執行循環體語句,直至各列元素處理完畢。實驗1.3

M文件與程序設計例10

寫出下列程序的執行結果.s=0;a=[12,13,14;15,16,17;18,19,20;21,22,23];fork=as=s+k;enddisp(s')解

該程序的作用是求矩陣每一行的和,輸出結果為39485766實驗1.3

M文件與程序設計(2)while語句如果不知道循環次數,可以使用while循環來完成,其一般形式為:

while(條件)循環體語句

end

其執行過程為:若條件成立,則執行循環體語句,執行后再判斷條件是否成立,如果不成立則跳出循環.實驗1.3

M文件與程序設計例11從鍵盤輸入若干個數,當輸入0時結束輸入,求這些數的平均值和它們的和.

sum=0;

cnt=0;

val=input('Enteranumber(endin0):');

while(val~=0)

sum=sum+val;

cnt=cnt+1;

val=input('Enteranumber(endin0):');endif(cnt>0)

sum

mean=sum/cntend解實驗1.3

M文件與程序設計(3)break語句和continue語句

continue語句控制跳過循環體中的某些語句。當在循環體內執行到該語句時,程序將跳過循環體中所有剩下的語句,繼續下一次循環。與循環結構相關的語句還有break語句和continue語句.它們一般與if語句配合使用.

break語句用于終止循環的執行.當在循環體內執行到該語句時,程序將跳出循環,繼續執行循環語句的下一語句.實驗1.3

M文件與程序設計例12

求[100,200]之間第一個能被21整除的整數。forn=100:200ifrem(n,21)~=0continueendbreakendn↙n=105解

循環語句可以嵌套,即一個循環結構的循環體又包括一個循環結構,也稱為多重循環。(4)循環的嵌套實驗1.3

M文件與程序設計例13

若一個數等于它的各個真因子之和,則稱該數為完數,如6=1+2+3,所以6是完數.求[1,500]之間的全部完數.628496解

form=1:500s=0;fork=1:m/2ifrem(m,k)==0s=s+k;endendifm==sdisp(m);endend↙實驗1.3

M文件與程序設計三、函數M-文件function輸出形參=函數名(輸入形參)%注釋說明部分函數體語句注2:這個M-文件的文件名必須是函數名.m1.函數文件的基本結構函數M-文件必須由function語句引導,其基本結構為:注1:若輸出形參不止一個,可用方括號將它們括起來,并用逗號分開。實驗1.3

M文件與程序設計例14

編寫函數文件求半徑為r的圓的面積和周長.

解函數文件如下:function[s,p]=fcircle(r)%CIRCLEcalculatetheareaandperimeterofacircleofradiir%r圓半徑%s圓面積%p圓周長%2023年12月30日編s=pi*r*rp=2*pi*r實驗1.3

M文件與程序設計2.函數調用函數調用的一般格式是:[輸出實參表]=函數名(輸入實參表)注:函數調用時各實參出現的順序、個數,應與函數定義時形參的順序、個數一致,否則會出錯

函數調用時,先將實參傳遞給相應的形參,從而實現參數傳遞,然后再執行函數的功能.實驗1.3

M文件與程序設計例15

利用函數文件,實現直角坐標(x,y)與極坐標(ρ,θ)之間的轉換.function[rho,theta]=tran(x,y)rho=sqrt(x*x+y*y);theta=atan(y/x);

x=input('Pleaseinputx=:');y=input('Pleaseinputy=:');[rho,the]=tran(x,y);rhothe調用tran.m的命令文件main1.m:解編寫函數文件tran.m:實驗1.3

M文件與程序設計

函數可以嵌套調用,即一個函數可以調用別的函數,甚至調用它自身,一個函數調用它自身稱為函數的遞歸調用。例16

利用函數的遞歸調用求n!functionf=factor(n)ifn<=1f=1;elsef=factor(n-1)*n;end解遞歸調用函數文件factor.m如下:ans=120factor(5)↙實驗1.3

M文件與程序設計3.函數參數的可調性在調用函數時,MATLAB用兩個永久變量nargin和nargout分別記錄調用該函數時的輸入實參和輸出實參的個數.實驗1.3

M文件與程序設計只要在函數文件中包含這兩個變量,就可以準確地知道該函數文件被調用時的輸入、輸出參數個數,從而決定函數如何進行處理.MATLAB中用global命令定義全局變量,格式為:

global變量名實驗1.3

M文件與程序設計4.全局變量與局部變量

函數文件內部的變量是局部變量,它們與其他函數文件及MATLAB工作空間相互隔離.但是,如果在若干函數中都把某一變量定義為全局變量,那么這些函數將公用這一個變量.

全局變量的作用域是整個MATLAB工作空間,所有的函數都可以對它進行存取和修改.因此,定義全局變量是函數間傳遞信息的一種手段.98第一章準備實驗實驗1.1MATLAB的基本用法實驗1.2矩陣的運算實驗1.4MATLAB繪圖實驗1.3M文件與程序設計實驗1.5MATLAB符號運算數學實驗99實驗1.4MATLAB繪圖一、一元函數的作圖(二維圖形)二、其他二維圖形三、隱函數繪圖五、圖形修飾處理數學實驗四、三維圖形一、二維數據曲線圖實驗1.4

MATLAB繪圖(1)符號函數繪圖——fplotfplot函數的基本調用格式為:fplot(f,xinterval)

,

其中f為要繪制的函數,常用函數句柄來表示.xinterval為x的取值范圍注:函數句柄是一種表示函數的MATLAB數據類型,它的作用是將一個函數封裝成一個變量,使其能夠像其它變量一樣在程序的不同部分傳遞。函數句柄可以表示命名函數或匿名函數,要創建函數句柄,可用

@

操作符,并且要使用數組運算符。例如,創建用于計算表達式

的匿名函數的句柄為:f=@(x,y)(x.^2-y.^2)1.繪制單根二維曲線fplot(@(x)cos(tan(pi*x)),[0,1])↙例1

用fplot函數繪制的曲線.解

命令如下:實驗1.4

MATLAB繪圖實驗1.4

MATLAB繪圖(2)數值數據繪圖——plotplot函數的基本調用格式為:plot(x,y),其中x和y為長度相同的向量,分別用于存儲x坐標和y坐標數據.例2

在區間內,繪制曲線解命令如下:x=0:pi/100:2*pi;y=2*exp(-0.5*x).*cos(4*pi*x);plot(x,y)例3

繪制曲線:解

命令如下:

t=0:0.1:2*pi;x=t.*sin(3*t);y=t.*sin(t).*sin(t);plot(x,y)實驗1.4

MATLAB繪圖2.繪制多根二維曲線繪制多根二維曲線可采用下面兩種形式:(1)plot函數的輸入參數是矩陣形式1)當x是向量,y是其行(列)向量與x同維的矩陣時,則繪制出多根不同顏色的曲線.曲線條數等于y矩陣的列(行)向量的維數,x被作為這些曲線共同的橫坐標.2)當x,

y是同維矩陣時,則以x,

y對應列元素為橫、縱坐標分別繪制曲線,曲線條數等于矩陣的列數.實驗1.4

MATLAB繪圖3)對只包含一個輸入參數的plot函數,當輸入參數是實矩陣時,則按列繪制每列元素值相對其下標的曲線,曲線條數等于輸入參數矩陣的列數.當輸入參數是復數矩陣時,則按列分別以元素實部和虛部為橫、縱坐標繪制多條曲線.調用格式為:plot(x1,y1,x2,y2,…,xn,yn)(2)含多個輸入參數的plot函數1)當輸入參數都為向量時,x1和y1,x2和y2,…,xn和yn分別組成一組向量對,每一組向量對的長度可以不同.每一向量對可以繪制出一條曲線,這樣可以在同一坐標系內繪制出多條曲線.實驗1.4

MATLAB繪圖2)當輸入參數有矩陣形式時,配對的x,y按對應列元素為橫、縱坐標分別繪制曲線,曲線條數等于矩陣的列數.x1=linspace(0,2*pi,100);x2=linspace(0,3*pi,100);x3=linspace(0,4*pi,100);y1=sin(x1);y2=1+sin(x2);y3=2+sin(x3);x=[x1;x2;x3]';y=[y1;y2;y3]';plot(x,y,x1,y1-1)例4

分析下列程序繪制的曲線.實驗1.4

MATLAB繪圖解

該程序在同一坐標中繪制出和的圖像:在MATLAB中,如果需要繪制出具有不同縱坐標標度的兩個圖形,可以使用plotyy繪圖函數.(3)具有兩個縱坐標標度的圖形調用格式為:plotyy(x1,y1,x2,y2),其中x1,y1對應一條曲線,x2,y2對應另一條曲線.橫坐標的標度相同,縱坐標有兩個,左縱坐標用于x1,y1數據對,右縱坐標用于x2,y2數據對.實驗1.4

MATLAB繪圖x=0:pi/100:2*pi;y1=0.2*exp(-0.5*x).*cos(4*pi*x);y2=2*exp(-0.5*x).*cos(pi*x);plotyy(x,y1,x,y2)

命令如下:實驗1.4

MATLAB繪圖例5

用不同標度在同一坐標系內繪制曲線

和(4)圖形保持holdon/off命令是控制保持原有圖形還是刷新原有圖形,不帶參數的

hold命令在兩種狀態之間進行切換。實驗1.4

MATLAB繪圖例6

采用圖形保持,在同一坐標內繪制曲線

和解

命令如下:fplot(@(x)0.2*exp(-0.5*x).*cos(4*pi*x),[0,2*pi])holdonfplot(@(x)2*exp(-0.5*x).*cos(pi*x),[0,2*pi])↙3.設置曲線樣式線方式-:-.--實線(solid)點線(dotted)虛點線(dashdot)波折線(dashed)點方式.+*xosdv^<>ph圓點加號星號x形小圓正方形菱形下三角形上三角左三角形右三角形五角星六角形顏色yrgbwkmc黃色紅色綠色藍色白色黑色洋紅色青色實驗1.4

MATLAB繪圖

要設置曲線樣式可以在plot函數中加繪圖選項,其調用格式為:plot(x1,y1,’選項1’,x2,y2,’選項2’,…,xn,yn,’選項n’)如

x=0:pi/100:2*pi;y1=0.2*exp(-0.5*x).*cos(4*pi*x);y2=2*exp(-0.5*x).*cos(pi*x);plot(x,y1,x,y2,'k:')↙實驗1.4

MATLAB繪圖4.圖形標注與坐標控制title(’圖形名稱’)加圖形標題xlable(’x軸說明’)加x軸說明ylable(’y軸說明’)加y軸說明text(x,y,’圖形說明’)在指定位置添加圖形說明legend(‘圖例1’,‘圖例2,…’)加圖例實驗1.4

MATLAB繪圖(1)圖形標注注:命令中的說明文字,除使用標準的ASCII字符外,還可使用LaTeX格式的控制字符,這樣就可以在圖形上添加希臘字母、數學符號及公式等內容.x=0:pi/100:2*pi;y1=2*exp(-0.5*x);y2=cos(4*pi*x);plot(x,y1,x,y2)title('xfrom0to2{\pi}');%加圖形標題xlabel('VariableX');%加X軸說明ylabel('VariableY');%加Y軸說明text(0.8,1.5,‘曲線y1=2e^{-0.5x}’);%在指定位置添加圖形說明

text(2.5,1.1,'曲線y2=cos(4{\pi}x)');legend('y1','y2')

%加圖例解

命令如下:例7

在區間內,繪制曲線和并給圖形添加圖形標注.實驗1.4

MATLAB繪圖實驗1.4

MATLAB繪圖x=linspace(0,2*pi,30);y=sin(x);z=cos(x);plot(x,y,x,z)gtext('sinx'),gtext('cosx')也可以用鼠標來確定字符串的位置,方法是輸入命令:gtext例如:

實驗1.4

MATLAB繪圖axis([xmin

xmax

ymin

ymax])[]中分別給出x軸和y軸的最小、最大值axisequalx軸和y軸的單位長度相等axisauto使用缺省設置axissquare圖框呈方形axisoff(on)取消(顯示)坐標軸boxon/off命令控制是加還是不加坐標邊框線,不帶參數的box

命令在兩種狀態之間進行切換。實驗1.4

MATLAB繪圖(2)坐標控制——axisgridon/off命令控制是畫還是不畫網格線,不帶參數的

grid命令在兩種狀態之間進行切換。例8

在同一坐標中,繪制3個同心圓,并加坐標控制.解

命令如下:t=0:0.01:2*pi;x=exp(i*t);y=[x;2*x;3*x]';plot(y)gridon;%加網格線

boxon;%加坐標邊框

axisequal%坐標軸采用等刻度實驗1.4

MATLAB繪圖實驗1.4

MATLAB繪圖MATLAB在“繪圖”菜單中提供了可視化的圖形編輯工具,該菜單中列出了一些常用的圖形樣式,在工作區中選定變量后,可直接點擊相應的圖形按鈕,系統就會自動地匹配出圖形.5.圖形的可視化編輯6.圖形窗口的分割——subplotsubplot函數的調用格式為:subplot(m,n,p)該函數將當前圖形窗口分成m×n個繪圖區,即每行n個,共m行,區號按行優先編號,且選定第p個區為當前活動區.在每一個繪圖區允許以不同的坐標系單獨繪制圖形.x=linspace(0,2*pi,30);y=sin(x);z=cos(x);u=2*sin(x).*cos(x);v=sin(x)./cos(x);subplot(2,2,1),plot(x,y),axis([02*pi-11]),title('sin(x)')subplot(2,2,2),plot(x,z),axis([02*pi-11]),title('cos(x)')subplot(2,2,3),plot(x,u),axis([02*pi-11]),title('2sin(x)cos(x)')subplot(2,2,4),plot(x,v),axis([02*pi-2020]),title('sin(x)/cos(x)')↙例9

在圖形窗口中,以子圖形式同時繪制多根曲線.實驗1.4

MATLAB繪圖實驗1.4

MATLAB繪圖1.極坐標圖——polarpolar(theta,rho,選項)theta(極角,用弧度)rho(極徑)是同維向量,選項的內容同plot函數實驗1.4

MATLAB繪圖二、其他二維圖形t=0:pi/50:2*pi;r=sin(t).*cos(t);polar(t,r,'-*')↙例10繪制

的極坐標圖,并標記數據點.

命令如下:2.二維統計分析圖

MATLAB中,二維統計分析圖形很多,常見的有條形圖、階梯圖、桿圖和填充圖等bar(x,y,’選項’)條形圖stairs(x,y,’選項’)階梯圖stem(x,y,’選項’)桿圖fill(x1,y1,’選項1’,x2,y2,’選項2’,…)填充圖實驗1.4

MATLAB繪圖x=0:pi/10:2*pi;y=2*sin(x);subplot(2,2,1);bar(x,y,

溫馨提示

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

評論

0/150

提交評論