matlab數學實驗--第一章


一、            數據和變量:

省略號(三個英文句點):表示換行

歷史指令調用:用方向鍵上下

數據顯示格式:

                   format short

                   format long

                   format rational

 

復數: I,j

realmin:最小正實數

realmax:最大正實數

Inf:無窮大   eg:2/0

NaN:不定值  eg:0/0

 

二、            數組的輸入與分析:

中括號[]表示矩陣,同行元素用逗號或空格分隔;不同用分號或回車分隔。

         函數linspace(x1,x2,n)生成x1與x2間的n維等距行向量

         編址:不能為0,按列編址;

         冒號運算: eg;生成1到10,公差為2的等差數組:a=[1:2:10]

         Length: 計算向量的尺寸

Size計算矩陣的尺寸

 

查看矩陣的某個元素:eg:A(2,3)表示2行3列的元素

矩陣元素的抽取:eg:A=[1 2 3; 4 5 6];

A(2,:)表示抽取矩陣第二行的元素

A(:,3)表示抽取矩陣第三列的元素

子矩陣的抽取:A([1,2],[2,3]) 表示抽取第一行下標為1,2的元素2,3和第二行下標為2,3的元素5,6

A(:)把矩陣A變成向量形式

 

更改向量的元素:eg:  a(2)=6 把向量的第二元素改成6

同理,改變矩陣的元素也一樣,A(2,3)=7 二行三列的元素改為7

拼接:eg:  [A,B]把A矩陣和B矩陣按行方式進行拼接,如果逗號改為分號就是按列進行拼接

 

sum: 矩陣:列相加; 向量:全部相加

prod(乘積): 如果自變量是向量,求所有向量的乘積; 如果自變量是矩陣,求每一列的乘積;

min,max:如果自變量是向量,求所有向量的最小最大值; 如果自變量是矩陣,求每一列的最小最大值;

 

特殊矩陣

Zeros(m,n):零矩陣 ;   ones(m,n):一矩陣 ;  eye(m,n):單位矩陣

 

導入外部excel數據文件:

剪切板 + Array  Editor

菜單import  data

 

數組乘方:A.^K;  K.^A:表示矩陣中的每一個元素以K為底,對應元素的次方形成的新矩陣

 

數組運算:A.*B,A./B;  A-3(每個元素-3)

 

 

數學函數:

矩陣的數字函數是按元素運算

fix: 向0取整          

ceil :向正無窮取整              

rem:除法余數                             

real:復數實部                   

angle:復數幅角         

log:自然對數 (ln)

   

floor:向負無窮取整

mod:模除求余

abs:絕對值

image:復數虛部

conj:復數共軛

log10:以10為底對數

eg:以2為底4的對數為2 ---log2(4)      

 

邏輯運算:

any:至少有一個滿足條件  all:必須全部滿足條件

find:找到滿足條件元素的下標

 

測試題:

 

a表示每一列的最小值

b表示每列最小值所在的行號

 

分號的作用:

不讓表達式結果顯示出來

兩個語句分隔符

矩陣換行

 

 

三、字符串、元胞和結構

數據類型:

數值(Double):

邏輯(Logical):

字符(Char):  a = '清心明目',b=a([4:-1:1]) 結果為: 目明清心

                              字符串的拼接:t=’好’, c=[a,t] 結果為 清心明目好

元胞(Cell):

結構(Structure):

 

字符串轉化  num2str,str2num

 

 

 

第一章作業題

執行下列指令,觀察運算結果,理解其意義

(1)[a,b]=min([10 20;30 4])

a的值是矩陣每一列的最小值,即10  4

b的值是矩陣最小值所在的行號

 

(2)[10 20;30 40]>=[40 30;20 10]

返回對應元素比較結果的值0,1

 

(3)find([10 20;30 40]>=[40 30;20 10])

返回的結果是將矩陣先轉化為列向量再比較得到的位置

題中的矩陣變換為列向量為(10 30 20 40T ,(40 20 30 10)T;

對應元素進行比較,結果為

 

(4)[x,y]= find([10 20;30 40]>=[40 30;20 10])

x是返回滿足條件的元素所在行

y是返回滿足條件的元素所在列

結果是

 

 

(5)linspace(3,4,5)

以3開始,以4結尾,分成5

 

(6)fun='abs(x)',x=-2,eval(fun),double(fun)

結果為:

 

eval函數將括號內的字符串視為語句並運行

double函數將字符串中每個字符的ASCII碼返回

 

(7)本金k以每年n次,每次p%的增值率增加,當增加到rk時所花費的時間為

T=lnr/nln(1+0.01p), 用MATLAB表達式寫出該公式並用下列數據計算:r=2,p=0.5,n=12.

 

 

(8)已知函數f(x)=x4 -2x 在(-2,2)內有兩個根。取步長h=0.05,通過計算函數值求得函數的最小值點和兩個根的近似解。(求近似根等價於求函數絕對值的最小值點)

第一種解法:

最小值:

x=-2:0.05:2;

f=x.^4-2.^x;

[fmin,min_index]=min(f)  %fmin:最小值;min_index最小值點編址

x(min_index)  %最小值點

 

近似解:

[f1,x1_index]=min(abs(f))  %求近似根

x(x1_index)

x(x1_index)=[];  f=x.^4-2.^x;  %刪去絕對值最小的點以求函數絕對值次小的點

[f2,x2_index]=min(abs(f))   %求另一近似根

x(x2_index)

 

第二種解法:

clear all;

fun=inline(‘x.^4-2.^x’,’x’);

[x,f]=fminbnd(fun,-2,2);   %求最小值

%求零點

fzero(fun,[-2,0]);

fzero(fun,[0,2]);

 

 

 

PS:

iline函數用於定義函數

         變量名=inline(‘matlab有效表達式’,’變量1’,’變量2’……)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM