MATLAB總結(jié)與上機(jī)指南_第1頁(yè)
MATLAB總結(jié)與上機(jī)指南_第2頁(yè)
MATLAB總結(jié)與上機(jī)指南_第3頁(yè)
MATLAB總結(jié)與上機(jī)指南_第4頁(yè)
MATLAB總結(jié)與上機(jī)指南_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余11頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

MATLAB總結(jié)與上機(jī)指南MATLAB總結(jié)與上機(jī)指南

化工計(jì)算中常用的MATLAB命令總結(jié)

化學(xué)工程中的計(jì)算問(wèn)題一般比擬簡(jiǎn)單,其操作的數(shù)據(jù)對(duì)象通常是數(shù)組,詳細(xì)計(jì)算涉及到插值、求積分、參數(shù)擬合、解常微分和偏微分微分方程、解線性和非線性方程等。MATLAB是新一代的科學(xué)計(jì)算語(yǔ)言,在解決上述問(wèn)題上,相對(duì)于FORTRAN、C和BASIC等傳統(tǒng)的計(jì)算語(yǔ)言具有明顯的優(yōu)越性。本文針對(duì)應(yīng)用MATLAB解決化工中的典型問(wèn)題進(jìn)展計(jì)算常用方法和命令做以小結(jié)。1.最小二乘法擬合1.1最小二乘擬合直線

函數(shù)lsline

格式lsline%最小二乘擬合直線h=lsline%h為直線的句柄1.2約束線性最小二乘

有約束線性最小二乘的標(biāo)準(zhǔn)形式為

minx1Cxd222

sub.toAxb

Aeqxbeq

lbxub

其中:C、A、Aeq為矩陣;d、b、beq、lb、ub、x是向量。在MATLAB5.x中,約束線性最小二乘用函數(shù)conls求解。

函數(shù)lsqlin

格式x=lsqlin(C,d,A,b)%求在約束條件Axb下,方程Cx=d的最小二

乘解x。

x=lsqlin(C,d,A,b,Aeq,beq)%Aeq、beq滿意等式約束Aeqxbeq,若沒(méi)有不等式約束,則設(shè)A=[],b=[]。

x=lsqlin(C,d,A,b,Aeq,beq,lb,ub)%lb、ub滿意lbxub,若沒(méi)有等

式約束,則Aeq=[],beq=[]。

x=lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0)%x0為初始解向量,若x沒(méi)有界,則lb=[],ub=[]。

x=lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options)%options為指定優(yōu)化參數(shù)[x,resnorm]=lsqlin(…)%resnorm=norm(C*x-d)^2,即2-范數(shù)。[x,resnorm,residual]=lsqlin(…)%residual=C*x-d,即殘差。

[x,resnorm,residual,exitflag]=lsqlin(…)%exitflag為終止迭代的條件[x,resnorm,residual,exitflag,output]=lsqlin(…)%output表示輸出優(yōu)化

第1頁(yè)共6頁(yè)信息

[x,resnorm,residual,exitflag,output,lambda]=lsqlin(…)%lambda為解x

的Lagrange乘子

1.3非線性最小二乘

非線性最小二乘(非線性數(shù)據(jù)擬合)的標(biāo)準(zhǔn)形式為

minxf(x)f1(x)2f2(x)2fm(x)2L

其中:L為常數(shù)

在MATLAB5.x中,用函數(shù)leastsq解決這類問(wèn)題,在6.0版中使用函數(shù)lsqnonlin。

f1(x)f2(x)設(shè)F(x)fm(x)則目標(biāo)函數(shù)可表達(dá)為minx12F(x)221fi(x)22i其中:x為向量,F(xiàn)(x)為函數(shù)向量。函數(shù)lsqnonlin

格式x=lsqnonlin(fun,x0)%x0為初始解向量;fun為fi(x),i=1,2,…,m,fun返回向量值F,而不是平方和值,平方和隱含在算法中,fun的定義與前面一樣。

lbxubx=lsqnonlin(fun,x0,lb,ub)%lb、ub定義x的下界和上界:。

x=lsqnonlin(fun,x0,lb,ub,options)%options為指定優(yōu)化參數(shù),若x沒(méi)有界,則lb=[],ub=[]。

