數學軟體簡介PARTIIMatlab介紹

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

上週上機課題目:數值分析請利用下列公式算出f’(8.1)、f’(8.3)的近似值f’(x0)=1/2h[-3f(x0)+4f(x0+h)-f(x0+2h)]這裡的f(x)為xlnxNote:注意!乘的運算為*a=-3*8.1*log(8.1);%-3f(x0)b=4*8.2*log(8.2);%4f(x0+h)c=-8.3*log(8.3);%-f(x0+2h)1/(2*0.1)*(a+b+c)%(1/2h)(a+b+c)ans=3.09191394208330Note:猜猜!1/(2*0.1)與1/2*0.1有差別嗎?50.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的值數學軟體簡介PARTIIMatlab介紹今天進度:Matlab基本環境操作重複命令與邏輯命令M檔案基本二維空間繪圖for迴圈最簡單的重複命令是for迴圈其基本形式為:for變數=a:b;運算式;end其中變數的值會被依次設定為a~b,來執行介於for和end之間的運算式。因此,若無意外情況,運算式執行的次數會等於b-a+1。例如:formatlong%算至小數點下14位數b=zeros(1,10);%b是一個1x10的零矩陣fori=1:10;b(i)=1/(10^i);endb0.10.010.0010.00010.000010.0000010.00000010.000000010.0000000010.0000000001for迴圈例如:fori=1:10;%i從1到10a=8.1;h=1/(10^i);%從0.1到0.0000000001z(i)=1/(2*h)*(-3*a*log(a)+4*(a+h)*…log(a+h)-(a+2*h)*log(a+2*h));endzz=3.091913942083343.091864568791003.091864066750113.091864061683943.091864061133263.091864053672573.091864027027213.091865075077753.091868094884383.09183789681811for迴圈for迴圈也可以是多層的,下例產生一個6x6的Hilbert矩陣h,其中Ai,j為:1/(i+j-1)formatratfori=1:6;forj=1:6;h(i,j)=1/(i+j-1);endend11/21/31/41/51/61/21/31/41/51/61/71/31/41/51/61/71/81/41/51/61/71/81/91/51/61/71/81/91/101/61/71/81/91/101/11另一個重複命令是while迴圈基本形式為:while條件式;運算式;end也就是說,只要條件是成立,運算式就會一再被執行。右例是產生一數列x:[11/21/31/41/51/6]while迴圈i=1;whilei=6,x(i)=1/i;i=i+1;end邏輯命令最簡單的邏輯命令是if,...,end其基本形式為:if條件式;運算式;endifmin(x)0.02;disp('VeryBig!');%disp印出elsedisp('Sotiny!');endVeryGood!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=[123;456]A=123456以Matlab鍵入mydata這個指令則會使上項內容被執行,因此一個以A為名之矩陣即刻產生,將來有用到它的時候,即會跳出來為你效勞。注意:大寫A與小寫a是不同的名稱。M檔案函數檔案與敘述檔主要差別是:開頭一行需有一個函數名稱之宣告以及輸入參數,函數名稱前可以有等號,在此等號之左方為其輸出之參數,方位不能弄錯,通式如下:輸出參數=函數名稱(輸入參數)特別注意的是這些參數變數,無論是輸入或輸出,均可能代表一個數值或一個矩陣。一般以代表一個矩陣為多。在函數檔案中,其所屬之變數均屬區域性的,除非特別另宣告為整體性參數。M檔案例如:functionP=prodsqr(A,B)P=A^2*B^2此時函數之名稱為prodsqr,其輸入參數為A、B。輸出為P。在函數中,A、B、P均為區域性函數,只在這個函數執行期間有效,離開這個函數就不認得了。由於這是一個函數檔,它是不能自己執行的,而且它要能被呼叫,必須在存檔時,以prodsqr.m儲存,方能對應主程式的呼叫。M檔案基本二維空間繪圖Matlab不但擅長矩陣相關的數值運算,也適用在各種科學目視表示(Scientificvisualization)。這裡介紹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('InputValue');%x軸註解ylabel('FunctionValue');%y軸註解title('TwoTrigonometricFunctions');%圖形標題legend('y=sin(x)','y=cos(x)');%圖形註解gridon;%顯示格線基本二維空間繪圖前頁的所有功能加在圖形之後,圖形完整的繪製。基本二維空間繪圖分割畫面的圖形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)表示將視窗劃分為mxn個視窗,而下一個plot指令會繪圖於第p個區域。基本二維空間繪圖對於變化劇烈的函數,可用fplot來進行較精確的繪圖,會對劇烈變化處進行較密集的取樣,如下例:fplot('sin(1/x)',[0.020.2]);[0.020.2]是繪圖範圍基本二維空間繪圖若要產生極座標圖形,可用polar:theta=linspace(0,2*pi);r=cos(4*theta);polar(theta,r);基本二維空間繪圖長條圖:當資料點數量不多時,長條圖是很適合的表示方式:closeall;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上機課畫出今天教的圖形中的三種:一般曲線圖、長條圖、極座標圖、階梯圖、針狀圖試著加上註解,讓圖形更完整

1 / 34
下载文档,编辑使用

©2015-2020 m.111doc.com 三一刀客.

备案号:赣ICP备18015867号-1 客服联系 QQ:2149211541

×
保存成功