中南大学MATLAB课程实践

中南大学MATLAB课程实践

ID:39342585

大小:847.12 KB

页数:27页

时间:2019-07-01

中南大学MATLAB课程实践_第1页
中南大学MATLAB课程实践_第2页
中南大学MATLAB课程实践_第3页
中南大学MATLAB课程实践_第4页
中南大学MATLAB课程实践_第5页
资源描述:

《中南大学MATLAB课程实践》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、中南大学MATLAB课程设计实践目录公共题-1-第一题-6-1.1不动点迭代法解非线性方程组-6-1.2牛顿法解非线性方程组-9-第二题-14-2.1题目-14-2.2题目-18-2.3题目-22-公共题题目表示多晶体材料织构的三维取向分布函数(f=f(φ1,φ,φ2))是一个非常复杂的函数,难以精确的用解析函数表达,通常采用离散空间函数值来表示取向分布函数,Data.txt是三维取向分布函数的一个实例。由于数据量非常大,不便于分析,需要借助图形来分析。请你编写一个matlab程序画出如下的几种图形来分析其取向分布特征:

2、(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分布情况。-25-程序流程图程序代码common.m%课程实践公共题目file=fopen('data.txt','r');%No_use存储没有用的数据fori=1:18No_use=fgetl(file);-25-end%读入数据fori=1:19%

3、phi2No_use=fscanf(file,'%f',1);forj=1:19%phi1fork=1:19%phif(j,k,i)=fscanf(file,'%f',1);endendend%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);fori=1:19subplot(5,4,i);[X,Y]=meshgrid(0:5:9

4、0);contour(X,Y,f(:,:,i));axisij;end%沿alpha取向线分布情况figure(3);plot([0:5:90],f(10,:,1),'-bo');text(60,6,'phi=45');text(60,5.5,'phi2=0');运行结果-25--25--25-第一题题目编程实现以下科学计算算法,并举一例应用之。(参考书籍《精通MALAB科学计算》,王正林等著,电子工业出版社,2009年)“不动点迭代法和牛顿法非线性方程组求解”1.1不动点迭代法解非线性方程组算法说明设含有n个未知数

5、与n个方程的非线性方程组记为:F(x)=0,然后把上述方程组改为便于迭代的等价形式:x=φ(x),由此就可以构造不动点迭代法的迭代公式:这样就可以求出非线性方程组的解。调用格式:[x1,n]=StablePoint(x,eps)。其中,x为初始迭代向量;eps为迭代精度;x1为求出的解向量;n为迭代步数。-25-程序流程图程序代码function[x1,n]=StablePoint(x,eps)%不动点迭代法求非线性方程组的根%x为初值;eps为精度,x1为方程的根,n为迭代次数-25-if(nargin==1)eps=

6、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;ifn>1000%迭代次数过多disp('迭代次数超过1000,可能不收敛');return;endend举例说明首先建立g.m函数文件:functiony=g(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命令窗口中运行

7、:-25-即求得非线性方程组y(1),y(2)的一组解[0.52640.5080],共迭代了12次,精度为1.0e-4。1.2牛顿法解非线性方程组算法说明牛顿迭代法的迭代公式为:错误!未找到引用源。求解步骤为:(1)给出初始值错误!未找到引用源。;(2)对n=1,2,3…计算F(xn)和F’(xn);(3)求出xn+1,并进行精度控制。更一般的牛顿法迭代公式为:错误!未找到引用源。,当错误!未找到引用源。=F’(x0)时,就得到简化牛顿法。在MATLAB中编程实现的非线性方程组的牛顿迭代法的函数为:newton。调用格式

8、:[x1,n,eps]=newton(x,eps)-25-其中,x为初始迭代向量;eps为迭代精度;x1为求出的解向量;n为迭代步数-25-流程图NYYNNY开始输入初始值nargin==1r=x0-fc(x0)/df(x0)n=1,tol=1tol>epsx=x1fc(x)/df(x)tol=norm(x1-x)n

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

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

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