[x,resnorm]=lsqnonlin(…)%resnorm=sum(fun(x).^2),即解x處函數(shù)值。[x,resnorm,residual]=lsqnonlin(…)%residual=fun(x),即解x處fun的值。[x,resnorm,residual,exitflag]=lsqnonlin(…)%exitflag為終止迭代條件。[x,resnorm,residual,exitflag,output]=lsqnonlin(…)%output輸出優(yōu)化信息。[x,resnorm,residual,exitflag,output,lambda]=lsqnonlin(…)%lambda為

Lagrage乘子。

[x,resnorm,residual,exitflag,output,lambda,jacobian]=lsqnonlin(…)%fun

在解x處的Jacobian矩陣。

第2頁(yè)共6頁(yè)2多項(xiàng)式2.1多項(xiàng)式求值

函數(shù)名稱:polyval

調(diào)用格式:y=polyval(p,x),[y,delta]=polyval(p,x,S)

返回多項(xiàng)式p在x點(diǎn)處的取值。X可以是向量也可以是矩陣。[y,delta]=polyval(p,x,S)同時(shí)還生成誤差估量。2.2多項(xiàng)式求根

函數(shù)名稱:roots

調(diào)用格式:r=roots(c)

返回一個(gè)元素為多項(xiàng)式c的根的列向量。行向量中包含按降冪排列的多項(xiàng)式的系數(shù),假如c中包含n+1個(gè)元素,則多項(xiàng)式的表達(dá)式為:c1sn+…+cns+cn+1。3插值3.1一維插值

函數(shù)名稱:interp1

調(diào)用格式:yi=interp1(x,Y,xi),yi=interp1(x,Y,xi,method)

MATLAB中有兩類一維數(shù)據(jù)插值方法:多項(xiàng)式插值法和基于FFT的插值法。函數(shù)interp1采納多項(xiàng)式插值法,它用多項(xiàng)式擬合所給出的數(shù)據(jù),然后在插值點(diǎn)上依據(jù)多項(xiàng)式算出相應(yīng)的值。調(diào)用格式中,xi為需要插值的位置所組成的向量,yi為依據(jù)插值算法求得的值所組成的向量。x,Y為已知的數(shù)據(jù)點(diǎn)向量。參數(shù)method用于確定詳細(xì)的插值方法,包括:

‘linear’表示采納線性插值方法;‘cubic’表示采納三次插值的方法;‘nearest’表示采納最近點(diǎn)插值法;‘spline’表示用三次樣條插值方法。3.2二維插值

函數(shù)名稱:interp2

調(diào)用格式ZI=interp2(X,Y,Z,XI,YI)

返回矩陣ZI,其元素包含對(duì)應(yīng)于參量XI與YI(可以是向量、或

同型矩陣)的元素,即Zi(i,j)←[Xi(i,j),yi(i,j)]。。

ZI=interp2(Z,XI,YI)

缺省地,X=1:n、Y=1:m,其中[m,n]=size(Z)。再按第一種情形進(jìn)

行計(jì)算。

ZI=interp2(Z,n)

作n次遞歸計(jì)算,在Z的每?jī)蓚€(gè)元素之間插入它們的二維插值,

這樣,Z的階數(shù)將不斷增加。interp2(Z)等價(jià)于interp2(z,1)。

ZI=interp2(X,Y,Z,XI,YI,method)

用指定的算法method計(jì)算二維插值:

’linear’:雙線性插值算法(缺省算法);

第3頁(yè)共6頁(yè)’nearest’:最接近插值;’spline’:三次樣條插值;’cubic’:雙三次插值。

4非線性數(shù)據(jù)(曲線)擬合

非線性曲線擬合是已知輸入向量xdata和輸出向量ydata,并且知道輸入與輸出的函數(shù)關(guān)系為ydata=F(x,xdata),但不知道系數(shù)向量x。今進(jìn)展曲線擬合,求x使得下式成立:

minx1F(x,xdata)ydata2221(F(x,xdatai)ydatai)22i在MATLAB5.x中,使用函數(shù)curvefit解決這類問(wèn)題。函數(shù)lsqcurvefit

格式x=lsqcurvefit(fun,x0,xdata,ydata)

x=lsqcurvefit(fun,x0,xdata,ydata,lb,ub)

x=lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)[x,resnorm]=lsqcurvefit(…)

[x,resnorm,residual]=lsqcurvefit(…)

