




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、MATLAB課程設計實踐目錄公共題- 1 -第一題- 6 -方程組- 6 -解非線性方程組- 9 -第二題- 14 - 14 - 18 - 22 -公共題題目表示多晶體材料織構的三維取向分布函數(shù)(ff(1,2)是一個非常復雜的函數(shù),難以精確的用解析函數(shù)表達,通常采用離散空間函數(shù)值來表示取向分布函數(shù),Data.txt是三維取向分布函數(shù)的一個實例。由于數(shù)據(jù)量非常大,不便于分析,需要借助圖形來分析。請你編寫一個matlab程序畫出如下的幾種圖形來分析其取向分布特征:(1)用Slice函數(shù)給出其整體分布特征;(2)用pcolor或contour函數(shù)分別給出(20, 5, 10, 15, 20, 25,
2、 30, 35 90)切面上f分布情況(需要用到subplot函數(shù));(3) 用plot函數(shù)給出沿取向線(1=090,45,20)的f分布情況。程序流程圖程序代碼common.m%課程實踐公共題目file=fopen('data.txt','r');%No_use存儲沒有用的數(shù)據(jù)for i=1:18 No_use=fgetl(file);end%讀入數(shù)據(jù)for i=1:19 %phi2 No_use=fscanf(file,'%f',1); for j=1:19%phi1 for k=1:19%phi f(j,k,i)=fscanf(file,&
3、#39;%f',1); end endend% slice給出分布特征figure(1);x,y,z=meshgrid(0:5:90,0:5:90,0:5:90);slice(x,y,z,f,45,90,45,90,0,45);%pcolor給出切面f情況figure(2);for i=1:19 subplot(5,4,i); X,Y=meshgrid(0:5:90); contour(X,Y,f(:,:,i); axis ij;end%沿alpha取向線分布情況figure(3);plot(0:5:90,f(10,:,1),'-bo');text(60,6,'
4、phi=45');text(60,5.5,'phi2=0');運行結果第一題題目編程實現(xiàn)以下科學計算算法,并舉一例應用之。(參考書籍精通科學計算,王正林等著,電子工業(yè)出版社,年) “不動點迭代法和牛頓法非線性方程組求解”1.1不動點迭代法解非線性方程組算法說明設含有n個未知數(shù)與n個方程的非線性方程組記為:F(x)=0,然后把上述方程組改為便于迭代的等價形式:x=(x),由此就可以構造不動點迭代法的迭代公式:這樣就可以求出非線性方程組的解。調用格式:x1,n=StablePoint(x,eps)。其中,x為初始迭代向量; eps為迭代精度; x1為求出的解向量; n為迭代
5、步數(shù)。程序流程圖程序代碼function x1,n=StablePoint(x,eps)%不動點迭代法求非線性方程組的根%x為初值;eps為精度,x1為方程的根,n為迭代次數(shù)if(nargin=1) eps=1.0e-4;endx1=g(x);%g(x)為非線性方程組n=1;tol=1;while(tol>eps) x=x1; x1=g(x);%迭代 tol=norm(x1-x); n=n+1; if n>1000 %迭代次數(shù)過多 disp('迭代次數(shù)超過1000,可能不收斂'); return; endend舉例說明首先建立g.m函數(shù)文件:function y=g
6、(x)%輸入方程組y(1)=0.7*sin(x(1)+0.2*cos(x(2);y(2)=0.7*cos(x(1)-0.2*sin(x(2);end在MATLAB命令窗口中運行:即求得非線性方程組y(1),y(2)的一組解,共迭代了12次,精度為。1.2牛頓法解非線性方程組算法說明牛頓迭代法的迭代公式為:錯誤!未找到引用源。求解步驟為:(1)給出初始值錯誤!未找到引用源。;(2)對n=1,2,3計算F(xn)和F(xn);(3)求出xn+1,并進行精度控制。更一般的牛頓法迭代公式為:錯誤!未找到引用源。,當錯誤!未找到引用源。 = F(x0)時,就得到簡化牛頓法。在MATLAB中編程實現(xiàn)的非線
7、性方程組的牛頓迭代法的函數(shù)為:newton。調用格式:x1,n,eps=newton(x,eps)其中,x為初始迭代向量; eps為迭代精度; x1為求出的解向量; n為迭代步數(shù)流程圖NYYNNY開始輸入初始值nargin=1r=x0-fc(x0)/df(x0)n=1,tol=1tol>epsx=x1 fc(x)/df(x)tol=norm(x1-x) n=n+1n>1000輸出結果果eps迭代>1000,可能不收斂結束程序代碼function x1,n,eps=newton(x,eps)if(nargin=1)%默認缺省值為1e-4 eps=1.0e-4;endif(df(
8、x)=0) disp('錯誤!非線性方程組微分式為零!'); return;endn=1;x1=x-fc(x)/df(x);%牛頓法迭代while norm(x-x1)>eps x=x1; x1=x-fc(x)/df(x); if(df(x)=0) disp('錯誤!非線性方程組微分式為零!'); return; end n=n+1; if(n>1000) disp('迭代次數(shù)大于1000!'); return; endend舉例說明解:首先建立fc.m函數(shù)文件,輸入以下內容:function y=fc(x)%定義原函數(shù)y(2)=x(
9、2)-0.7*cos(x(2)+0.2*sin(x(1);y(1)=x(1)-0.7*sin(x(1)-0.2*cos(x(2);end再建立df.m導數(shù)文件,輸入以下內容:function y= df(x)%定義導數(shù)文件y=1-0.7*cos(x(1) 0.2*sin(x(2);0.7*sin(x(1) 1+0.2*cos(x(2);end在MATLAB命令窗口中輸入:第二題有3個多項試進行下列操作:(1)求(2)求的根(3)當x取矩陣A的每一個元素,求的值。其中:A (4)當以矩陣A為自變量時,求的值。其中A的值與第(3)題相同。算法說明函數(shù)調用格式:symp,r,x,x2 = quest
10、ion1()symp:p(x)的值;r:p(x)的根;x:x取矩陣A的每一個元素時的值;x2:以矩陣A為自變量時,的值。流程圖結束使用函數(shù)polyvalm(p,A)polyval(p,A)roots(p) conv(p2,p3)p1=1 2 4 0 5;p2=1 2;p3=1 2 3;A=-1 1.2 -1.4;0.75 2 3.5;0 5 2.5;開始程序代碼function symp,r,x,x2 = question1()%求解課程設計29中第二題的第一小題,共四問%A為題目所給矩陣%構建多項式p1=1,2,4,0,5;p2=0,0,0,1,2;p3=0,0,1,2,3;A=-1 1.2
11、 -1.4;0.75 2 3.5;0 5 2.5;%多項式轉換為符號表達式p1=poly2sym(p1);p2=poly2sym(p2);p3=poly2sym(p3);symp=p1+p2*p3;%第一問答案p=sym2poly(symp);%符號表達式轉換多項式r=roots(p);%求根x=polyval(p,A);%x為A的每一項時的值x2=polyvalm(p,A);%A為自變量時的值運行結果用三次多項式擬合下面數(shù)據(jù),做出圖形。 x=0 0.2 0.4 0.6 0.8 1 y=0 7.78 10.68 8.37 3.97 0算法說明調用question2.m腳本文件,直接用函數(shù)pol
12、yfit繪制出擬合曲線圖形,并輸出多項式系數(shù)矩陣f和其誤差s。流程圖%求解課程設計29中第二題的第二小題x=0:0.2:1;y=0 7.78 10.68 8.37 3.97 0;f,s=polyfit(x,y,3)%對數(shù)據(jù)三次多項式擬合并輸出,f為擬合的函數(shù),s為誤差xx=0:0.01:1;%構建函數(shù)數(shù)據(jù)點f=polyval(f,xx);plot(x,y,'ro',xx,f,'b-');%作圖legend('數(shù)據(jù)點','函數(shù)曲線');title('三次多項式擬合');%圖像標題xlabel('x')
13、;%標出x軸ylabel('y');運行結果擬合函數(shù)有如下形式: y=exp(x)試確定系數(shù),并分別用線性尺度和對數(shù)尺度做出擬合曲線的圖形。x=0.0129 0.0247 0.0530 0.1550 0.3010 0.4710 0.8020 1.2700 1.4300 2.4600 y=9.5600 8.1845 5.2612 2.7917 2.2611 1.7340 1.2370 1.0674 1.1171 0.7620算法說明將非線性函數(shù)y=exp(x)兩邊同時取對數(shù)轉化為線性函數(shù),用polyfit對線性函數(shù)lny=lna+x進行擬合。調用函數(shù)question3.m求解問題
14、,調用格式a,beta,s=question3()a:非線性函數(shù)y的系數(shù)abeta:非線性函數(shù)y的系數(shù)betas:擬合誤差程序代碼function a,beta,s=question3()%第二題第三小題%p(2)=a,p(1)=beta,s為誤差x=0.0129,0.0247,0.0530,0.1550,0.3010,0.4710,0.8020,1.2700,1.4300,2.4600;y=9.5600,8.1845,5.2616,2.7917,2.2611,1.7340,1.2370,1.0674,1.1171,0.7620;xx=0:0.001:2.4600;%將函數(shù)變化為lny=lna+beta*xp,s=polyfit(x,log(y),1);%p(1)=beta p(2)=lna s為誤差p(2)=exp(p(2);a=p(2);beta=p(1);yy=p(2)*exp(p(1)*xx);%對數(shù)尺度subplot(1,2,1);semilogy(x,y,'bo',xx,yy,'r-');legend('數(shù)據(jù)點','lny=lna+*x');xlabel(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 員工簽員工合同范本
- 倆兄弟合伙開店合同范本
- 與他人合伙經營合同范本
- 共享汽車租車合同范本
- 冷鏈購銷合同范本
- 合伙出資金合同范本
- 員工協(xié)議簡易合同范本
- 合同范本水印有問題
- 共同建房合同范本
- 廠房質押合同范本
- 三年級下冊豎式脫式計算
- 七年級數(shù)學蘇科版下冊 101 二元一次方程 課件
- 《財務風險的識別與評估管理國內外文獻綜述》
- ??谑写媪糠抠I賣合同模板(范本)
- 經典文學作品中的女性形象研究外文文獻翻譯2016年
- 高爐煤氣安全知識的培訓
- 2008 年全國高校俄語專業(yè)四級水平測試試卷
- 需求供給與均衡價格PPT課件
- 金融工程鄭振龍課后習題答案
- 時間單位換算表
- DTSD342-9N說明書(精編版)
評論
0/150
提交評論