C語言編寫貝塞爾函數(shù) 貝塞爾函數(shù)表 怎么查找

VC編寫貝塞爾函數(shù),現(xiàn)在做一個小程序,需要用到matlab中的besselj(nu,Z)這個函數(shù),即貝塞爾函數(shù),怎么辦?

不用混編,直接用_jn。

橋西網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)成立于2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)

double _jn( int n, double x );

這是Help:

_j0, _j1, _jn

These routines return Bessel functions of the first kind: orders 0, 1, and n, respectively.

Example

#include math.h

#include stdio.h

int main( void )

{

double x = 2.387;

int n = 3, c;

printf( "Bessel functions for x = %f:\n", x );

printf( " Kind Order Function Result\n\n" );

printf( " First 0 _j0( x ) %f\n", _j0( x ) );

printf( " First 1 _j1( x ) %f\n", _j1( x ) );

for( c = 2; c 5; c++ )

printf( " First %d _jn( %d, x ) %f\n", c, c, _jn( c, x ) );

printf( " Second 0 _y0( x ) %f\n", _y0( x ) );

printf( " Second 1 _y1( x ) %f\n", _y1( x ) );

for( c = 2; c 5; c++ )

printf( " Second %d _yn( %d, x ) %f\n", c, c, _yn( c, x ) );

}

VC++對話框上繪制貝塞爾曲線,求高人解答這個函數(shù)用的是什么方法畫的,完全搞不懂,就知道是遞歸。。。

SetPixel:在指定位置繪制一個1單位像素的點;

只有當p[n].x?在?p[0].x一個像素范圍內(nèi)時,用?p[0].x繪制,y同理;

不在此像素范圍時,取最末尾兩點中點再判斷,成立則畫點,否則繼續(xù)計算;

如此畫出曲線即為貝塞爾曲線;

說的比較減省,但大體方法是這樣的;

你再鉆鉆吧

如何用C語言實現(xiàn)hankel函數(shù)

MATLAB提供了計算貝塞爾函數(shù)的函數(shù),具體包括:

besselj - 第一類貝塞爾函數(shù),或簡稱貝塞爾函數(shù);

bessely - 第二類貝塞爾函數(shù),又稱諾伊曼函數(shù)(Neumann function);

besseli - 第一類修正貝塞爾函數(shù);

besselk - 第二類修正貝塞爾函數(shù);

besselh - 第三類貝塞爾函數(shù),又稱漢克爾函數(shù)(Hankel function).

這幾個函數(shù)的調(diào)用語法基本相同,例如

J = besselj(nu,Z)

J = besselj(nu,Z,1)

[J,ierr] = besselj(nu,Z)

其中,nu為貝塞爾函數(shù)的階數(shù),Z為函數(shù)自變量.階數(shù)必須為實數(shù),但Z可以是復數(shù).

值得一提的是,上述函數(shù)是MATLAB基本模塊(也就是說不需要任何附加的工具箱)提供的特殊函數(shù),采用數(shù)值方法計算;而符號數(shù)學工具箱則提供了第一和第二類的4個貝塞爾函數(shù),名稱和調(diào)用方式都與MATLAB基本系統(tǒng)的4個函數(shù)完全一致,但支持微分、積分等符號運算.

實用軟件解析(選擇一款實用軟件,分析其作用、用法,寫一份簡明教程。)

數(shù)學建模和數(shù)學分析是工科類專業(yè)學生學習的基礎(chǔ),同時也是工程設(shè)計中的首要工作,隨著現(xiàn)代系統(tǒng)的大規(guī)模發(fā)展趨勢,所需的數(shù)學運算日益復雜,特別是對于矩陣運算的要求逐漸增多,這些工作已經(jīng)難以以手工完成,因此,隨著科學技術(shù)的前進以及計算機技術(shù)的日益完善,一些便于實現(xiàn)的仿真應(yīng)用軟件逐步在科技領(lǐng)域占了重要的地位。仿真軟件不同于編程軟件,作為一種分析工具,它們在人機交互式方面有著極大的優(yōu)越性,人們可以不必對編程所用語言下很大的工夫去學習它,從而可以節(jié)省大量的時間用于科學研究,提高了工作進程和效率。

