《MATLAB语言》课程论文
姓名:**
学号:********
专业:********
班级:********
指导老师:******
学院:************
完成日期:2010.12.03
MATLAB在高等数学基础部分中的应用
( 姓名 12010245280 2010级自动化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 高等数学 应用 基础 直观
1、问题的提出
应用Matlab进行高等数学的计算机辅助教学。能
够加深学牛对所学高等数学知识的理解。并应用数学软件进行计算,把学生从繁琐的计算
中解脱出来。本义阐述了Matlab在高等数学的微分方程、求根运算、求和运算、求极限、求导数图形绘制中的运用。
2、具体应用说明
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描述方程中的自变量, 省略时按缺省原则处理,若没有给出初值条件cmatlab求导,则求方程的通解。
例如:求一阶方程dy/dx=1+y2在初值y(0)=1条件下的解析解的命令行如下:
》syms y
》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'=y2
y2'=3(1-y1^2)y2-y1 ! y1(0)=2
y2(0)= ! 3
2) 编写M文件(选取ode45来求解):
function dy=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种方法,求方程 的正的近似根,.(取.时间许可的话,可进一步考虑的情况.)
解法如下:
1:对分法程序(fulu1.m)
syms x fx; a=0;b=1;fx=x^3-3*x+1;x=(a+b)/2;k=0;ffx=subs(fx, 'x', x);
if ffx==0;
disp(['the root is:', num2str(x)])
else disp('k ak bk f(xk)')
while abs(ffx)>0.0001 & a<b;
disp([num2str(k), ' ', num2str(a), ' ', num2str(b), ' ', num2str(ffx)])
fa=subs(fx, 'x', a);ffx=subs(fx, 'x', x);
if fa*ffx<0
b=x;
else
a=x;
end
k=k+1;x=(a+b)/2;
end
disp([num2str(k), ' ', num2str(a), ' ', num2str(b), ' ', num2str(ffx)])
end
2:普通迭代法(fulu2.m)
syms x fx gx; gx=(x^3+1)/3;fx=x^3-3*x+1; disp('k x f(x)')
x=0.5;k=0; ffx=subs(fx, 'x', x);
while abs(ffx)>0.0001;
disp([num2str(k), ' ', num2str(x), ' ', num2str(ffx)]);
x=subs(gx, 'x', x);ffx=subs(fx, 'x', x);k=k+1;
end
disp([num2str(k), ' ', num2str(x), ' ', num2str(ffx)])
3:收敛/发散判断(fulu3.m)
syms x g1 g2 g3 dg1 dg2 dg3;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)
syms fx gx x dgx;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('k x w')
发布评论