MATLAB解代数方程
- 格式:ppt
- 大小:104.00 KB
- 文档页数:22


《数学软件》课程设计
广东海洋大学
《数学软件》课程设计
院(系)名称 理学院
专业 班级 信计1134班
姓 名
学 号
指导教师
成 绩
教师评语:
指导教师签字:
2015年6月15日 MATLAB符号方程的求解 《数学软件》课程设计
1 摘 要
除了数值运算以外,在数学、工程和其他应用科学中常用到符号运算。MATLAB和著名的符号运算语音MAPLE相结合,为大家提供了符号运算与符号可视为一体的符号运算功能。运用MATLAB,我们可以解决代数方程和常微分方程,快速地得到我们想要的结果,有力于解决人为难以解决的问题。
关键词:MATLAB;代数;常微分
1. MATLAB
1.1 MATLAB简介
MATLAB 语言是当今国际上科学界 (尤其是自动控制领域) 最具影响力、也是最有活力的软件。它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。MATLAB 语言在各国高校与研究单位起着重大的作用。
1.2 MATLAB特点与作用
MATLAB的含义是矩阵实验室(MATRIX LABORATORY),主要用于方便矩阵的存取,其基本元素是无须定义维数的矩阵。MATLAB自问世以来,就是以数值计算称雄。MATLAB进行数值计算的基本单位是复数数组(或称阵列),这使得MATLAB高度“向量化”。经过十几年的完善和扩充,现已发展成为线性代数课程的标准工具。由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。美国许多大学的实验室都安装有MATLAB供学习和研究之用。在那里,MATLAB是攻读学位的大学生硕士生、博士生必须掌握的基本工具。MATLAB中包括了被称作工具箱(TOOLBOX)的各类应用问题的求解工具。工具箱实际上是对MATLAB进行扩展应用的一系列 MATLAB函数(称为M文件),它可用来求解各类学科的问题,包括信号处理、图象处理、控制系统辨识、神经网络等。随着MATLAB版本的不断升级,其所含的工具箱的功能也越来越丰富,因此,应用范围也越来越广泛,成为涉及数值分析的各类工程师不可不用的工具。 MATLAB5.3中包括了图形界面编辑GUI,改变了以前单一的“在指令窗通过文本形的指令进行各种操作”的状况。这可让使用者也可以象VB、VC、 VJ、DELPHI等那样进行一般的可视化的程序编辑。在命令窗口(matlab command
第32卷第4期 V01.32 No.4 绥化学院学报 Journal of Suihua University 2012年8月 Aug.2012 Matlab在解微分方程中的应用 相春环 (重庆文理学院数学与统计学院重庆永川4021 60) 摘要:Matlab是基础科学研究中常用的一种重要软件,利用Matlab编写程序简洁、直观,其自身带有大量的函数库 分析 了借助Matlab软件处理简单微分方程的方法。给出了方程示例和数值模拟图像,并对结果做了简单分析 关键词:Matlab;微分方程;数值模拟 中图分类- ̄-:U212 332.2 文献标识码:A 文章编号:2(}95一()438(2012)04一(}186一O2 引言 Matlab足matrix和laboratory的一一个合成词。意思就是 阵实验审。…于Matlab自身强大的函数库以及简洁的程序编 写过程使得在处理天于矩阵的运算时有着独特的优势。Matlab 足…美国mathworks公司发布的、将数值模拟、矩阵计算、科学 数据处理以及非线性动态系统的仿真等众多功能聚集在一起 mf成为一个方便操作的软件平台.每年更新两次。该软件在科 学研究、工程设计以及必须进行有效数值计算的众多科学领 域提供了一种不^nf或缺的有 工具。在数值模拟过程巾编写 高效简洁的n 执行程序是研究人员的重要日标,Matlab可视 化的编程过程为广大科研 【作者带来了诸多方便。Matlab 成为科研工作者必备的软什助手,I 此,在教学过程巾适时的 普及Matlab软什的丰开关知识.让学生掌握一种科研软件作为 数据处理工具.以提高学生独立分析问题、解决问题的能力是 非常必要的” 、 微分方程在物理、化学、生物等学科都有J 泛应用,特别 是微分方程的斛随时间的动 J学演化过程对于人们认识自然 现象的规律、理解现象的本质起着非常重要的作用。例如,在 物卿学巾求解描述电磁场变化、热传输、波的扩散现象的(双 【fn型、椭圆型、抛物型)微分方程就足一种重要的应用实例。此 外,实验人员在研究绝缘材料或导体材料时,如果刘材料在外 界电、磁场作用下内部电场等参量分布行较为精确的了斛.他 们可以通过分析数据inf更好地改进材料的性能 但是.某些微 分方程很难取得精确解析解,此时町以用Matlab获得陔类微 分方程的数值解或者得到它们随I1寸问演化的直观图像,这些 数值解或陶像对于我们了解所研究对象的性质咧样是很有帮 助的。值得提出的足:Madab处理微分方程时.它总把外界输 入的任何控制参量都作为矩阵来处瑚.闪此,我们能利用该软 件相I’l1快捷的得到满意的结果。 二、Matlab在解微分方程中的应用示例 我们借助以下两个实例来体现Matlab在处理方程解的过 程巾的实用性 尚‘先分析的第一个例子足常见的、一类带行 初值的一阶微分方程: Y (一4)=1 2(一4):0 ‘ ¥【收稿日期1201 1-12—02 【作者简介】桐春环(198O一),女,II J东聊城人,重厌义理学院讲师,研究方向:微分方程 【基金项目】重庆巾教委项口(KJl0l201);重庆义邢学院教学改革 研究项H(100239)
已知火焰燃烧可用以下微分方程形式表示
/20)0(32tyyyy
尝试在MATLAB环节下用不同方法求η=0.02、0.002、0.0002、0.00002时方程的解
(提示:1、ODE45; 2、ODE15S)
解:由题意
由MATLAB可解得已知微分方程的解析解为
r = 0; 1; 1/(lambertw(0, -C5/exp(t + 1)) + 1);
注:因本题解析解形式未知,故未使用欧拉法进行分析
Ⅰ. 当η=0.02时
1.ODE45
源程序:
>>rye=0.02; %将0.02赋给rye
>>syms y; %声明y为符号变量
>>F=inline('y^2-y^3','t','y'); %声明函数并取t为自变量
>>ode45(F,[0 2/rye],rye); %用ODE23算法计算常微分方程F并画出微分曲线>>[t,y]=ode45(F,[0 2/rye],0.02) %得到自变量和函数的离散数据
微分曲线:
2.ODE15S
源程序:
>>rye=0.02; %将0.0002赋给rye
>>syms y; %声明y为符号变量
>>F=inline('y^2-y^3','t','y'); %声明函数并取t为自变量
>>ode15S[0 200/rye],rye); %用ODE15S算常微分方程F并画出微分曲线
>>[t,y]=ode15S[0 2/rye],rye) %得到自变量和函数的离散数据
微分曲线:
结论:当η=0.02时,运用ODE15SE45算法计算已经常微分方程数值解时,在相同的区间范围内,ODE45算法取点数多于ODE15S使得当运用ODE45算法时,精度略高于ODE15S,但效率略低于ODE15S。
Ⅱ. 当η=0.002时
1.ODE45
源程序:
>>rye=0.002; %将0.002赋给rye
线性代数方程组的数值解法讨论
解线性方程组的方法,主要分为直接方法和迭代方法两种。直接法是在没有舍入误差的假设下能在预定的运算次数内求得精确解。而实际上,原始数据的误差和运算的舍入误差是不可以避免的,实际上获得的也是近似解。
迭代法是构造一定的递推格式,产生逼近精确解的序列。对于高阶方程组,如一些偏微分方程数值求解中出现的方程组,采用直接法计算代价比较高,迭代法则简单又实用,因此比较受工程人员青睐。
小组成员本着工程应用,讨论将学习的理论知识转变为matlab代码。讨论的成果也以各种代码的形式在下面展现。
1 Jacobi迭代法
使用Jacobi迭代法,首先必须给定初始值,其计算过程可以用以下步骤描述:
步骤1 输入系数矩阵A,常熟向量b,初值(0)x,误差限,正整数N,令1k.
步骤2 (0)11niiijjjiijixbaxa,(0)jx代表(0)x的第j个分量。
步骤3 计算11niiijjjiijiybaxa,判断1maxiiinxy,如果是,则结束迭代,转入步骤5;否则,转入步骤4。
步骤4 判断kN?如果是,则输出失败标志;否则,置1kk,iixy,1,2,,in,转入步骤2。
步骤5 输出12,,nyyy。
雅可比迭代代码
function [x,k]=Fjacobi(A,b,x0,tol)
% jacobi 迭代法 计算线性方程组
% tol 为输入误差容限,x0为迭代初值
max1= 300; %默认最多迭代300,超过要300次给出警告
D=diag(diag(A));
L=-tril(A,-1);
U=-triu(A,1);
B=D\(L+U);
f=D\b;
x=B*x0+f;
k=1; %迭代次数