MATLAB軟件包最早由美國Mathwork公司于1967年推出,是“Matrix Laboratory”的縮寫,早期是為了實現(xiàn)一些矩陣運算;而隨著這種軟件的逐步發(fā)展,它以計算及繪圖功能強大的優(yōu)勢逐漸滲入到了各個工程領(lǐng)域,比如數(shù)學、物理、力學、信號分析以及數(shù)字信號處理等,目前已是深受工程師們喜愛的一種分析工具,目前該軟件已經(jīng)發(fā)展到了Matlab7.0版本。Matlab大大降低了對使用者數(shù)學基礎(chǔ)和計算機語言知識方面的要求,而且編程效率較高,還可以直接在計算機上輸出結(jié)果和精美的圖形。

9.1MATLAB語言概述

9.1.1 Matlab語言的特點

1. 編程效率高

作為一種面向工程的高級語言,Matlab允許用數(shù)學形式的語言來編寫程序,這種編程語言和其它諸如C、Fortran等語言相比,其語言格式更接近于我們平時的書寫習慣,因此,Matlab又被稱為紙式算法語言。由于其編寫程序簡單,因此編程效率高,易學易懂,初學者在幾小時之內(nèi)便可以達到簡單操作的程度。

另外在Matlab中還可以調(diào)用C和Fortran子程序,而且調(diào)用格式非常簡單。

2. 采用交互式人機界面,用戶使用方便

Matlab語言為解釋型操作,人們可以在每條指令之后馬上得到該指令執(zhí)行的結(jié)果;同時在執(zhí)行的過程中如發(fā)現(xiàn)指令有錯,在屏幕上馬上會出現(xiàn)出錯提示。該語言提供了豐富的在線幫助功能,想了解指令或操作的格式、功能等,只要在窗口輸入‘HELP 指令’,該指令的格式、功能等便能馬上在屏幕上顯示出來。

3. 語句簡單,涵蓋豐富

Matlab語言中有豐富庫函數(shù)功能,這些函數(shù)功能和C語言中的函數(shù)一樣使用方便,而且Matlab的函數(shù)調(diào)用起來要更方便,更接近于生活語言。這些函數(shù)包括常用的數(shù)學計算,繪圖以及一些擴展工具箱。

4. 具有多個功能強大的應(yīng)用工具箱

Matlab中包括了一些擴展的函數(shù)功能,一般稱為工具箱,這些工具箱實際上是一些功能函數(shù)集,每一個工具箱適用于各自不同的科學分析領(lǐng)域。現(xiàn)在Matlab中已有系統(tǒng)分析、信號處理、圖象處理、DSP等多個工具箱,而且Matlab所包括的工具箱還在不斷地被擴展。

5. 方便的計算和繪圖功能

Matlab中的很多運算符不僅可以用于數(shù)值計算,而且有很多運算符只要增加一個‘’便可以用于矩陣運算,另外在Matlab中還給出了適用于不同領(lǐng)域的特殊函數(shù),使得一些諸如卷積等的復雜運算也可以很方便的得到解決;Matlab的繪圖函數(shù)十分豐富,用適用于不同坐標系的繪圖語句,還可方便地在所繪圖形上標注橫、縱坐標變量、圖形名稱等。另外,在調(diào)用繪圖語句時,只需改變函數(shù)變量,就可以繪出不同顏色、不同風格的線或圖。

9.1.2 Matlab命令的結(jié)構(gòu)

MATLAB語言的典型結(jié)構(gòu)為:

MATLAB語言=窗口命令+M文件

Matlab的命令窗口就是其工作空間,也是Matlab運行的屏幕環(huán)境,在這種環(huán)境下輸入的Matlab語句,稱為“窗口命令”。所謂窗口命令,就是在上述環(huán)境下輸入的Matlab語句并直接執(zhí)行它們完成相應(yīng)的運算、繪圖等。

但對于復雜功能,Matlab利用了M文件。Matlab的程序可以向下兼容。

M文件由一系列Matlab語句組成,在Matlab的編輯窗口完成輸入。它既可以是一系列窗口命令,又可以是由各種控制語句和說明語句構(gòu)成的函數(shù)。

9.1.3 Matlab的庫函數(shù)

庫函數(shù)是系統(tǒng)根據(jù)需要編制好了,提供用戶使用的函數(shù),用戶使用它們時,只要寫出函數(shù)名,調(diào)整函數(shù)參量,無須再編寫該函數(shù)的程序。

