中南大学材料院matlab程序设计实践

中南大学材料院matlab程序设计实践

ID:25209911

大小:832.31 KB

页数:31页

时间:2018-11-18

中南大学材料院matlab程序设计实践_第1页
中南大学材料院matlab程序设计实践_第2页
中南大学材料院matlab程序设计实践_第3页
中南大学材料院matlab程序设计实践_第4页
中南大学材料院matlab程序设计实践_第5页
资源描述:

《中南大学材料院matlab程序设计实践》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、中南大学MATLAB程序设计实践班级:学号:姓名:一、《MATLAB程序设计实践》Matlab基础表示多晶体材料织构的三维取向分布函数(f=f(φ1,φ,φ2))是一个非常复杂的函数,难以精确的用解析函数表达,通常采用离散空间函数值来表示取向分布函数,Data.txt是三维取向分布函数的一个实例。由于数据量非常大,不便于分析,需要借助图形来分析。请你编写一个matlab程序画出如下的几种图形来分析其取向分布特征:(1)用Slice函数给出其整体分布特征;(2)用pcolor或contour函数分别给出(φ2=0,5,

2、10,15,20,25,30,35…90)切面上f分布情况(需要用到subplot函数);(3)用plot函数给出沿α取向线(φ1=0~90,φ=45,φ2=0)的f分布情况。备注:表示以下数据为φ2=0的数据,即f(φ1,φ,0)此方向表示f随着φ从0,5,10,15,20…到90的变化而变化此方向表示f随着φ1从0,5,10,15,20…到90的变化而变化数据说明部分,与作图无关data.txt数据格式说明解:(1)将文件Data.txt内的数据按照要求读取到矩阵f(phi1,phi,phi2)中,代码如下:fi

3、d=fopen('data.txt');fori=1:18tline=fgetl(fid);endphi1=1;phi=1;phi2=1;line=0;f=zeros(19,19,19);while~feof(fid)tline=fgetl(fid);data=str2num(tline);line=line+1;ifmod(line,20)==1phi2=(data/5)+1;phi=1;elseforphi1=1:19f(phi1,phi,phi2)=data(phi1);endphi=phi+1;endendf

4、close(fid);将以上代码保存为readtext.m文件并在MATLAB中运行,运行结果如下图所示:将以下代码保存为code1_1.m文件:fopen('readtext.m');readtext;[x,y,z]=meshgrid(0:5:90,0:5:90,0:5:90);slice(x,y,z,f,[45,90],[45,90],[0,45])运行结果如右图所示:(2)将以下代码保存为code1_2_1.m文件:fopen('readtext.m');readtext;fori=1:19subplot(5,

5、4,i)pcolor(f(:,:,i))End运行结果如右图所示:将以下代码保存为code1_2_2.m文件:fopen('readtext.m');readtext;fori=1:19subplot(5,4,i)contour(f(:,:,i))end运行结果如右图所示:(3)φ1=0~90,φ=45,φ2=0所对应的f(φ1,φ,φ2)即为f(:,10,1)。将以下代码保存为code1_3.m文件:fopen('readtext.m');readtext;plot([0:5:90],f(:,10,1),'-bo'

6、)text(60,6,'phi=45phi2=0')运行结果如下图所示:二《MATLAB程序设计实践》科学计算(07)1、编程实现以下科学计算算法,并举一例应用之。(参考书籍《精通MALAB科学计算》,王正林等著,电子工业出版社,2009年)“傅里叶逼近”解:(1)用法说明:对于连续周期函数,只要计算出其傅里叶展开级数即可,在Matlab中编程实现的连续函数的傅里叶逼近法函数为:FZZ。功能:用傅里叶级数逼近已知的连续周期函数。调用格式:[A0,A,B]=FZZ(func,T,n).其中,func为已知函数;T为

7、已知函数的周期;N为展开级数的项数;A0为展开后的常数项;A为展开后的余弦项系数;B为展开后的正弦项系数。(2)源程序代码:function[A0,A,B]=FZZ(func,T,n)symst;func=subs(sym(func),sym('x'),sym('t'));A0=int(sym(func),t,-T/2,T/2)/T;for(k=1:n)A(k)=int(func*cos(2*pi*k*t/T),t,-T/2,T/2)*2/T;A(k)=vpa(A(k),4);B(k)=int(func*sin(2*

8、pi*k*t/T),t,-T/2,T/2)*2/T;B(k)=vpa(B(k),4);end(3)输出结果:傅里叶逼近应用实例。用傅里叶级数(取5项)逼近函数x,输出系数值。>>[A0,A,B]=FZZ('x',2*pi,5)A0=0A=[0.,0.,0.,0.,0.]B=[2.,-1.,.6667,-.5000,.4000](4)流程图①:开

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。