




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中南大学MATLAB课程设计实践目录公共题- 1 -第一题- 6 -1.1不动点迭代法解非线性方程组- 6 -1.2牛顿法解非线性方程组- 9 -第二题- 14 -2.1题目- 14 -2.2题目- 18 -2.3题目- 22 -公共题题目表示多晶体材料织构的三维取向分布函数(ff(1,2)是一个非常复杂的函数,难以精确的用解析函数表达,通常采用离散空间函数值来表示取向分布函数,Data.txt是三维取向分布函数的一个实例。由于数据量非常大,不便于分析,需要借助图形来分析。请你编写一个matlab程序画出如下的几种图形来分析其取向分布特征:(1)用Slice函数给出其整体分布特征;(2)用pcolor或contour函数分别给出(20, 5, 10, 15, 20, 25, 30, 35 90)切面上f分布情况(需要用到subplot函数);(3) 用plot函数给出沿取向线(1=090,45,20)的f分布情况。程序流程图程序代码common.m%课程实践公共题目file=fopen(data.txt,r);%No_use存储没有用的数据for i=1:18 No_use=fgetl(file);end%读入数据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,%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,phi=45);text(60,5.5,phi2=0);运行结果第一题题目编程实现以下科学计算算法,并举一例应用之。(参考书籍精通科学计算,王正林等著,电子工业出版社,年) “不动点迭代法和牛顿法非线性方程组求解” 1.1不动点迭代法解非线性方程组算法说明设含有n个未知数与n个方程的非线性方程组记为:F(x)=0,然后把上述方程组改为便于迭代的等价形式:x=(x),由此就可以构造不动点迭代法的迭代公式:这样就可以求出非线性方程组的解。调用格式:x1,n=StablePoint(x,eps)。其中,x为初始迭代向量; eps为迭代精度; x1为求出的解向量; n为迭代步数。程序流程图程序代码function x1,n=StablePoint(x,eps)%不动点迭代法求非线性方程组的根%x为初值;eps为精度,x1为方程的根,n为迭代次数if(nargin=1) eps=1.0e-4;endx1=g(x);%g(x)为非线性方程组n=1;tol=1;while(toleps) x=x1; x1=g(x);%迭代 tol=norm(x1-x); n=n+1; if n1000 %迭代次数过多 disp(迭代次数超过1000,可能不收敛); return; endend举例说明首先建立g.m函数文件:function y=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命令窗口中运行:即求得非线性方程组y(1),y(2)的一组解0.5264 0.5080,共迭代了12次,精度为1.0e-4。1.2牛顿法解非线性方程组算法说明牛顿迭代法的迭代公式为:错误!未找到引用源。求解步骤为:(1)给出初始值错误!未找到引用源。;(2)对n=1,2,3计算F(xn)和F(xn);(3)求出xn+1,并进行精度控制。更一般的牛顿法迭代公式为:错误!未找到引用源。,当错误!未找到引用源。 = F(x0)时,就得到简化牛顿法。在MATLAB中编程实现的非线性方程组的牛顿迭代法的函数为:newton。调用格式:x1,n,eps=newton(x,eps)其中,x为初始迭代向量; eps为迭代精度; x1为求出的解向量; n为迭代步数流程图NYYNNY开始输入初始值nargin=1r=x0-fc(x0)/df(x0)n=1,tol=1tolepsx=x1 fc(x)/df(x)tol=norm(x1-x) n=n+1n1000输出结果果eps=1.0e-4迭代1000,可能不收敛结束程序代码function x1,n,eps=newton(x,eps)if(nargin=1)%默认缺省值为1e-4 eps=1.0e-4;endif(df(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(n1000) disp(迭代次数大于1000!); return; endend举例说明解:首先建立fc.m函数文件,输入以下内容:function y=fc(x)%定义原函数y(2)=x(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导数文件,输入以下内容:function y= df(x)%定义导数文件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命令窗口中输入:第二题2.1题目有3个多项试进行下列操作:(1)求(2)求的根(3)当x取矩阵A的每一个元素,求的值。其中:A (4)当以矩阵A为自变量时,求的值。其中A的值与第(3)题相同。算法说明函数调用格式:symp,r,x,x2 = question1()symp:p(x)的值;r:p(x)的根;x:x取矩阵A的每一个元素时的值;x2:以矩阵A为自变量时,的值。流程图结束使用函数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 -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为自变量时的值运行结果2.2题目用三次多项式拟合下面数据,做出图形。 x=0 0.2 0.4 0.6 0.8 1 y=0 7.78 10.68 8.37 3.97 0算法说明调用question2.m脚本文件,直接用函数polyfit绘制出拟合曲线图形,并输出多项式系数矩阵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)%对数据三次多项式拟合并输出,f为拟合的函数,s为误差xx=0:0.01:1;%构建函数数据点f=polyval(f,xx);plot(x,y,ro,xx,f,b-);%作图legend(数据点,函数曲线);title(三次多项式拟合);%图像标题xlabel(x);%标出x轴ylabel(y);运行结果2.3题目拟合函数有如下形式: y=exp(x)试确定系数,并分别用线性尺度和对数尺度做出拟合曲线的图形。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算法说明将非线性函数y=exp(x)两边同时取对数转化为线性函数,用polyfit对线性函数lny=lna+x进行拟合。调用函数question3.m求解问题,调用格式a,beta,s=question3()a:非线性函数y的系数abeta:非线性函数y的系数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;%将函数变化为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)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 理想班集体课件
- 玛氏安全培训课件
- 猫病输液疗法课件
- 城港市上思县思甜土特产贸易有限公司上思县高岸加油站项目环境影响报告表
- 滴灌工程实施方案(3篇)
- 地铁绿化迁移工程方案(3篇)
- 牵引车司机安全培训课件
- 农业废弃物资源化利用项目技术创新与产业竞争力研究报告
- 牧场饲养部门安全培训课件
- 安全教育培训面试课件
- 教科版四年级上册科学全册教案
- 水稻螟虫绿色防控
- 2024版2025秋新版小学道德与法治三年级上册全册教案教学设计含反思
- 家电合伙合同(标准版)
- 血站服务礼仪培训课件
- 2025年iptv技术考试题库
- 科室医院感染管理制度
- 学科交叉教学中存在的问题及改进措施
- 山东中专学籍管理办法
- 老年营养健康宣教
- 新版苏教版四年级上册科学(全册教案及教学计划及进度表)
评论
0/150
提交评论