各種不同版本的Matlab都提供了一批庫函數(shù),但其提供的庫函數(shù)的數(shù)目不同,函數(shù)名和函數(shù)功能也不完全一樣。

常用的庫函數(shù)包括一些基本數(shù)學函數(shù)、字符與字符串函數(shù)、輸入輸出函數(shù)等

除了基本庫函數(shù)外,不同版本的Matlab還增加了不同的有專門功能的功能庫函數(shù),也稱為工具箱,例如信號處理工具箱、控制系統(tǒng)工具箱等。

9.1.4 Matlab命令的執(zhí)行

一般常用的有兩個窗口,“命令窗口”和“調(diào)試窗口”,用戶可以在“調(diào)試窗口”中輸入自己編制的程序以及對程序進行修改和調(diào)試。程序輸入后應(yīng)該進行存盤操作,文件名按規(guī)定選擇,開頭必須為字母,長度不能超過19個字符,文件名前19個字符相同的文件按同一文件處理;在“命令窗口”中用戶可以執(zhí)行Matlab命令或?qū)⒂脩艟幹频奈募悦钚问皆诮缑嫔线\行。

執(zhí)行M文件的方法有兩個,一是直接在調(diào)試窗口中利用功能菜單的調(diào)試命令完成。;二是將在“調(diào)試窗口”中存好的M文件的文件名在“命令窗口”中輸入后按回車即可

9.1.5 數(shù)據(jù)的輸入和結(jié)果輸出

Matlab的文件格式為固定格式,由于其數(shù)據(jù)輸入極為簡單,因而對少量的數(shù)據(jù)輸入,不需要花費很多的時間。

Matlab的結(jié)果輸出有數(shù)據(jù)輸出(包括表達式)和圖形輸出兩種,數(shù)據(jù)結(jié)果會直接輸出到命令窗口中,圖形則在專門的圖形窗口中顯示。

9.1.6 環(huán)境參數(shù)

操作系統(tǒng)中的PATH是很常見的,MATLABPATH也是Matlab中很重要的環(huán)境參數(shù),設(shè)置好適當?shù)腗ATLABPATH以后,Matlab可以方便地調(diào)用任何地方的M文件和運行可執(zhí)行文件。

如果在Matlab中輸入一個名字,例如abc,則Matlab會按以下順序做

1. 看abc是否為工作空間中的變量

2. 檢查abc是否是一個內(nèi)部變量

3. 在當前目錄中尋找abc.MEX或abc.M文件,假若兩個文件同時存在,則abc.MEX優(yōu)先考慮。

4. 根據(jù)環(huán)境參數(shù)MATLABPATH指定的搜索路徑來尋找包含abc.MEX或abc.M的目錄

MATLABPATH已經(jīng)在Matlab進行安裝時自動設(shè)置好,它包括了除Matlab的工作目錄(MATLAB/BIN)之外的所有其他Matlab的子目錄。

用戶也可以增加或修改MATLABPATH的內(nèi)容來增加或修改搜索路徑,以便建立一些特殊的、專用的文件庫,修改MATLABPATH可以用Matlab的PATH命令,但是這種修改不能被保存下來,在退出Matlab后就自動取消,要保持的MATLABPATH設(shè)置可以通過編輯的啟動控制文件—MATLABC.M來實現(xiàn)。

9.1.7 命令與文件的編輯和建立

1. 命令行的編輯

鼠標和鍵盤上的箭頭等可以幫助修改輸入的錯誤命令和重新顯示前面輸入過的命令行。例如準備輸入:

y=square(pi*x);

而誤將square拼寫成了squae,MATLAB將返回出錯信息:

???Undefined function or variable squae

其中???是出錯信息的提示符,說明輸入有MATLAB不能識別的命令。此時只須按上下箭頭,剛才輸入的命令即可重新顯示在屏幕上。這時利用鼠標或鍵盤,將光標置于e的位置,再輸入字符r即可。回車后,屏幕將給出命令執(zhí)行的結(jié)果。先前輸入的命令存放在內(nèi)存中。由于內(nèi)存緩沖區(qū)的大小有限,只能容納最后輸入的一定量的命令行,因而可重新調(diào)用的也是后面輸入的一定數(shù)據(jù)的命令行。下表9-1是一些編輯鍵及其功能:

