中南大学MATLAB课程设计.docx
- 文档编号:28088722
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:19
- 大小:387.46KB
中南大学MATLAB课程设计.docx
《中南大学MATLAB课程设计.docx》由会员分享,可在线阅读,更多相关《中南大学MATLAB课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
中南大学MATLAB课程设计
一、《MATLAB程序设计实践》Matlab基础
班级:
学号:
姓名:
表示多晶体材料织构的三维取向分布函数(f=f(φ1,φ,φ2))是一个非常复杂的函数,难以精确的用解析函数表达,通常采用离散空间函数值来表示取向分布函数,Data.txt是三维取向分布函数的一个实例。
由于数据量非常大,不便于分析,需要借助图形来分析。
请你编写一个matlab程序画出如下的几种图形来分析其取向分布特征:
(1)用Slice函数给出其整体分布特征;
(2)用pcolor或contour函数分别给出(φ2=0,5,10,15,20,25,30,35…90)切面上f分布情况(需要用到subplot函数);
(3)用plot函数给出沿α取向线(φ1=0~90,φ=45,φ2=0)的f分布情况。
流程图
解:
(1)将文件Data.txt内的数据按照要求读取到矩阵f(phi1,phi,phi2)中,代码如下:
fid=fopen('data.txt');%读取数据文件Data.txt
fori=1:
18
tline=fgetl(fid);
end
phi1=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)==1
phi2=(data/5)+1;
phi=1;
else
forphi1=1:
19
f(phi1,phi,phi2)=data(phi1);
end
phi=phi+1;
end
end
fclose(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])%运用slice函数绘制图形
运行结果如右图所示
(2)将以下代码保存为code1_2_1.m文件:
fopen('readtext.m');
readtext;
fori=1:
19
subplot(5,4,i)
pcolor(f(:
:
i))%运用pcolor函数绘制图形
end
运行结果如右图所示
将以下代码保存为code1_2_2.m文件:
fopen('readtext.m');%运用contour函数绘制图形
readtext;
fori=1:
19
subplot(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')%运用plot函数绘制图形
text(60,6,'\phi=45\phi2=0')
运行结果如下图所示:
1.编程实现以下科学计算算法,并举一例应用之。
(参考书籍《精通MATLAB科学算法》,王正林等著,电子工业出版社,2009年)
“多项式拟合”。
思考:
多项式拟合是用多项式拟合曲线的一种方式,低次数下运用此方法符合较好,但较高次数下波动太大,失去真实性。
1.1多项式曲线拟合概述
对给定数据点(xi,yi)(i=1,2,...N),构造m次多项式,
P(x)=
+
(m 由曲线拟合定义,应该使得下式取极小值: 通过简单的计算可得出系数是下面的线性方程组的解: = 其中, ck= bk= 在MATLAB中编程实现的多项式曲线拟合函数为: multifit 功能: 离散实验数据点的多项式曲线拟合。 调用格式: A=multifit(X,Y,m) 其中: X为实验数据点的x坐标向量; Y为实验数据点的y坐标向量; m为拟合多项式的次数; A为拟合多项式的系数向量。 1.2多项式曲线拟合编程流程图 1.3多项式曲线拟合的MATLAB程序代码 functionA=multifit(X,Y,m) %离散实验数据点的多项式曲线拟合 %实验数据点的x坐标向量: X %实验数据点的y坐标向量: Y %拟合多项式的次数: m %拟合多项式的系数向量: A N=length(X); M=length(Y); if(N~=M) disp('数据点坐标不匹配! '); return; end c(1: (2*m+1))=0; b(1: (m+1))=0; forj=1: (2*m+1)%求出c和b fork=1: N c(j)=c(j)+X(k)^(j-1); if(j<(m+2)) b(j)=b(j)+Y(k)*X(k)^(j-1); end end end C(1,: )=c(1: (m+1)); fors=2: (m+1) C(s,: )=c(s: (m+s)); end A=b'\C;%直接求解法求出拟合系数 1.4多项式曲线拟合应用实例 用二次多项式拟合下表所列的数据点。 x 1 2 3 4 y 4 10 18 26 1.4.1操作流程图 1.4.2操作命令 >>x=1: 4; >>y=[4101826]; >>A=multifit(x,y,2) 1.4.3输出结果 输出结果为: A=0.04890.16120.5672 即拟合的多项式为: P=0.0489+0.1612x+0.5672x2 1.4.4结果如图 2、编程解决以下科学计算问题。 2.1问题分析 解: 建模: 由等效电流源电路图可知 各支路导纳为: Y1=1/R1+1/(j*XL);Y2=1/R2-1/(j*Xc1);Y3=1/R3-1/(j*Xc2) 均为两并联元件导纳之和,按照图中电流方向,其电流为 I1=Ua*Y1,I2=(Ub-Ua)*Y2,I3=-Ub*Y3 则a,b两点的电流方程为 Y1Ua-Y2(Ub-Ua)=Us1/jXL+Us2/R1 Y2(Ub-Ua)-Y3Ub=Us3/R3-Us4/jXc2-Us2/R2 写成矩阵形式: 即可写成AU=B 2.2操作流程图 2.3程序代码: functionfun1 R1=2;R2=3;R3=4;XL=2;XC1=3;XC2=5;%给出原始数据 us1=8;us2=6;us3=8;us4=15;%给出原始数据 Y1=1/R1+1/(j*XL);%用复数表示各支路导路 Y2=1/R2-1/(j*XC1); Y3=1/R3-1/(j*XC2); A=[Y1+Y2,-Y2;-Y2,Y2+Y3];%按线性方程组列ua,ub的系数矩阵 B=[us1/(j*XL)+us2/R1;us3/R3+us4/(-j*XC2)-us2/R2];%列出线性方程组右端 U=A\B;ua=U (1),ub=U (2)%求ua,ub I1=ua*Y1,I2=(ub-ua)*Y2,I3=ub*Y3,%求各支路的I I1R=ua/R1,I1L=ua/(j*XL), I2R=(ub-ua)/R2,I2C=(ub-ua)/(-j*XC1), I3R=ub/R3,I3C=ub/(-j*XC2), W=compass([ua,ub,I1,I2,I3])%画向量图,设定此图的图柄为w set(W,'linewidth',2)%改变向量图线宽 end 2.4运行结果如图: 运行 >>fun1 ua= 4.8845-0.5981i ub= 5.4874+2.5752i I1= 2.1432-2.7413i I2= -0.8568+1.2587i I3= 0.8568+1.7413i I1R= 2.4422-0.2990i I1L= -0.2990-2.4422i I2R= 0.2010+1.0578i I2C= -1.0578+0.2010i I3R= 1.3718+0.6438i I3C= -0.5150+1.0975i W= 179.0024 180.0024 181.0024 182.0024 183.0024 2.5运行结果截图 2. (2) 解: 由题要求,可用最小二乘拟合法拟合函数 流程图 程序 x=[0.1 0.4 0.5 0.7 0.7 0.9]; y=[0.61 0.92 0.99 1.52 1.47 2.03]; cc=polyfit(x,y,2) %求出A与B的系数 xx=x (1): 0.1: x(length(x)); yy=polyval(cc,xx); plot(xx,yy,'--') hold on plot(x,y,'x') %画出图形 axis([0,1,0,3]) xlabel('x') ylabel('y')%坐标轴名称 运行结果截图
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南 大学 MATLAB 课程设计