[x,resnorm,residual,exitflag]=lsqcurvefit(…)

[x,resnorm,residual,exitflag,output]=lsqcurvefit(…)[x,resnorm,residual,exitflag,output,lambda]=lsqcurvefit(…)

[x,resnorm,residual,exitflag,output,lambda,jacobian]=lsqcurvefit(…)

參數(shù)說(shuō)明:

x0為初始解向量;xdata,ydata為滿意關(guān)系ydata=F(x,xdata)的數(shù)據(jù);lb、ub為解向量的下界和上界lbxub,若沒(méi)有指定界,則lb=[],

ub=[];

options為指定的優(yōu)化參數(shù);

fun為擬合函數(shù),其定義方式為:x=lsqcurvefit(@myfun,x0,xdata,ydata),

其中myfun已定義為functionF=myfun(x,xdata)F=…%計(jì)算x處擬合函數(shù)值fun的用法與前面一樣;resnorm=sum((fun(x,xdata)-ydata).^2),即在x處殘差的平方和;residual=fun(x,xdata)-ydata,即在x處的殘差;exitflag為終止迭代的條件;output為輸出的優(yōu)化信息;lambda為解x處的Lagrange乘子;

jacobian為解x處擬合函數(shù)fun的jacobian矩陣。

第4頁(yè)共6頁(yè)5數(shù)值積分

5.1一元函數(shù)的數(shù)值積分

函數(shù)名稱:quad、quadl、quad8

調(diào)用格式q=quad(fun,a,b)%近似地從a到b計(jì)算函數(shù)fun的數(shù)值積分,誤

差為10。給fun輸入向量x,應(yīng)返回向量y,即fun是一單值函數(shù)。q=quad(fun,a,b,tol)%用指定的肯定誤差tol代替缺省誤差。tol越大,函數(shù)計(jì)算的次數(shù)越少,速度越快,但結(jié)果精度變小。

q=quad(fun,a,b,tol,trace,p1,p2,…)%將可選參數(shù)p1,p2,…等傳遞給函數(shù)fun(x,p1,p2,…),再作數(shù)值積分。若tol=[]或trace=[],則用缺省值進(jìn)展計(jì)算。

[q,n]=quad(fun,a,b,…)%同時(shí)返回函數(shù)計(jì)算的次數(shù)n

…=quadl(fun,a,b,…)%用高精度進(jìn)展計(jì)算,效率可能比quad更好?!?quad8(fun,a,b,…)%該命令是將廢棄的命令,用quadl代替。

5.2一元函數(shù)的數(shù)值積分

函數(shù)名稱:dblquad

功能矩形區(qū)域上的二重積分的數(shù)值計(jì)算

調(diào)用格式q=dblquad(fun,xmin,xmax,ymin,ymax)調(diào)用函數(shù)quad在區(qū)域

[xmin,xmax,ymin,ymax]上計(jì)算二元函數(shù)z=f(x,y)的二重積分。輸入向量x,標(biāo)量y,則f(x,y)必需返回一用于積分的向量。

q=dblquad(fun,xmin,xmax,ymin,ymax,tol)用指定的精度tol代替缺省精度10-6,再進(jìn)展計(jì)算。

q=dblquad(fun,xmin,xmax,ymin,ymax,tol,method)用指定的算法

method代替缺省算法quad。method的取值有@quadl或用戶指定的、與命令quad與quadl有一樣調(diào)用次序的函數(shù)句柄。

q=dblquad(fun,xmin,xmax,ymin,ymax,tol,method,p1,p2,…)將可選參數(shù)

p1,p2,..等傳遞給函數(shù)fun(x,y,p1,p2,…)。若tol=[],method=[],則使用缺省精度和算法quad。

6非線性方程組的解

非線性方程組的標(biāo)準(zhǔn)形式為:F(x)=0其中:x為向量,F(xiàn)(x)為函數(shù)向量。函數(shù)fsolve

格式x=fsolve(fun,x0)

用fun定義向量函數(shù),其定義方式為:先定義方程函數(shù)

functionF=myfun(x)。

F=[表達(dá)式1;表達(dá)式2;…表達(dá)式m]

保存為myfun.m,并用下面方式調(diào)用:x=

第5頁(yè)共6頁(yè)

-fsolve(@myfun,x0),x0為初始估量值。