表9-1 MATLAB的編輯鍵及功能

命令行編輯和重新調(diào)出鍵

↑ 重新調(diào)出前一命令行

↓ 重新調(diào)出后一命令行

← 光標左移一個字符

→ 光標右移一個字符

ctrl+← 光標左移一個字

ctrl+→ 光標右移一個字

Home 光標移到行首

End 光標移到行尾

Delete 刪除光標所在位置的字符

Backspace 刪除光標所在位置左邊的一個字符

若在提示符下輸入一些字符,則↑鍵將重新調(diào)出以這些字符為開頭的命令行。

這里沒有插入和改寫的轉(zhuǎn)換操作,因為光標所在處總是執(zhí)行插入的功能。

如果使用鼠標,會使這些操作更為方便。把鼠標放到光標移到位置,并定位即完成光標移動。利用鼠標,還可以方便地完成字符串的選擇、復制和刪除。

2. 文件的編輯與建立

一般我們常用的建立M文件的途徑是利用Matlab提供的M文件窗口。

①建立新的M文件

圖9-1 Matlab命令窗口

選擇Matlab命令窗口中的菜單File—New—M-File菜單,如圖9-1所示,即可出現(xiàn)文件調(diào)試窗口,如圖9-2所示,在此窗口中將用戶程序輸入,

圖9-2Matlab調(diào)試窗口

退出該窗口時應(yīng)存盤,文件名的命名按前所述,其擴展名必須為.M。

②編輯已有的文件

選擇Matlab命令窗口中的菜單File—Open命令,出現(xiàn)文件選擇窗口,選擇所需文件即可。

9.2 MATLAB的基本語法

9.2.1基礎(chǔ)知識

1. 語句和變量

Matlab語句的通常形式為:

變量=表達式

簡單的形式為:表達式

表達式由操作符或其他字符,函數(shù)和變量名組成,表達式的結(jié)果為一個矩陣,顯示在屏幕上,同時輸送到一個變量中并存放于工作空間中以備調(diào)用。如果變量名和“=”省略,則ans變量將自動建立,例如輸入:1900/81

得到輸出結(jié)果:

ans=

23.4568

如果在語句的末尾是分號“;”,則說明除了這一條命令外還有下一條命令等待輸入,Matlab這時將不給出中間運行結(jié)果,當所有命令輸入完畢后,直接打回車鍵,則Matlab將給出最終的運行結(jié)果。

如果一條表達式很長。一行放不下則鍵入“…”后回車,即可在下一行繼續(xù)輸入。注意“…”前要有空格。

變量和函數(shù)名由字母或字母加數(shù)字組成,但最多不能超過19個字符,否則只有前19個字符被接受。

Matlab的變量區(qū)分字母大小寫,函數(shù)名則必須用小寫字母,否則會被系統(tǒng)認為是未定義函數(shù),也可以用casesen命令使Matlab不區(qū)分大小寫。

2. 數(shù)和算術(shù)表達式

慣用的十進制符號和小數(shù)點、負號等,在Matlab中可以同樣使用。表示10的冪次要用符號e或E。

在計算中使用IEEE算法精確度是eps,且數(shù)值允許在10-308-10308間16位長的十進制數(shù)。

Matlab的算術(shù)運算符如下表9-2所示:

表9-2 Matlab的算術(shù)運算符

+ 加

- 減

* 乘

/ 右除

\ 左除

^ 冪

對于矩陣來說,這里左除和右除表示兩種不同的除數(shù)矩陣和被除數(shù)矩陣的關(guān)系。對于標量,兩種除法運算的結(jié)果相同。

3. 輸出格式

任何Matlab語句的執(zhí)行結(jié)果都可以在屏幕上顯示,同時賦值給指定變量時賦值給ans,數(shù)字顯示格式可由format命令來控制。format只影響結(jié)果的顯示,不影響其計算與存儲。Matlab總是以雙精度執(zhí)行所有的運算。

1. Help命令

Help命令很有用,它為Matlab絕大多數(shù)命令提供了聯(lián)機幫助信息。

Help除了可以以菜單形式提供幫助外,還可以在命令窗口輸入“Help”命令來取得信息。

輸入help lsim將得到特征函數(shù)lsim的信息。如圖9-3所示:

圖9-3 help命令的使用

輸入help [ 將顯示如何使用方括號輸入矩陣。

9.2.2向量

1. 產(chǎn)生向量

在Matlab中“:”是一個重要的字符,如產(chǎn)生一個1-5單位增量的行向量:在命令窗口中輸入

x=1:5

回車后得到結(jié)果:

x=

1 2 3 4 5

也可以產(chǎn)生一個單位增量小于1的行向量,方法是把增量放在起始和結(jié)尾量的中間,如:

t=0:0.2:1

在命令窗口中輸入后回車將得到以下結(jié)果:

t =

0 0.2000 0.4000 0.6000 0.8000 1.0000

“:”也可以用來產(chǎn)生簡易的表格。為了產(chǎn)生縱向表格形式,首先可形成行向量,而后轉(zhuǎn)置得到,即可與另一列向量合成兩列的一個矩陣,如:

在MATLAB命令窗口中輸入如下語句:

t=(0:0.1:1)’;

y1=exp(-t);

[t y1]

命令窗口中將會顯示結(jié)果如下:

ans =

0 1.0000

0.1000 0.9048

0.2000 0.8187

0.3000 0.7408

0.4000 0.6703

0.5000 0.6065

0.6000 0.5488

0.7000 0.4966

0.8000 0.4493

0.9000 0.4066

1.0 0.3679

由結(jié)果可以看到,簡單的命令語句便可以生成一個十一行兩列的矩陣。

2. 下標

單個的矩陣元素可在括號中用下標來表達。例如已知:

A=

1 2 3

4 5 6

7 8 9

其中元素A(3,3)=9,A(1,2)=2等。如用語句A(3,2)=A(1,1)+A(2,1),則產(chǎn)生的新矩陣為:

A=

1 2 3

4 5 6

7 5 9

下標也可以是一個向量。例如若x和v是向量,則x(v)也是一個向量;[x(v(1)) x(v(2))…x(v(n))]。對于矩陣來說,向量下標可以將矩陣中鄰近或不鄰近元素構(gòu)成一新的子矩陣,假設(shè)A是一個10*10的矩陣,則A(1:5,3)指A中由前五行對應(yīng)第三列元素組成的5*1子矩陣。

又如A(1:5,7:10)是前5行對應(yīng)最后四列組成的5*4子矩陣。使用“:”代替下標,可以表示所有的行或列。如:A(:,3)代表第三列元素組成的字矩陣,A(1:5,:)代表由前5行所有元素組成的子矩陣。對于子矩陣的賦值語句,“:”有更明顯的優(yōu)越性。如A(:,[3,5,10])=B(:,1:3)表示將矩陣的前三列,賦值給矩陣的第三、五、十列。

9.2.3數(shù)組運算

數(shù)組和矩陣是兩個完全不同的概念,雖然在Matlab中它們在形式上有很多的一致性,但它們實際上遵循著不同的運算規(guī)則。Matlab數(shù)組運算符由矩陣運算符前面加一個“.”來表示,如“.*”“./”等。

9.2.4 數(shù)學函數(shù)

一組基本函數(shù)作用在一個數(shù)組上,如

A=[1 2 3;4 5 6]

B=fix(pi* A)

C=cos(pi*B)

運算將按函數(shù)分別作用于數(shù)組的每一個元素進行,其結(jié)果為:

A =

1 2 3

4 5 6

B =

3 6 9

12 15 18

C =

-1 1 -1

1 -1 1

表9-3是Matlab所提供的數(shù)學函數(shù)主要有:

表9-3 Matlab的主要數(shù)學函數(shù)

三角函數(shù)

sin 正弦

cos 余弦

tan 正切

asin 反正弦

acos 反余弦

atan 反正切

atan2 第四象限的反正切

sinh 雙曲正弦

cosh 雙曲余弦

tanh 雙曲正切

asinh 反雙曲正弦

acosh 反雙曲余弦

atanh 反雙曲正切

另外還有一些以此為基礎(chǔ)的基本數(shù)學函數(shù)如表9-4所示。

表9-4 Matlab的基本數(shù)學函數(shù)

基本數(shù)學函數(shù)

abs 絕對值或復數(shù)模

angle 相角

sqrt 開平方

real 實部

imag 虛部

conj 復數(shù)共軛

round 四舍五入到最近的整數(shù)

fix 朝零方向取整

floor 朝負無窮方向取整

ceil 朝正無窮方向取整

sign 正負符號函數(shù)

rem 除后余數(shù)

exp 以e為底的指數(shù)

log 自然對數(shù)

log10 以10為底的對數(shù)

以及一些特殊的數(shù)學函數(shù)如表9-5:

表9-5 Matlab的特殊函數(shù)

特殊函數(shù)

bassel 貝塞爾函數(shù)

gamma 完整和非完整的γ函數(shù)

rat 有理逼近

ert 誤差函數(shù)

invert 逆誤差函數(shù)

ellipk 第一類完整橢圓積分

ellipj 雅可比橢圓函數(shù)

以及在此基礎(chǔ)上擴充的特殊數(shù)學函數(shù)。

9.3 繪圖

在Matlab中把數(shù)據(jù)繪成圖形的命令有多種。以下表9-6列出了這些命令:

表9-6 Matlab的主要繪圖命令

繪圖命令

plot 線性X—Y坐標圖

loglog 雙對數(shù)坐標圖

semilogx X軸對數(shù)半對數(shù)坐標圖

semilogy Y軸對數(shù)半對數(shù)坐標圖

polar 極坐標圖

mesh 三維消隱圖

contour 等高線圖

bar 條形圖

stairs 階梯圖

除了可以在屏幕上顯示圖形外,還可以對屏幕上已有的圖形加注釋、題頭或坐標網(wǎng)格。主要命令如表9-7所示:

表9-7 Matlab的主要圖形注解函數(shù)命令

圖形加注

title 標題頭

xlabel X軸標注

ylabel Y軸標注

text 任意定位的標注

gtext 鼠標定位標注

grid 網(wǎng)格

關(guān)于坐標軸尺寸的選擇和圖形處理等控制命令如下表9-8所示:

表9-8 Matlab的主要圖形控制命令

圖形控制命令

axis 人工選擇坐標軸尺寸

clr 清圖形窗口

ginput 利用鼠標的十字準線輸入

hold 保持圖形

shg 顯示圖形窗口

subplot 將圖形窗口分成N塊子窗

還有很多此類命令,在以后的學習中大家可以逐步掌握。

9.3.1X—Y繪圖

plot命令繪制坐標圖,loglog命令繪制全對數(shù)坐標圖,semilogx和semilogy命令繪制半對數(shù)坐標圖,polar命令繪制極坐標圖。具體命令的格式及使用方法可以利用help在線幫助詳細了解。

1. 基本形式

如果y是一個向量,那么繪制一個y元素和y元素排列序號之間關(guān)系的線性坐標圖。例如要畫y元素的序號1,2,3,4,5,6,7和對應(yīng)的y元素值分別為0,0.48,0.84,1,0.91,0.6,0.14的圖形,則輸入命令:

y=[0 0.48 0.84 1 0.91 0.6 0.14];

plot(y)

則結(jié)果如下圖9-4所示:

圖9-4 曲線波形圖

圖中坐標軸是軟件自動給出的,也可任意對圖形加注,當輸入以下命令:

title(’my first plot’); % 輸入題頭

xlabel(’x’); % 輸入x軸標注

ylabel(‘y’); % 輸入y軸標注

grid % 加網(wǎng)格

則圖形顯示如下圖9-5所示:(注意x和y應(yīng)是同樣長度的向量)

圖9-5 選定坐標的波形圖

9.3.3圖線形式和顏色

1. 形式

如果不使用缺省條件,可以選擇不同的線條或點形式作圖,對應(yīng)符號及效果如表9-9所示:

表9-9 繪圖曲線格式及命令

線方式

點方式

實線 -

虛線 ……

冒號線 :

點劃線 –?–?

點 .

加號 +

星 *

小圓 ○

x形式 x

2. 顏色

命令及效果如表9-10所示:

表9-10 圖形顏色命令

顏色

黃 y

洋紅 m

青 c

紅 r

綠 g

藍 b

白 w

黑 k

9.4 MATLAB 使用簡介

首先在PC機上安裝Matlab,不同版本的Matlab需要不同的系統(tǒng)支持;當機器上裝載了Matlab軟件包后,用戶就可以使用了。

下面以一個具體的小例子簡要介紹如何使用Matlab軟件包來實現(xiàn)一些計算及繪圖功能。使用中我們采用了Matlab6.5版本。

工程中經(jīng)常會遇到曲線擬合的問題,當實驗測定了發(fā)生事件的一組數(shù)據(jù)后,根據(jù)數(shù)據(jù)擬合出一條曲線,從而對事件發(fā)生的將來做出預(yù)測或在后續(xù)的系統(tǒng)分析中進行理論研究。在這里我們不關(guān)心曲線擬合的具體算法,只是來熟悉一下Matlab的各個窗口及命令。

實際中,一般的電信號以時間作為自變量,測定數(shù)據(jù)時可以以等時間間隔為測量依據(jù),假設(shè)我們現(xiàn)在有這樣的一組數(shù)據(jù):[1,2],[1.5,3],[2,4],[2.5,3.5],[3,5],[3.5,4],[4,6],[4.5,6.6],[5,7.2],[5.5,8],要求以這組數(shù)據(jù)擬合出一條曲線。

進入MATLAB后,我們首先看到的是它的主界面——命令窗口,如圖9-6所示

圖9-6 Matlab命令窗口

在命令窗口中我們可以直接輸入如下命令:

t=[1:0.5:5.5]; %定義自變量范圍

y=[2,3,3.5,3.8,5,4.9,6,6.6,7.2,8]; %定義函數(shù)值

qx1=polyfit(t,y,1) %對數(shù)據(jù)做一次擬合

qx2=polyfit(t,y,5) %對數(shù)據(jù)做五次擬合

t1=1:0.05:5.5; %確定作圖橫坐標范圍

y1=polyval(qx1,t1); %形成曲線數(shù)學模型

y2=polyval(qx2,t1);

plot(t,y,'*',t1,y1,':',t1,y2) %作圖

即可得到這些命令的執(zhí)行結(jié)果,它以圖形的形式給出,如圖9-7所示,從圖中可以看到,蘭色的‘*’是數(shù)據(jù)點,綠色的虛線是一次擬合曲線,而紅色的實線則是三次擬合曲線。

圖9-7 曲線擬合圖

我們可以多次反復進行不同次數(shù)的曲線擬合,最終可以得到一條和數(shù)據(jù)點最接近的曲線。這樣的反復工作在Matlab中很容易就可以實現(xiàn),只要改變命令中的‘polyfit’函數(shù)的參數(shù)就可以得到。

由于我們不是主要對軟件做詳細的介紹,所以在后面內(nèi)容中有一些命令并沒有做很細致的描述,大家可以充分利用Matlab的在線幫助功能對這些命令做一些深入的認識,例如,在學習過程中我們?nèi)舨涣私狻畃olyval’函數(shù)的作用,就可以在Matlab的命令窗口中輸入

