您好,欢迎访问三七文档
《MATLAB语言》课程论文基于MATLAB在高等数学基础部分中的应用姓名:**学号:********专业:********班级:********指导老师:******学院:************完成日期:2010.12.03MATLAB在高等数学基础部分中的应用(姓名120102452802010级自动化1班)[摘要]计算机的发明是二十世纪四十年代的事情,经过几十年的发展,它已经成为一门复杂的工程技术学科,它的应用从国防、科学计算,到家庭办公、教育娱乐,无所不在。它的分类从巨型机、大型机、小型机,到工作站、个人电脑,五花八门。但是,无论怎样尖端,怎样高科技,从它诞生之日起,在许多人心目中它就是一部机器,一部冰冷的高速运算的机器。从ENIAC揭开计算机时代的序幕,到UNIVAC成为迎来计算机时代的宠儿,不难看出这里发生了两个根本性的变化:一是计算机已从实验室大步走向社会,正式成为商品交付客户使用;二是计算机已从单纯的军事用途进入公众的数据处理领域,真正引起了社会的强烈反响。随着计算机的日趋普及和计算机技术的发展.汁算机辅助教学逐渐称为一种重要的教学方式,Matlab是MathWorks公司出品的一款著名数学软件.是当今国际上科学界(尤其是自动控制领域)最具影响力、也是最有活力的软件。它起源丁-矩阵运算,并已经发展成一种高度集成的计算机语言。它提供r强大的科学运算、灵活的程序没计流程、高质肇的图形可视化与界面设计、便捷的与其他程序和语言接f1的功能:Matlab语言在各国高校与研究单位起着重大的作用。应用Matlab进行高等数学的计算机辅助教学。能够加深我们对所学高等数学知识的理解。并应用数学软件进行计算,把我们从繁琐的计算中解脱出来。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。初学高等数学时可能不会很快的适应这个转折的过程,本学期学习了MATLAB后,我个人觉得这款软件会对我们更加形象的认识高等数学有很大帮助。[关键词]MATLAB高等数学应用基础直观一、问题的提出应用Matlab进行高等数学的计算机辅助教学。能够加深学牛对所学高等数学知识的理解。并应用数学软件进行计算,把学生从繁琐的计算中解脱出来。本义阐述了Matlab在高等数学的微分方程、求根运算、求和运算、求极限、求导数图形绘制中的运用。二、具体应用说明1.MATLAB在微分方程中的应用在MATLAB中,用大写字母D表示导数。例如,Dy表示y',D2y表示y'',Dy(0)=5表示y'(0)=5。D3y+D2y+Dy-x+5=0表示微分方程y'''+y''+y'-x+5=0。符号常微分方程求解可以通过函数dsolve来实现,其调用格式为:dsolve(f,c,v)该函数求解常微分方程f初值条件c下的特解。参数v描述方程中的自变量,省略时按缺省原则处理,若没有给出初值条件c,则求方程的通解。例如:求一阶方程dy/dx=1+y2在初值y(0)=1条件下的解析解的命令行如下:》symsy》dsolve('Dy=1+y^2','y(0)=1','x')y=tan(x+1/4×pi)例如求解方程y’’-3(1-y^2)y’+y=0在初值y’(0)=3,y(0)=2的解。1)降阶:设y1=y,y2=y’,初值为:y’(0)=3,y(0)=2,则:y1'=y2y2'=3(1-y1^2)y2-y1!y1(0)=2y2(0)=!32)编写M文件(选取ode45来求解):functiondy=ode(t,y)dy=[y(2);3×(1-y(1)^2)×y(2)-y(1)];将此文件存盘为matlab默认目录下,文件名称为ode.m文件3)调用数值解函数[t,y]=ode45('ode',[0,30],[2;3])1.1.3利用simulink仿真工具箱求解常微分方程[2]Simulink仿真函数的调用格式为:[x,y]=sim(′模型名称′,仿真终止时间,options)2.MATLAB在求根运算中的应用例如:分别用对分法、普通迭代法、松弛迭代法、Altken迭代法、牛顿切法线等5种方法,求方程sin()txx的正的近似根,10t.(取5.0t.时间许可的话,可进一步考虑25.0t的情况.)解法如下:1:对分法程序(fulu1.m)symsxfx;a=0;b=1;fx=x^3-3*x+1;x=(a+b)/2;k=0;ffx=subs(fx,'x',x);ifffx==0;disp(['therootis:',num2str(x)])elsedisp('kakbkf(xk)')whileabs(ffx)0.0001&ab;disp([num2str(k),'',num2str(a),'',num2str(b),'',num2str(ffx)])fa=subs(fx,'x',a);ffx=subs(fx,'x',x);iffa*ffx0b=x;elsea=x;endk=k+1;x=(a+b)/2;enddisp([num2str(k),'',num2str(a),'',num2str(b),'',num2str(ffx)])end2:普通迭代法(fulu2.m)symsxfxgx;gx=(x^3+1)/3;fx=x^3-3*x+1;disp('kxf(x)')x=0.5;k=0;ffx=subs(fx,'x',x);whileabs(ffx)0.0001;disp([num2str(k),'',num2str(x),'',num2str(ffx)]);x=subs(gx,'x',x);ffx=subs(fx,'x',x);k=k+1;enddisp([num2str(k),'',num2str(x),'',num2str(ffx)])3:收敛/发散判断(fulu3.m)symsxg1g2g3dg1dg2dg3;x1=0.347;x2=1.53;x3=-1.88;g1=(x^3+1)/3;dg1=diff(g1,'x');g2=1/(3-x^2);dg2=diff(g2,'x');g3=(3*x-1)^(1/3);dg3=diff(g3,'x');disp(['1',num2str(abs(subs(dg1,'x',x1))),'',...num2str(abs(subs(dg1,'x',x2))),'',num2str(abs(subs(dg1,'x',x3)))])disp(['2',num2str(abs(subs(dg2,'x',x1))),'',...num2str(abs(subs(dg2,'x',x2))),'',num2str(abs(subs(dg2,'x',x3)))])disp(['3',num2str(abs(subs(dg3,'x',x1))),'',...num2str(abs(subs(dg3,'x',x2))),'',num2str(abs(subs(dg3,'x',x3)))])4:松弛迭代法(fulu4.m)symsfxgxxdgx;gx=(x^3+1)/3;fx=x^3-3*x+1;dgx=diff(gx,'x');x=0.5;k=0;ggx=subs(gx,'x',x);ffx=subs(fx,'x',x);dgxx=subs(dgx,'x',x);disp('kxw')whileabs(ffx)0.0001;w=1/(1-dgxx);disp([num2str(k),'',num2str(x),'',num2str(w)])x=(1-w)*x+w*ggx;k=k+1;ggx=subs(gx,'x',x);ffx=subs(fx,'x',x);dgxx=subs(dgx,'x',x);enddisp([num2str(k),'',num2str(x),'',num2str(w)])5:Altken迭代法(fulu5.m)symsxfxgx;gx=(x^3+1)/3;fx=x^3-3*x+1;disp('kxx1x2')x=0.5;k=0;ffx=subs(fx,'x',x);whileabs(ffx)0.0001;u=subs(gx,'x',x);v=subs(gx,'x',u);disp([num2str(k),'',num2str(x),'',num2str(u),'',num2str(v)])x=v-(v-u)^2/(v-2*u+x);k=k+1;ffx=subs(fx,'x',x);enddisp([num2str(k),'',num2str(x),'',num2str(u),'',num2str(v)])6:牛顿法(fulu6.m)symsxfxgx;fx=x^3-3*x+1;gx=diff(fx,'x');x1=-2;x2=0.5;x3=1.4;k=0;disp('kx1x2x3')fx1=subs(fx,'x',x1);fx2=subs(fx,'x',x2);fx3=subs(fx,'x',x3);gx1=subs(gx,'x',x1);gx2=subs(gx,'x',x2);gx3=subs(gx,'x',x3);whileabs(fx1)0.0001|abs(fx2)0.0001|abs(fx3)0.0001;disp([num2str(k),'',num2str(x1),'',num2str(x2),'',num2str(x3)])x1=x1-fx1/gx1;x2=x2-fx2/gx2;x3=x3-fx3/gx3;k=k+1;fx1=subs(fx,'x',x1);fx2=subs(fx,'x',x2);fx3=subs(fx,'x',x3);gx1=subs(gx,'x',x1);gx2=subs(gx,'x',x2);gx3=subs(gx,'x',x3);enddisp([num2str(k),'',num2str(x1),'',num2str(x2),'',num2str(x3)])3.MATLAB在求和运算中的应用分别求54323534333231的前10项和无穷大项的和;解法为:求前十项和的方法1:k=1:10;n=k./(3.^k);f=cumsum(n)%此处为求数列n的部分和f,特别注意n为%一个数列的一般项,为元素群运算,必%需加“.”,否则会出错f=0.33330.55560.66670.71600.73660.74490.74810.74930.74970.7499%前十项的部分和求前十项和的方法2:symsk,f=symsum(k./(3.^k),1,10)%求前十项数列f的和f=44281/59049%即为0.7499symsk,f=symsum(k./(3.^k),1,inf)%求无穷项数列f的和f=3/44.MATLAB在求极限以及求导数运算中的应用MATLAB中主要用limit,diff分别求函数的极限与导数。limit(s,n,inf)返回符号表达式当n趋于无穷大时表达式s的极限limit(s,x,a)返回符号表达式当x趋于a时表达式s的极限limit(s,x,a,’left’)返回符号表达式当x趋于a-0时表达式s的左极限limit(s,x,a,’right’)返回符号表达式当x趋于a-0时表达式s的右极限diff(s,x,n)返回符号表达式s对自变量x的
本文标题:matlab-论文
链接地址:https://www.777doc.com/doc-5208932 .html