x=fsolve(fun,x0,options)[x,fval]=fsolve(…)

fval=F(x),即函數(shù)值向量[x,fval,exitflag]=fsolve(…)

[x,fval,exitflag,output]=fsolve(…)

[x,fval,exitflag,output,jacobian]=fsolve(…)

jacobian為解x處的Jacobian陣。

其余參數(shù)與前面參數(shù)相像。7常微分方程數(shù)值解

函數(shù)名稱:ode45、ode23、ode113、ode15s、ode23s、ode23t、ode23tb功能常微分方程(ODE)組初值問(wèn)題的數(shù)值解參數(shù)說(shuō)明:

solver為命令ode45、ode23,ode113,ode15s,ode23s,ode23t,ode23tb之一。

Odefun為顯式常微分方程y’=f(t,y),或?yàn)榘换旌暇仃嚨姆匠?/p>

M(t,y)*y’=f(t,y)。命令ode23只能求解常數(shù)混合矩陣的問(wèn)題;命令ode23t與ode15s可以求解奇異矩陣的問(wèn)題。

Tspan積分區(qū)間(即求解區(qū)間)的向量tspan=[t0,tf]。要獲得問(wèn)題在其他指定時(shí)

間點(diǎn)t0,t1,t2,…上的解,則令tspan=[t0,t1,t2,…,tf](要求是單調(diào)的)。

Y0包含初始條件的向量。

Options用命令odeset設(shè)置的可選積分參數(shù)。P1,p2,…傳遞給函數(shù)odefun的可選參數(shù)。調(diào)用格式[T,Y]=solver(odefun,tspan,y0)

在區(qū)間tspan=[t0,tf]上,從t0到tf,用初始條件y0求解顯式微分方程y’=f(t,y)。對(duì)于標(biāo)量t與列向量y,函數(shù)f=odefun(t,y)必需返回一f(t,y)的列向量f。解矩陣Y中的每一行對(duì)應(yīng)于返回的時(shí)間列向量T中的一個(gè)時(shí)間點(diǎn)。要獲得問(wèn)題在其他指定時(shí)間點(diǎn)t0,t1,t2,…上的解,則令tspan=[t0,t1,t2,…,tf](要求是單調(diào)的)。

[T,Y]=solver(odefun,tspan,y0,options)

%用參數(shù)options(用命令odeset生成)設(shè)置的屬性(代替了缺省的積分參數(shù)),再進(jìn)展操作。常用的屬性包括相對(duì)誤差值RelTol(缺省值為1e-3)與肯定誤差向量AbsTol(缺省值為每一元素為1e-6)。

[T,Y]=solver(odefun,tspan,y0,options,p1,p2…)

將參數(shù)p1,p2,p3,..等傳遞給函數(shù)odefun,再進(jìn)展計(jì)算。若沒(méi)有參數(shù)設(shè)置,則令options=[]。

第6頁(yè)共6頁(yè)

擴(kuò)展閱讀:MATLAB應(yīng)用上機(jī)指導(dǎo)書(shū)

《MATLAB應(yīng)用》

上機(jī)指導(dǎo)書(shū)

黑龍江工程學(xué)院測(cè)繪工程系

201*年7月哈爾濱

名目

MATLAB應(yīng)用上機(jī)試驗(yàn)說(shuō)明----------------------------------------------------------------------2試驗(yàn)一MATLAB操作根底、矩陣及其運(yùn)算-----------------------------------------------4試驗(yàn)二MATLAB試驗(yàn)三MATLAB試驗(yàn)四

程序設(shè)計(jì)-------------------------------------------------------------------15文件操作及繪圖、數(shù)據(jù)分析-------------------------------------------18圖形句柄及圖形用戶界面設(shè)計(jì)--------------------------------------------------22

MATLAB應(yīng)用上機(jī)試驗(yàn)說(shuō)明

MATLAB是一種應(yīng)用于科學(xué)計(jì)算領(lǐng)域的高級(jí)語(yǔ)言,MATLAB應(yīng)用是一門實(shí)踐性特別強(qiáng)的課程。要學(xué)好MATLAB應(yīng)用,上機(jī)實(shí)踐是非常重要的環(huán)節(jié),只有通過(guò)大量的上機(jī)試驗(yàn),才能真正把握MATLAB程序設(shè)計(jì)。