helppolyval

然后回車,便可看到如下窗口圖9-8,從而可以很方便地了解和熟悉該函數(shù)的作用和調(diào)用格式

圖9-8 Matlab幫助窗口

從窗口信息中我們可以知道,‘polyval’函數(shù)的功能是構(gòu)建數(shù)據(jù)的多項式數(shù)學模型。在圖9-6中我們可以看到有如下的輸出信息,它即我們所構(gòu)造的兩個多項式的系數(shù)矩陣

qx1 =

1.2776 0.8479

qx2 =

0.0160 -0.2798 1.8717 -5.8876 9.7583 -3.4642

通過調(diào)用函數(shù)‘polyval’我們即可得到兩個多項式所表示的曲線方程:

值得注意的是,如果需要編寫復雜一些或經(jīng)常需要進行參數(shù)改動的程序,則最好在Matlab的調(diào)試窗口中進行編程,然后形成M-文件,過程如下:

1. 從命令窗口進入調(diào)試窗口

2. 在調(diào)試窗口中輸入以上語句

3. 調(diào)試程序,獲得所需要的信息

調(diào)試程序有兩種方法,一是在調(diào)試窗口中直接進行,如圖9-9所示,在調(diào)試窗口中選擇命令菜單Debug—Run命令,即可得到調(diào)試結(jié)果;二是在調(diào)試窗口完成程序的編制后存盤(例如文件名為qx.m),推出調(diào)試窗口,返回到命令窗口中,在命令窗口中鍵入qx然后回車,也可以馬上得到調(diào)試結(jié)果。

