中南大学MATLAB课程设计.docx

上传人:b****7 文档编号:15846612 上传时间:2023-07-08 格式:DOCX 页数:19 大小:387.46KB
下载 相关 举报
中南大学MATLAB课程设计.docx_第1页
第1页 / 共19页
中南大学MATLAB课程设计.docx_第2页
第2页 / 共19页
中南大学MATLAB课程设计.docx_第3页
第3页 / 共19页
中南大学MATLAB课程设计.docx_第4页
第4页 / 共19页
中南大学MATLAB课程设计.docx_第5页
第5页 / 共19页
中南大学MATLAB课程设计.docx_第6页
第6页 / 共19页
中南大学MATLAB课程设计.docx_第7页
第7页 / 共19页
中南大学MATLAB课程设计.docx_第8页
第8页 / 共19页
中南大学MATLAB课程设计.docx_第9页
第9页 / 共19页
中南大学MATLAB课程设计.docx_第10页
第10页 / 共19页
中南大学MATLAB课程设计.docx_第11页
第11页 / 共19页
中南大学MATLAB课程设计.docx_第12页
第12页 / 共19页
中南大学MATLAB课程设计.docx_第13页
第13页 / 共19页
中南大学MATLAB课程设计.docx_第14页
第14页 / 共19页
中南大学MATLAB课程设计.docx_第15页
第15页 / 共19页
中南大学MATLAB课程设计.docx_第16页
第16页 / 共19页
中南大学MATLAB课程设计.docx_第17页
第17页 / 共19页
中南大学MATLAB课程设计.docx_第18页
第18页 / 共19页
中南大学MATLAB课程设计.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

中南大学MATLAB课程设计.docx

《中南大学MATLAB课程设计.docx》由会员分享,可在线阅读,更多相关《中南大学MATLAB课程设计.docx(19页珍藏版)》请在冰点文库上搜索。

中南大学MATLAB课程设计.docx

中南大学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')%坐标轴名称

运行结果截图

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2