一、上機(jī)試驗(yàn)的目的

上機(jī)試驗(yàn)主要是為了驗(yàn)證自己所編寫的程序的正確性,幫忙理解MATLAB的語(yǔ)法規(guī)章,訓(xùn)練對(duì)問(wèn)題的分析及解決、設(shè)計(jì)的力量??偟膩?lái)看,上機(jī)試驗(yàn)的目的有以下幾個(gè)方面:

1.熟識(shí)MATLAB的程序集成環(huán)境。2.把握程序調(diào)試技術(shù)。

3.加深課堂講授和書(shū)本內(nèi)容的理解。

4.通過(guò)上機(jī)編寫和調(diào)試程序,可使學(xué)生真正了解程序在計(jì)算機(jī)中的執(zhí)行過(guò)程以及解決實(shí)際問(wèn)題的過(guò)程,提高學(xué)習(xí)MATLAB應(yīng)用的興趣。

二、上機(jī)試驗(yàn)的根本要求

1.上機(jī)前的預(yù)備工作

要使試驗(yàn)到達(dá)應(yīng)有的效果,在上機(jī)試驗(yàn)之前,必需知道本次試驗(yàn)的任務(wù),依據(jù)試驗(yàn)任務(wù),做好充分預(yù)備工作,只有這樣才能做到目的明確,使試驗(yàn)到達(dá)應(yīng)有的效果。上機(jī)前的預(yù)備工作包括以下幾個(gè)方面:

1)復(fù)習(xí)和把握與本次試驗(yàn)有關(guān)的教學(xué)內(nèi)容。

2)依據(jù)試驗(yàn)的內(nèi)容,對(duì)問(wèn)題進(jìn)展仔細(xì)的分析,搞清晰要解決的問(wèn)題是什么?給定的條件是什么?要求的結(jié)果是什么?

3)依據(jù)應(yīng)用程序的主要功能,考慮通過(guò)什么方法來(lái)實(shí)現(xiàn),關(guān)鍵問(wèn)題是使用什么算法,在紙上編寫好相關(guān)功能的大事代碼。

4)預(yù)習(xí)試驗(yàn)步驟,對(duì)試驗(yàn)步驟中提出的一些問(wèn)題進(jìn)展思索,并給出初步的解決方案。2.上機(jī)試驗(yàn)的過(guò)程

1)啟動(dòng)MATLAB集成環(huán)境。

2)依據(jù)程序功能和事先的預(yù)備,在調(diào)試運(yùn)行之前,首先應(yīng)將工程保存,以防調(diào)試過(guò)程消失死機(jī),而需從頭開(kāi)頭,鋪張時(shí)間。

3)調(diào)試程序,假如消失編譯錯(cuò)誤,依據(jù)程序提示,分析錯(cuò)誤緣由進(jìn)展修改。假如無(wú)語(yǔ)法錯(cuò)誤,使用多組數(shù)據(jù)進(jìn)展測(cè)試,分析其輸出結(jié)果是否與預(yù)期的結(jié)果相符,假如不符,應(yīng)檢查程序有無(wú)寫錯(cuò),算法是否合理,將發(fā)覺(jué)的錯(cuò)誤并逐個(gè)修正,并作記錄。

4)在程序調(diào)試和測(cè)試完畢后,再次保存程序。假如條件允許將程序和運(yùn)行結(jié)果打印在紙上,以備檢查。

5)根據(jù)試驗(yàn)步驟中的要求,對(duì)程序作必要的改動(dòng),或者增加一些功能等。從而進(jìn)一步理解MATLAB的操作。

三、試驗(yàn)報(bào)告的整理與編寫

上機(jī)試驗(yàn)完畢后,編寫試驗(yàn)報(bào)告是軟件工程的要求,也是培育科學(xué)作風(fēng)的重要途徑,試驗(yàn)報(bào)告的主要內(nèi)容包括:

1.試驗(yàn)?zāi)康?/p>

試驗(yàn)作為教學(xué)的一個(gè)重要環(huán)節(jié),其目的在于更深入地理解和把握課程教學(xué)中的有關(guān)根本概念,應(yīng)用根本技術(shù)解決實(shí)際問(wèn)題,從而進(jìn)一步提高分析問(wèn)題和解決問(wèn)題的力量。因此

溫馨提示

  • 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)論