圖9-9 調(diào)試窗口中的程序調(diào)試

9.5 交互式人機界面介紹

利用編程的方法可以方便地實現(xiàn)一些分析的仿真,但是這種仿真設(shè)計的方法還是需要掌握一定的編程語言,怎樣脫離開編程而實現(xiàn)更簡捷的EDA設(shè)計是所有EDA設(shè)計軟件發(fā)展的一個思路,在MATLAB軟件包中還提供有一些交互式的圖形用戶界面,用戶可以直觀地利用鼠標直接在屏幕上控制圖形就可以完成一些設(shè)計和分析任務(wù)。

在MATLAB數(shù)字信號處理工具箱中,用戶便可以利用這種圖形形式的人機界面在窗口中利用鼠標而完成信號的輸入、觀察和測量;對信號進行頻譜分析,了解信號的頻率特征以及實現(xiàn)數(shù)字濾波器的設(shè)計等。在這里,用戶不必去了解MATLAB中眾多的函數(shù)功能及語法規(guī)則就可以完成大部分的信號及系統(tǒng)的分析工作。

下面簡要介紹這種界面的基本組成。

在MATLAB命令窗口中,鍵入‘sptool’命令,一個sptool窗口便會馬上彈出,如圖9-10所示。第一次打開是,窗口的名稱是一個未定義的sptool窗(untitled)。用戶在使用后可以對窗口進行命名,從而可以在下次使用時進行打開調(diào)用。

