资源描述
Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,按一下以編輯母片標題樣式,按一下以編輯母片,第二層,第三層,第四層,第五層,*,上週上機課題目:數值分析,請利用下列公式算出,f(8.1),、,f(8.3),的近似值,f(x,0,)=1/2h-3f(x,0,)+4f(x,0,+h)-f(x,0,+2h),這裡的,f(x),為,x lnx,Note:注意!乘的運算為*,a=-3*8.1*log(8.1);%-3f(x,0,),b=4*8.2*log(8.2);%4f(x,0,+h),c=-8.3*log(8.3);%-f(x,0,+2h),1/(2*0.1)*(a+b+c)%(1/2h)(a+b+c),ans=,3.09191394208330,Note:,猜猜!1/(2*0.1)與1/2*0.1有差別嗎?,5 0.05,事實上,可以簡化成,a=8.1;b=0.1;,z=1/(2*b)*(-3*a*log(a)+4*(a+b)*log(a+b)-,(a+2*b)*log(a+2*b),z=,3.09191394208330,這樣有個好處:,可以隨意的修改a,b的值來調整z的值,數學軟體簡介 PART IIMatlab 介紹,今天進度:Matlab基本環境操作,重複命令與邏輯命令,M檔案,基本二維空間繪圖,for 迴圈,最簡單的重複命令是for迴圈,其基本形式為:,for 變數=a:b;,運算式;,end,其中變數的值會被依次設定為ab,來執行介於for和end之間的運算式。因此,若無意外情況,運算式執行的次數會等於b-a+1。,例如:,format long%算至小數點下14位數,b=zeros(1,10);%b是一個1x10的零矩陣,for i=1:10;,b(i)=1/(10i);,end,b,0.1 0.01 0.001 0.0001 0.00001 0.000001 0.0000001,0.00000001 0.000000001 0.0000000001,for 迴圈,例如:,for i=1:10;,%i從 1到 10,a=8.1;,h=1/(10i);,%從0.1到0.0000000001,z(i)=1/(2*h)*(-3*a*log(a)+4*(a+h)*,log(a+h)-(a+2*h)*log(a+2*h);,end,z,z=,3.09191394208334 3.09186456879100 3.09186406675011,3.09186406168394 3.09186406113326 3.09186405367257,3.09186402702721 3.09186507507775 3.09186809488438 3.09183789681811,for 迴圈,for迴圈也可以是多層的,下例產生一個6 x 6,的Hilbert矩陣h,其中A,i,j,為:1/(i+j-1),format rat,for i=1:6;,for j=1:6;,h(i,j)=1/(i+j-1);,end,end,1 1/2 1/3 1/4 1/5 1/6,1/2 1/3 1/4 1/5 1/6 1/7,1/3 1/4 1/5 1/6 1/7 1/8,1/4 1/5 1/6 1/7 1/8 1/9,1/5 1/6 1/7 1/8 1/9 1/10,1/6 1/7 1/8 1/9 1/10 1/11,另一個重複命令是while迴圈,基本形式為:,while 條件式;,運算式;,end,也就是說,只要條件是成立,運算式就會一再被執行。右例是產生一數列 x:,1 1/2 1/3 1/4 1/5 1/6,while 迴圈,i=1;,while i,if min(x)0.02;,disp(Very Big!);,%disp印出,else,disp(So tiny!);,end,Very Good!,M檔案,Matlab可以將一連串命令貯存在一個檔案中,以後再將這群指令以你訂的檔案名稱為新指令,集體同時執行。這種可執行的檔案稱為M-files,因為其檔案名稱之字尾均以.m附檔名。,例如;myfirst.m 即表示其檔案名稱為 myfirst,檔案型式為 M-file,你只要將目錄指向存放該檔案之檔案夾,就可在指令窗下打入 myfirst,開始執行該檔內之指令群。,M-檔案類型之檔案純為文字檔,故可在任何文書處理軟體中進行編輯或修改。Matlab也有一個程式編輯器,可以在此編輯器中偵錯(Debug)或編輯,這個編輯器比其他文書處理具有不同的功能。在指令窗中亦可直接打入type之指令,觀察該檔案之內容。,M-files依執行時之實質型式分為兩種,一為敘述檔(script),二為函數檔(function)。敘述檔為一連串之正常指令之組合,故其名稱亦可作為指令在指令窗中直接執行。例如,有一個敘述檔之名稱為 mylove.m,則可在 Matlab 指令窗中直接下mylove這個指令執行這個檔案之內容。,M檔案,敘述檔常用於輸入大量資料,以構成一個新的矩陣,如此可以大大減少輸入時所可能發生之錯誤。設有一個名叫 mydata.m 的資料內容如下:,A=1 2 3;4 5 6A=1 2 3 4 5 6,以 Matlab 鍵入mydata 這個指令則會使上項內容被執行,因此一個以A為名之矩陣即刻產生,將來有用到它的時候,即會跳出來為你效勞。,注意:大寫 A與小寫 a 是不同的名稱。,M檔案,函數檔案與敘述檔主要差別是:開頭一行需有一個函數名稱之宣告以及輸入參數,函數名稱前可以有等號,在此等號之左方為其輸出之參數,方位不能弄錯,通式如下:,輸出參數,=,函數名稱,(,輸入參數,),特別注意的是這些參數變數,無論是輸入或輸出,均可能代表一個數值或一個矩陣。一般以代表一個矩陣為多。在函數檔案中,其所屬之變數均屬區域性的,除非特別另宣告為整體性參數。,M檔案,例如:,function P=prodsqr(A,B)P=A2*B2,此時函數之名稱為,prodsqr,,其輸入參數為,、,。輸出為,。在函數中,、均為區域性函數,只在這個函數執行期間有效,離開這個函數就不認得了。,由於這是一個函數檔,它是不能自己執行的,而且它要能被呼叫,必須在存檔時,以,prodsqr.m,儲存,方能對應主程式的呼叫。,M檔案,基本二維空間繪圖,Matlab不但擅長矩陣相關的數值運算,也適用在各種科學目視表示(,Scientific visualization,)。這裡介紹Matlab基本xy平面及xyz空間的各項繪圖命令,包含一維曲線及二維曲面的繪製、列印及存檔。,plot,是繪製一維曲線的基本函數,但在使用此函數之前,我們需先定義曲線上每一點的x及y座標。,x=linspace(0,2*pi);,%在0到2,間,等分取100個點(它也是預設值),y=sin(x);,%對應的y座標,plot(x,y);,%進行二維作圖,基本二維空間繪圖,x=linspace(0,2*pi);,plot(x,sin(x),x,cos(x);,基本二維空間繪圖,Matlab在畫出多條曲線時,會自動輪換曲線顏色,以利分辨。,plot(x,sin(x),bo,x,cos(x),y+,);,曲線sin(x)藍色(b)及,圓形格式(o),曲線cos(x)黃色(y)及,十字格式(+),基本二維空間繪圖,顏色參數:,黃(y)、黑(k)、白(w)、藍(b)、綠(g)、紅(r),格式參數:,點(.)、圓(o)、x(x)、+(+)、*(*)、實線(-)、點線(:)、點虛線(-.)、虛線(-),基本二維空間繪圖,一般而言,plot會根據所給的座標點來自動決定圖軸的範圍,但也是可以用axis指令來指定,其用法如下:,axis(,x最小,x最大,y最小,y最大,),例如:,axis(-inf,inf,0,1),inf 並不是指無限大,而是代表以資料點的最大值來取代,此處作用等於min(x),基本二維空間繪圖,此外,Matlab 也可對圖形加上各種註解與處理:,xlabel(Input Value);,%x軸註解,ylabel(Function Value);,%y軸註解,title(Two Trigonometric Functions);,%圖形標題,legend(y=sin(x),y=cos(x);,%圖形註解,grid on;,%顯示格線,基本二維空間繪圖,前頁的所有功能加在圖形之後,圖形完整的繪製。,基本二維空間繪圖,分割畫面的圖形,x=0:4*pi;,subplot(2,2,1);plot(x,sin(x);,subplot(2,2,2);plot(x,cos(x);,subplot(2,2,3);plot(x,x);,subplot(2,2,4);plot(x,2*x);,subplot(m,n,p),表示將視窗劃分為m x n個視窗,而下一個plot指令會繪圖於第p個區域。,基本二維空間繪圖,對於變化劇烈的函數,可用fplot來進行較精確的繪圖,會對劇烈變化處進行較密集的取樣,如下例:,fplot(sin(1/x),0.02 0.2);,0.02 0.2是繪圖範圍,基本二維空間繪圖,若要產生極座標圖形,可用polar:,theta=linspace(0,2*pi);,r=cos(4*theta);,polar(theta,r);,基本二維空間繪圖,長條圖:當資料點數量不多時,長條圖是很適合的表示方式:,close all;,x=1:10;,y=,abs,(sin(x);,bar(x,y);,基本二維空間繪圖,對於大量的資料,我們可用hist來顯示資料的分佈情況和統計特性。下面幾個命令可用來驗證randn產生的高斯亂數分佈:,x=randn(5000,1);,%產生5000個亂數,hist(x,20);,%20代表長條的個數,基本二維空間繪圖,rose和hist很接近,只不過是將資料大小視為角度,資料個數視為距離,並用極座標繪製表示:,x=randn(1000,1);,rose(x);,基本二維空間繪圖,stairs可畫出階梯圖:,x=linspace(0,10,50);,y=sin(x).*exp(-x/3);,stairs(x,y);,基本二維空間繪圖,stems可產生針狀圖,常被用來繪製數位訊號:,x=linspace(0,10,50);,y=sin(x).*exp(-x/3);,stem(x,y);,基本二維空間繪圖,stairs將資料點視為多邊行頂點,並將此多邊行塗上顏色:,x=linspace(0,10,50);,y=sin(x).*exp(-x/3);,fill(x,y,b);,%b為藍色,基本二維空間繪圖,5/8 上機課,畫出今天教的圖形中的三種:,一般曲線圖、長條圖、極座標圖、階梯圖、針狀圖,試著加上註解,讓圖形更完整,演讲完毕,谢谢观看!,内容总结,上週上機課題目:數值分析。c=-8.3*log(8.3)。重複命令與邏輯命令。其中變數的值會被依次設定為ab,來執行介於for和end之間的運算式。這種可執行的檔案稱為M-files,因為其檔案名稱之字尾均以.m附檔名。M-檔案類型之檔案純為文字檔,故可在任何文書處理軟體中進行編輯或修改。設有一個名叫 mydata.m 的資料內容如下:。此時函數之名稱為 prodsqr,其輸入參數為、。這裡介紹Matlab基本xy平面及xyz空間的各項繪圖命令,包含一維曲線及二維曲面的繪製、列印及存檔。x=linspace(0,2*pi)。前頁的所有功能加在圖形之後,圖形完整的繪製。plot(x,2*x)。theta=linspace(0,2*pi)。r=cos(4*theta)。x=randn(1000,1)。x=linspace(0,10,50)。%b為藍色
展开阅读全文