圖9-10 SPTOOL窗口

在sptool窗口中,用戶可以可視化地實現(xiàn)信號分析及處理的全部工作。窗口有信號(SIGNALS)、濾波器(FILTER)和頻譜(SPECTRA)三個欄目,它們分別記錄了用戶所用過的信號、濾波器和頻譜。

Sptool窗口的主要命令菜單有文件(FILE)和編輯(EDIT)兩個:

1. File菜單

l Open session 打開已經(jīng)存在的擴展名為.spt的SPTool窗口;

l Import 鼠標選擇該項后會彈出一個對話框,用戶根據(jù)提示可以從磁盤或MATLAB工作空間向SPTool窗口輸入信號、濾波器或頻譜,它們文件名的后綴必須是 .MAT文件形式;

l Export 向MATLAB工作空間或磁盤輸出信號、濾波器或頻譜的結(jié)構(gòu)參數(shù)

l Save Session ,Save Session As 將所命名的SPTool窗口以擴展名為 .spt的MAT文件存放

l Perferences 設(shè)置信號處理交互式用戶界面工具的性能

l Close 關(guān)閉SPTool窗口

在彈出的SPTool窗口下方還有四種命令:

Signals 欄下的View命令用來激活信號瀏覽窗

Filter 欄下有四個命令按鈕

l View命令用來激活濾波器瀏覽窗

l New Design命令用來激活濾波器設(shè)計窗,從而可以設(shè)計新的濾波器

l Edit Design命令用來激活濾波器設(shè)計窗口并對所設(shè)計的濾波器進行編輯,可以任意選擇濾波器的某些參數(shù)

l Apply命令用來實現(xiàn)新設(shè)計的應(yīng)用

Spectra 欄下有三條命令:

l View 用來激活頻譜觀察窗口,觀察所選擇的信號頻率特性

l Create 命令用來激活頻譜觀察窗,產(chǎn)生所選定信號的頻譜

l Update 用于更新已選定信號頻譜

2. Edit菜單

l Duplicate 用于復制所選定的參量

l Name 用于對所選定的參量命名

l Clear 清除所選定的參量

l Sampling Frequency 給選定的信號或濾波器設(shè)置采樣頻率

3. Window菜單用于顯示當前所激活的窗口名稱

4. Help菜單提供在線幫助

我們可以在SPTool窗的Signals欄下輸入所要觀測的信號,在Filter欄下進行數(shù)字濾波的設(shè)計,而在Spectra欄中對選定信號進行頻譜分析,有興趣的可以自己進一步深入學習。

網(wǎng)站名稱:C語言編寫貝塞爾函數(shù) 貝塞爾函數(shù)表 怎么查找
轉(zhuǎn)載來于:http://muchs.cn/article6/ddcghig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、企業(yè)建站、響應(yīng)式網(wǎng)站、微信小程序、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站導航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)