MATLAB在有限域教学中的应用
- 格式:pdf
- 大小:538.97 KB
- 文档页数:3
matlab软件在高等数学教学课堂上的应用摘要:本文介绍了matlab软件在高等数学教学课堂上的应用。
首先,我们介绍了matlab软件的基本特点和优点,主要包括matlab 软件的易用性、高效性和多功能性。
然后,我们结合高等数学教学的实际情况,分析了matlab软件在高等数学教学课堂上的应用,主要包括matlab软件在微积分、线性代数、概率论与数理统计等方面的应用。
最后,我们总结了matlab软件在高等数学教学中的优点和不足之处,并提出了进一步完善matlab软件在高等数学教学中的应用的建议。
关键词:matlab软件;高等数学教学;微积分;线性代数;概率论与数理统计一、matlab软件的基本特点和优点matlab软件是一种数学软件,主要用于进行数学计算、数据分析和可视化等方面的工作。
matlab软件具有以下几个基本特点和优点:1.易用性:matlab软件的界面简洁明了,操作简单易学,适合各种不同层次的用户使用。
2.高效性:matlab软件的计算速度非常快,可以快速处理大量的数学计算和数据分析工作。
3.多功能性:matlab软件具有多种不同的功能模块,包括数学计算、数据分析、可视化、编程等方面的工作,可以满足不同用户的不同需求。
二、matlab软件在高等数学教学中的应用matlab软件在高等数学教学中有着广泛的应用,主要包括以下几个方面:1.微积分:matlab软件可以用于微积分的计算和可视化,可以帮助学生更好地理解微积分的概念和原理。
例如,可以使用matlab 软件计算函数的导数和积分,绘制函数的图像和曲线,进行微积分的应用实例分析等。
2.线性代数:matlab软件可以用于线性代数的计算和可视化,可以帮助学生更好地理解线性代数的概念和原理。
例如,可以使用matlab软件计算矩阵的行列式、逆矩阵、特征值和特征向量等,绘制矩阵的图像和曲线,进行线性代数的应用实例分析等。
3.概率论与数理统计:matlab软件可以用于概率论与数理统计的计算和可视化,可以帮助学生更好地理解概率论与数理统计的概念和原理。
高等数学教学中Matlab软件的运用分析:数学是自然科学研究和工程技术应用的重要工具,在理工科院校中,高等数学是一门非常重要的基础课,是学生学好其他基础课和专业课程学习的基础。
然而,高等数学中涉及大量的计算,学生在掌握理论知识的基础上,要演算某个例题或者推算定义定理的时间较长。
如果学生大部分时间都花在不必要的机械性的计算上,就会忽略对定义和定理的理解。
Matlab 中包括大量的函数,直接调用这些函数可以方便实现高等数学中的极限、求导、积分、以及微分方程等计算问题。
Matlab 指令表达式与数学、工程中常用的形式十分相似,学生稍加理解就能上手。
在教学中引入 Matlab 提高了学生运用数学知识解决实际问题的能力。
本文以同济大学数学系编着的《高等数学》为例,主要介绍符号计算和图形处理功能在高等数学教学中的应用。
1 符号计算在高等数学教学中的应用1.1 求极限。
高等数学教学通常会介绍等价无穷小求极限、洛必达法则求极限、两个重要极限等方法求极限。
对理工科学生以及部分经济管理类学生在极限的应用中更关心的是所求极限的结果。
这时学习一个Matlab 命令要比学习这些数学方法要快得多。
如求极限。
此题用到的是两个重要极限求极限的方法,学生难于理解,而matlab 命令为:syms xlimit(((x-1)/(x+1))^x,x,inf)回车即可返回结果:ans=exp(-2)1.2 求积分。
高等数学求积分的内容涉及不定积分,定积分,重积分,以及积分的应用,但是在讲不定积分、定积分内容授课学时中 2/3 之二的时间都在介绍计算方法,包括凑微分、换元、分部积分、有理函数积分、反常积分。
而 Matlab 的求积分命令只有一个却可以解决各类积分方法的积分求解问题。
如求积分。
此题用到换元的方法求解,计算比较复杂,而 matlab 命令为:syms xint(1/((1+x^(1/3))*sqrt(x)))回车即可返回结果 ans=6*x^ (1/6)-6*atan(x^(1/6))1.3 求解微分方程。
MATLAB在各学科中的运用MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
[1]MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
学习matlab后,研究电路及自动控制系统都非常直观方便。
下面就matlab在几个学科中的应用举例:应用一 Matlab在电路中的应用应用二Matlab在自动控制理论中的运用应用三基于Matlab的通信系统仿真应用四 Matlab在金融工程中的运用总结应用一 MATLAB在电路中的应用在大二上学期,我们电气工程及其自动化专业学习了电路这门课,下面引用matlab在电路里面的应用MATLAB在直流稳态电路中的分析及应用设计分析1.运用MATLAB解决数值线性代数问题及MATLAB的实现;MATLAB在“电路工作原理”中的应用;MATLAB工具箱的运用。
matlab软件在高等数学课程教学中的应用
Matlab是强大的高级计算机语言,它可以用于编写程序和数
学函数,能够准确快速地求解各种复杂问题。
由于这种特性,Matlab不仅可以应用于科学计算,而且在教学领域也有着广
泛的应用。
在高等数学课程的教学中,Matlab的出色表现也
是显而易见的。
首先,Matlab可以帮助教师快速正确地求解各种复杂的数学
问题,这在数学课程的教学当中具有重要意义。
使用Matlab,教师可以轻松地实现复杂的数学计算和求解,并将完成的结果展示给学生,这有利于学生更好地理解课程内容,更加便捷地完成学习任务。
其次,Matlab也具有出色的可视化功能,可以将复杂的抽象
数学概念可视化、可视化,这对于深入理解抽象数学概念具有极大的帮助。
此外,Matlab还可以用于进一步分析结果,如
数据分析和可视化,以便更深入地了解问题背后的含义,这对学习数学有很大的帮助。
因此,Matlab在高等数学课程的教学中有着广泛的应用,它
不仅能够快速准确地完成复杂的数学计算,而且可以提供出色的可视化功能,可以帮助教师更好地完成数学课程的教学,以及让学生更好地理解课程内容。
matlab软件在高校教学中的应用
近年来,随着计算机技术的发展,高校的教学方式也发生了很大的变化。
在教学中,采用新的科技工具,比如虚拟现实(VR)、增强现实(AR)和lab软件,可以极大地提高教学效率并增强学生对课程的兴趣。
lab是一种基于互联网的虚拟实验室软件,可以让学生仿真实验,提高学习的可视度和可控性,可以让学生进行仿真操作,更加深入地理解课程内容。
同时,在学校教学中,lab软件可以帮助教师设计多种多样的实验,让学生在虚拟的实验环境中进行灵活的实验操作,从而更好地理解课程内容。
此外,lab软件能够提供维护成本较低的模拟实验环境,减轻试验室设备购买、安装、维护和使用上的负担。
学生可以在自己的电脑上操作,而不需要实验室的支持,而且虚拟实验室可以节约实验材料、提高教学质量以及提高学生的参与度和合作学习水平等。
此外,lab软件还可以有效地提高教师与学生之间的沟通效率。
在课堂上,教师可以利用lab软件给学生分发相关资料,并及时向学生发布新的任务,让学生及时掌握课堂内容,大大提高了学生的学习效率。
同时,lab软件也可以能够及时反馈学生的学习成果,激励学生更加努力学习。
总的来说,lab软件在高校教学中的应用可以极大提高课堂教学的效率,有助于提高学生的学习兴趣,提升学生的实践能力以及改善学生之间的交流。
因此,高校教育部门应该加大力度开发和应
用lab软件,为普及现代教育技术做出应有贡献。
matlab软件在高校教学中的应用Matlab是一种基于矩阵运算的高级数据处理软件。
在高校教学中,Matlab已成为了必不可少的教学工具,它不仅可以帮助学生更好地理解理论知识,还可帮助教师更好地进行教学工作。
本文将介绍Matlab在高校教学中的应用。
1. 数学分析Matlab可以用来求解微积分、积分、微分方程等问题,如求解极限、根数量、二次方程等。
同时,Matlab还可以用来绘制函数图形,使得学生能够透彻地理解函数的变化规律。
2. 线性代数Matlab的主要应用之一就是求解线性代数问题。
它可以实现矩阵运算、解线性方程组、矩阵转置、矩阵乘法等。
这些运算是学生学习线性代数与矩阵论的基础,在Matlab中能够将学习与计算相结合,更好地促进学生的理解。
二、Matlab在工科类课程中的应用1. 信号处理Matlab可以用来处理各种信号,如音频、视频、图像等。
在通信工程、电子信息工程、计算机工程等课程中,信号处理是一个重要的环节,Matlab提供了各种信号处理工具箱,能够帮助学生更好地学习这些课程。
2. 控制工程Matlab可用来进行控制系统分析与设计、PID控制等课程。
学生可以通过Matlab进行控制工程的模拟与计算,在模拟运行过程中反复调试,快速地找到问题与解决方法。
3. 机械工程在机械工程教学中,Matlab可以用来进行机械系统的建模与仿真。
学生可以用Matlab实现机械系统的运动学、逆运动学分析,还可以对机器人系统进行控制与仿真。
Matlab广泛应用于科学研究领域,它可以用来进行科学数据的分析、统计学的检验、预测模型的建立等。
Matlab开发了许多工具箱,如信号处理工具箱、图像处理工具箱、金融工具箱、统计工具箱等,可以应用在气象、环境、经济、医学等各个学科领域,非常适用于数据处理、分析和建模。
2. 可视化Matlab可以提供图形化界面,支持三维可视化展示,可以将科学数据用图表的形式直观地呈现在人们眼前。
matlab软件在高等数学教学课堂上的应用随着信息技术的不断发展,计算机已经成为了人们生活和工作中不可或缺的一部分。
而在教育领域中,计算机也得到了广泛的应用。
特别是在高等数学教学中,计算机辅助教学已经成为了一种趋势。
而在这个过程中,MATLAB软件作为一种强大的数学计算工具,也得到了广泛的应用。
本文将结合实际案例,探讨MATLAB软件在高等数学教学中的应用。
一、MATLAB软件的特点MATLAB是一种数学软件,它可以进行各种数学计算,包括线性代数、微积分、概率论、信号处理等。
它的特点在于:简单易用、计算速度快、功能强大、可视化效果好。
MATLAB软件可以进行数据分析、建模、仿真、优化等各种数学计算,同时还具有很好的可视化效果,能够将计算结果以图形的形式呈现出来。
因此,在高等数学教学中,MATLAB软件可以起到很好的辅助作用。
二、MATLAB在高等数学教学中的应用1. 线性代数线性代数是高等数学中非常重要的一个分支,而MATLAB软件可以很好地辅助线性代数的教学。
在矩阵的运算中,MATLAB软件可以进行矩阵的加减乘除、矩阵的转置、求逆、求行列式等各种运算。
同时,MATLAB软件还可以进行矩阵的特征值和特征向量的计算,这对于理解矩阵的本质和应用具有非常重要的意义。
2. 微积分微积分是高等数学中另一个重要的分支,MATLAB软件也可以很好地辅助微积分的教学。
在微积分的计算中,MATLAB软件可以进行函数的求导和积分、曲线的绘制、极限的计算等各种运算。
同时,MATLAB软件还可以进行微积分方程的求解,这对于理解微积分的本质和应用也具有非常重要的意义。
3. 概率论概率论是高等数学中另一个重要的分支,而MATLAB软件也可以很好地辅助概率论的教学。
在概率论的计算中,MATLAB软件可以进行随机数的生成、概率分布的计算、统计分析等各种运算。
同时,MATLAB软件还可以进行蒙特卡罗模拟,这对于理解概率论的本质和应用也具有非常重要的意义。
MATLAB的应用与实现MATLAB是一种强大的数学软件,具有计算、分析、可视化、建模等功能,可广泛应用于各个领域。
本文将介绍MATLAB在科学研究、工程技术、金融以及教育等领域中的应用和实现。
一、MATLAB在科学研究中的应用和实现MATLAB在科学研究中的应用非常广泛,特别是在数字信号处理、图像处理、建模仿真等方面的应用。
例如,MATLAB可以用于图像增强、图像分割、图像合成等,常被应用于医学影像、生物影像等领域。
此外,MATLAB还可以实现智能算法、数据挖掘、机器学习等,这些都是科学研究中常用的方法。
科学研究者可以使用MATLAB来实现自己的研究想法,也可以利用MATLAB中的函数和工具箱对数据进行处理和分析,以达到科学研究的目的。
二、MATLAB在工程技术中的应用和实现MATLAB在工程技术中的应用也非常广泛,主要应用于控制系统设计、信号处理、嵌入式系统开发、电路仿真、机器人控制等方面。
MATLAB提供了丰富的工具箱和函数,可以帮助工程师高效、精确地完成各种设计和开发任务。
例如,MATLAB可以实现各种传感器信号的采集、滤波、处理等工作,同时结合控制技术和机器学习算法,可以实现各种高级控制系统的设计与开发。
三、MATLAB在金融领域的应用和实现MATLAB在金融领域中也有广泛的应用,主要用于金融分析、风险管理、资产估值等方面。
例如,MATLAB中提供了丰富的统计分析工具和算法,可以用于股票价格预测、基金组合优化等方面的研究和分析。
同时,MATLAB还可以用于实现各种金融模型,例如随机过程、蒙特卡洛方法等,这些模型可以用于金融风险管理和资产估值等方面的应用。
四、MATLAB在教育领域的应用和实现MATLAB在教育领域中的应用也非常广泛,主要用于教学、研究和实验等方面。
例如,MATLAB可以用于教学和研究各种数学、物理、工程等课程,可以帮助学生更好地理解和掌握各种知识点和技能。
此外,MATLAB还可以用于实验室的设计与开发,例如用于模拟电路实验、机器人控制实验、信号处理实验等。
matlab软件在高等数学教学课堂上的应用随着信息技术的发展和普及,计算机在教育领域中的应用也越来越广泛。
在高等数学教学中,Matlab软件作为一款强大的数学计算工具,可以帮助学生更好地理解和掌握数学知识,提高数学学习效率。
本文将从Matlab软件在高等数学教学中的应用入手,探讨其在高等数学教学中的作用和优势。
一、Matlab软件简介Matlab是一款数学计算软件,它可以进行数值分析、数据处理、图像处理、信号处理等多种计算。
Matlab具有强大的数学计算能力和灵活的编程语言,可以帮助用户快速解决各种数学问题。
Matlab软件具有以下优势:1. 界面友好,易于操作:Matlab软件的界面简洁明了,操作简单易学,不需要过多的编程知识,即可快速上手。
2. 功能强大,适用范围广:Matlab软件不仅可以进行数学计算,还可以进行图像处理、信号处理等多种计算,适用范围非常广泛。
3. 支持多种编程语言:Matlab软件支持多种编程语言,包括C++、Java、Python等,用户可以根据自己的需求选择适合自己的编程语言。
二、Matlab软件在高等数学教学中的应用1. 数学模型建立和求解Matlab软件可以帮助学生建立数学模型,并进行求解。
例如,在微积分教学中,学生可以使用Matlab软件绘制函数图像、求导、求极值、求面积等,通过实际计算和图像展示,帮助学生深入理解微积分的概念和应用。
2. 数据分析和处理Matlab软件可以帮助学生进行数据分析和处理,例如,在统计学教学中,学生可以使用Matlab软件进行数据的统计分析、描述性统计、假设检验等,通过实际数据的处理和分析,帮助学生更好地理解统计学的概念和应用。
3. 图像处理和分析Matlab软件可以帮助学生进行图像处理和分析,例如,在线性代数教学中,学生可以使用Matlab软件进行图像的线性变换、旋转、平移等操作,通过实际图像的处理和分析,帮助学生更好地理解线性代数的概念和应用。
1 有限域基础知识1、1有限域(Galois域)得构造令p为一个素数、则对任意得一个正整数n,存在一个特征为p,元素个数为p n得有限域GF(p n)、注:任意一个有限域,其元素得个数一定为pn,其中p为一个素数(有限域得特征),n为一个正整数、例1(有限域GF(p))令p为一个素数,集合GF(p)=Zp={0,1,2,…,p−1}、ﻫ在GF(p)上定义加法⊕与乘法⊙分别为模p加法与模p乘法,即任意得a,b∈GF(p),a⊕b=(a+b)modp,a⊙b=(a⋅b)mod p则〈GF(p),⊕,⊙>为一个有p个元素得有限域,其中零元素为0,单位元为1、令a为GF(p)中得一个非零元素、由于gcd(a,p)=1,因此,存在整数b,c,使得ab+pc=1、由此得到a得逆元为a−1=bmo dp、域GF(p)称为一个素域(primefield)、例注1:给定a与p,例1中得等式ab+pc=1可以通过扩展得欧几里得除法得到,从而求得GF(p)中任意非零元素得逆元、例2(有限域GF(pn))从GF(p)出发,对任意正整数n,n≥2,我们可以构造元素元素个数为p n得有限域GF(p n)如下:令g(x)为一个GF(p)上次数为n得不可约多项式,集合GF(p n)=GF(p)[x]/⟨g(x)⟩={a0+a1x+a2x2+⋯+an−1x n−1 | a i∈GF(p),0≤i≤n−1}ﻫ在GF(p n)上定义加法⊕与乘法⊙分别为模g(x)加法与模g (x)乘法,即任意得a(x),b(x)∈GF(p n),a(x)⊕b(x)=a(x)+b(x),a(x)⊙b(x)=(a(x)⋅b(x))mod g(x)ﻫ则〈GF(pn),⊕,⊙>为一个有pn个元素,特征为p得有限域,其中零元素为GF(p)中得0,单位元为GF(p)中得1、令a(x)为GF(p n)中得一个非零元素、由于gcd(a(x),g(x))=1,因此,存在GF(p)上得多项式b(x),c(x),使得a(x)b(x)+g(x)c(x)=1、由此得到a(x)得逆元为a−1(x)=b(x)mod g(x)、域GF(pn)称为GF(p)得(n次)扩域(extension field),而GF(p)称为GF(pn)得子域(subfield)、例注2、1:给定GF(p)上得多项式a(x)与g(x),例2中得等式a(x)b (x)+g(x)c(x)=1可以通过扩展得欧几里得除法得到,从而求得GF(p n)中任意非零元素得逆元、例注2、2:设GF(q)就是一个含有q个元素得有限域、对任意正整数n, GF(q)上得n次不可约多项式一定存在、更进一步,GF(q)上首项系数为1得n次不可约多项式得个数为Nq(n)=1n∑d|nμ(nd)qd=1n∑d|nμ(d)q n/dﻫ其中μ为Moebius函数,定义为μ(m)=⎧⎩⎨1(−1)k0如果m=1如果m=p1p2⋯pk,其中p1,p2,…,pk为互不相同得素数其它1、2 有限域得性质令GF(q)就是一个含有q个元素得有限域,F∗q=GF(q)∖{0}为有限域GF(q)中所有非零元素构成得集合、则在乘法之下F∗q就是一个有限循环群、循环群F∗q得一个生成元称为有限域GF(q)得一个本原元、若α∈GF(q)为一个本原元,则GF(q)={0,1,α,α2,…,αq−2}ﻫ并且αq−1=1,即αq=α、定义:设GF(q)就是一个含有q个元素得有限域,GF(p)就是GF (q)得一个含有p个元素得子域(p不一定为素数),α∈GF(q)、则GF(p)上以α为根,首项系数为1,并且次数最低得多项式称为α在GF(p)上得极小多项式(minimal polynomial of α over GF(p))、特别地,若α∈GF(q)为GF(q)得一个本原元,则α在GF(p)上得极小多项式称为GF(p)上得一个本原多项式(primitive polynomial for GF(q) over GF(p))、定义注1:对任意得α∈GF(q),α在GF(p)上得极小多项式存在并且唯一,并且α在GF(p)上得极小多项式为GF(p)上得一个不可约多项式、定义注2:设α∈GF(q), 则α与αp在GF(p)上具有相同得极小多项式、更进一步,集合B(α)={α,αp,αp2,αp3,…,αpi,…}ﻫ中得元素具有相同得极小多项式、设q=p n,则αpn=α、因此,集合B (α)中互不相同得元素得个数(记为r)不超过n、可以证明,α为GF(q)得一个本原元当且仅当r=n、定理:设GF(q)就是一个含有q个元素得有限域,GF(p)就是GF(q)得一个含有p个元素得子域、设α∈GF(q),r为满足αpr=α得最小正整数、则α在GF(p)上得极小多项式g(x)就是一个r次不可约多项式,并且B(α)={α,αp,αp2,…,αp r−1}ﻫ中得元素为g(x)在GF(q)上得所有不同得根,即g(x)=(x−α)(x−αp)(x−αp2)⋯(x−αp r−1)、注:r得计算方法如下:设α在F∗q中得阶为k、集合Z∗k={m | 0≤m≤k−1,gcd(m,k)=1}ﻫ在模k乘法运算下就是一个含有φ(k)个元素得有限群(其中φ为欧拉(Euler)函数)、则r等于p mod k在Z∗k中得阶、推论:设GF(q)就是一个含有q个元素得有限域,GF(p)就是GF(q)得一个含有p个元素得子域、设|GF(q)|=p n,即q=p n、设α∈GF(q)为GF(q)得一个本原元,则α在GF(p)上得极小多项式g(x)得次数为n,并且g(x)=(x−α)(x−αp)(x−αp2)⋯(x−αp n−1)、ﻫ更进一步,α,αp,αp2,…,αp n−1均为GF(q)得本原元、注:设GF(p)就是一个含有p个元素得有限域,n就是任意一个正整数,则GF(p)上得n次本原多项式一定存在、更进一步,GF(p)上得首项系数为1得n次本原多项式得个数为φ(pn−1)n,其中φ为欧拉函数、例3考虑二元域GF(2)上得不可约多项式p(α)=α3+α+1,构造有限域GF(23)=GF(2)[α]/⟨p(α)⟩={0,1,α,α+1,α2,α2+1,α2+α,α2+α+1}、容易验证,α,α2,α3,α4,α5,α6都就是GF(23)得本原元、GF(2)上得首项系数为1得3次本原多项式有两个,分别为(i) α,α2,α4在GF(2)上得极小多项式g(x)=(x+α)(x+α2)(x+α4)=x3+x+1(ii) α3,α5,α6在GF(2)上得极小多项式g(x)=x3+x2+1有限域GF(p)上得本原多项式一定就是GF(p)上得不可约多项式;但就是,GF(p)上得不可约多项式不一定就是GF(p)上得本原多项式、定理:设GF(q)就是一个含有q个元素得有限域,GF(p)就是GF(q)得一个含有p个元素得子域,g(x)就是GF(p)上得一个不可约多项式、则g(x)为GF(p)上得本原多项式当且仅当g(x)在GF(q)上得根都就是GF(q)得本原元、下面例子说明不可约多项式不一定就是本原多项式、例4考虑二元域GF(2)上得不可约多项式p(x)=x4+x3+x2+x+1,构造有限域GF(24)=GF(2)[x]/⟨p(x)⟩={a+bx+cx2+dx3|a,b,c,d∈GF(2)}、显然,x∈GF(24)、由于x5=1,即x得阶为5,因此,x不就是GF(24)得本原元、于就是,p(x)不就是GF(2)上得本原多项式、另外,可以验证x+1就是GF(24)得本原元、2Matlab 中得有限域计算函数Matlab中自带得有限域得计算就是在GF(2m)上进行得,即在二元域GF(2)得扩域中进行计算,其中1≤m≤16、由“1、1 有限域得构造” 得“例2" 可知,我们只需先找到一个GF(2)上得m次不可约多项式g(x),得到集合GF(2)[x]/⟨g(x)⟩,然后定义其上得加法与乘法分别为模g(x)加法与模g(x)乘法,即得到有限域GF(2m)、然而,这样得到得有限域GF(2m)中,元素x未必就是本原元,这将给后面得(乘法)运算带来很多麻烦、因此,在不可约多项式g(x)得挑选上,我们最好选择一个本原多项式、这其实就就是 Matlab 中得做法、Matlab中GF(2m)得元素:在 Matlab 中GF(2m):=GF(2)[D]/⟨p(D)⟩,其中p(D)为一个GF(2)上得m次本原多项式、GF(2m)={am−1Dm−1+am−2D m−2+⋯+a1D+a0,|ai∈GF(2),0≤i≤m−1}ﻫ因此,每个GF(2m)中得元素本质上就是一个次数小于m得多项式,每个元素与多项式之间有“1-1”对应关系、例如,取m=3与本原多项式p(D)=D3+D+1,则我们得到有限域GF(23),其中得元素与多项式之间得对应关系如下:GF(23)GF(2)[D]/⟨p(D)⟩二进制0 00001 10012 D0103 D+10114 D21005 D2+11016 D2+D1107 D2+D+1111GF(2)上得多项式由系数组成得二进制所对应得(十进制)数字来表示、例如,多项式p(D)=D3+D+1得系数组成得二进制为1011,因此,多项式p (D)表示为数字11、2、1定义有限域数组在 Matlab 中,函数gf用来定义一个有限域数组,函数申明如下:X_GF = GF(X,M,PRIM_POLY)函数创建有限域GF(2M)上得一个数组,使用得GF(2)上得M次本原多项式为PRIM_POLY; M就是一个1至16之间得整数;数组X中得元素为0至2M−1之间得数、例如,生成有限域GF(23)中得所有元素,并令本原多项式为p(D)=D3+D2+1、>> GF8 = gf(0:7,3,13)GF8 = GF(2^3) array、Primitive polynomial = D^3+D^2+1 (13 decimal)Array elements =0 1 2 3 4 5 6 7如果不指定本原多项式,则 Matlab 将使用默认本原多项式、例如〉〉gf(0:7,3)ans = GF(2^3) array、 Primitive polynomial= D^3+D+1 (11 decimal)Array elements =0 1 2 3 45 6 7在这里例子中,Matlab 使用了3次本原多项式D3+D+1、如果不指定次数M与本原多项式PRIM_POLY,则生成二元域GF(2)中得元素、〉〉 gf(0:1)ans = GF(2) array、Array elements =0 1生成得有限域中得数组可以参与运算(+、、、、、^、\等)、注意:参与运算得操作数必须来自同一个有限域,用于生成有限域得本原多项式也必须相同!一个典型得例子就是计算有限域得乘法表如下:〉〉 GF8 =gf(0:7,3)GF8 = GF(2^3)array、Primitive polynomial = D^3+D+1 (11 decimal)Array elements =0 12 3 4 5 6 7〉〉 GF8'*GF8ans = GF(2^3) array、Primitive polynomial = D^3+D+1 (11decimal)Array elements=0 0 0 0 0 0 0 00 1 2 3 4 5 6 70 2 4 6 3 17 50 3 6 5 7 4 1 20 4 3 7 6 2 5 10 5 1 4 2 7 360 6 7 1 5 3 2 40 752 1 6 4 3>> GF8 =gf(0:7,3,13)GF8 = GF(2^3) array、Primitive polynomial = D^3+D^2+1 (13 decimal)Array elements =0 1 2 3 4 567>> GF8’*GF8Warning:Lookup tables notdefined for this order 2^3 and primitive polynomial13、Arithmetic still workscorrectly but multiplication, exponentiation,and inversion of elementsis faster with lookup tables、Use gftable to create and save thelookup tables、> In gf、gettables at 35Ingf、mtimes at 20ans =GF(2^3) array、 Primitive polynomial = D^3+D^2+1 (13 decimal)Array elements=0 00 0 0 0 0 00 1 2 3 4 5 6 702 4 6 5 7 1 30 3 6 5 1 2 7 40 4 5 1 7 3 2 60 5 7 2 3 6 4 10 6 1 7 2 4 350 7 3 4 6 1 5 2在这里我们用两个不同得本原多项式构造有限域GF(23),得到两张不同得乘法表、注1:当我们计算GF(2)[D]/⟨D3+D2+1⟩得乘法表时,Matlab给产生一个警告“Warning: Lookup tables not defined for thisorder 2^3 and primitive polynomial 13、” 从警告中我们可以瞧出,Matlab 中有限域得乘法就是通过查表来完成得,这样可以显著地提高计算得速度、我们可以通过命令gftable来创建并保存查找表格、ﻫ注2:用本原多项式D3+D+1与D3+D2+1生成两个不同得元素个数为8得有限域,然而这两个有限域就是同构得、一般地,我们有如下有限域同构定理:定理:任意两个元素个数相同得有限域一定同构、与本原元多项式相关得函数primpoly函数primpoly用于计算GF(2)上得本原多项式,函数申明如下:PR = PRIMPOLY(M, OPT,'nodisplay’)其中M为本原多项式得次数,其取值为2至16之间得整数;选项OPT得定义如下:OPT= ’min’ 给出一个权值最小得本原多项式OPT = ’max’ 给出一个权值最大得本原多项式OPT = 'all' 给出所有得本原多项式OPT = L 给出所有权值为L得本原多项式字符串‘nodisplay’用于关闭默认得本原多项式显示方式、例如,输出GF(2)上所有次数为3得本原多项式、>〉 primpoly(3,'all')Primitive polynomial(s)=D^3+D^1+1D^3+D^2+1ans =1113>〉primpoly(3,’all',’nodisplay’)ans =1113isprimitive函数isprimitive用来检查GF(2)上得多项式就是否为本原多项式,函数申明如下:CK =ISPRIMITIVE(A)其中A为一个表示多项式得数字,并且表示得多项式得次数不能超过16、如果A为本原多项式,则返回1;否则返回0、例如,检查多项式D3+D2+1与D3+D2+D+1就是否为本原多项式如下:〉> isprimitive(13)ans =1〉> isprimitive(15)ans =。
基于MATLAB的有限元结构分析王剑(重庆交通大学土木建筑学院,重庆400074)摘要: MATLAB 是当今国际科学界最具影响力和活力的软件。
文章介绍了MATLAB 语言的特点,详细介绍了用MATLAB语言编写结构内力的有限元方法,并通过实例对平面钢架结构进行了内力分析。
关键词:MATLAB 有限元结构0引言MATLAB是Mathworks公司推出的,集算法开发、数值运算、符号运算以及图形处理等强大功能于一体的高级技术计算语言和交互式环境。
MATLAB意为矩阵实验室,它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言的编辑模式,代表了当今国际科学计算软件的先进水平。
有限元法的基本思想是将物体(即连续求解域)离散成有限个且按一定方式相互连接在一起的单元组合,来模拟和逼近原来的物体,从而将一个连续的无限自由度问题简化为离散的有限自由度问题求解的数值分析法。
有限元法还有一个特点是,它的理论采用矩阵形式表达。
这并不利于一般的计算机语言编制计算机程序,因为传统的计算机语言处理的对象是标量,使用矩阵形式的有限元理论时,必须把矩阵形式的公式转换成标量表示的公式。
而如果采用MATLAB,这个特点就变成了有限元法的优点,运算更便捷。
1运用MATLAB编写有限元程序的操作步骤1.1建立有限元模型建立有限元模型就是为求解有限元模型做铺垫。
需要对节点、单元以及材料的定义。
同时对约束条件、集中力、分布力进行定义。
然后在M函数文件中以矩阵或向量的形式输入单元号、节点数、材料的性质、约束条件、集中力、分布力。
1.2求解有限元模型用MATLAB写出每个单元的单元刚度矩阵。
按照刚度集成法,把各个单元的刚度矩阵分别放到整体刚度矩阵中的相应位置上,然后根据边界条件进行修正得到整体刚度矩阵。
Matlab软件在高等学校数学类课程中的作用及应用Matlab是一种具有科学计算功能的应用软件,包括符号运算、数值运算、图像处理、统计分析及编程可视化等功能。
其特点是语句简单、功能强大。
自1984年推出正式版本以来,该软件已被越来越多的学者应用于科学研究工作中。
随着网络计算机技术的发展、多媒体教学的普及,电脑已成为教学过程中常用的辅助教学工具之一,使得将Matlab软件引入课堂教学过程更容易实现。
数学是进行科学研究的重要工具,高等数学、线性代数、概率论和数理统计是高等院校理工类和经管类专业学生必修的三门数学类基础课程,是学生学好其他基础课和专业课的基础。
高等数学课程在这三门数学课程中又是“重中之重”,也是绝大多数专业学生报考硕士研究生的必考课程。
刚刚经历高考进入高等学校的学生都知道高等数学课程的重要性,但突然面对抽象的符号、严密的逻辑、高深的理论,许多学生都望而却步,逐渐失去了学习的兴趣。
本学期,我系组建了一个Matlab软件兴趣小组,定期开展活动,活动内容主要是向学生介绍Matlab软件的基本使用方法,引导学生将Matlab 软件应用到数学类课程中,解决一些实际问题。
兴趣小组中的学生,基本上是大学二年级的学生,活动中所选取的内容都是学生上课过程中碰到的知识点。
一 Matlab软件在数学课堂教学中的作用1.激发学生的学习兴趣为了培养学生的学习积极性,要尽量地将抽象变得直观,变成学生能看得见、摸得着的东西,最直接的方法就是图形展示。
Matlab软件具有强大的图形处理功能,能形象直观地展现空间几何关系,在教学中展示复杂的函数图形,曲面、曲线相对位置变化,甚至利用动画模拟空间曲线、曲面和立体图形的生成过程,使原本难以想象的空间图形变得具体生动。
编程过程中还可以改变参数,使图形画面亮丽多彩,营造了一种轻松的课堂氛围。
例如,在利用定积分计算旋转体的体积一节中,首先介绍的是旋转体的概念,如果仅通过教师口述旋转体的定义,缺乏感官的刺激,容易使学生感到枯燥乏味。
Galois Field Computation in MATLAB:Primitive Polynomial:An Irreducible polynomial p(X) of degree m is said to be primitive if the smaller positive integer n for which p(X) divides X n + 1 is n = 2m – 1. For example, p(X) = X4 + X + 1 divides X15 +1 but not divides any X n +1 for 1 ≤ n < 15.In Matlab you can easily find the primitive polynomials for any degree using primpoly(m) function.Example:m= 4; Define m = 4 for GF(24)s = primpoly(m)Output is:Primitive polynomial(s) =D^4+D^1+1s =19Here it shows the primitive polynomial and an integer whose binary representation indicates the coefficients of the polynomial. Note that there could be more than one primitive polynomial for a particular degree of m.Galois Field arithmetic:To demonstrate Galois Field arithmetic we consider following table for degree m = 4 an primitive polynomial p(X) = 1 + X + X4Power Representation Polynomial Represent4-Tuple Representation0 0 0 0 0 01 1 1 0 0 0αα0 1 0 0α2 α20 0 1 0α3 α30 0 0 1α4 1+ α 1 1 0 0α5 α + α2 0 1 1 0α6 α2 + α30 0 1 1α7 1+ α + α3 1 1 0 1α8 1 + α2 1 0 1 0α9 α + α30 1 0 1α10 1+ α + α2 1 1 1 0α11 α + α2 + α30 1 1 1α12 1 + α + α2 + α3 1 1 1 1α13 1 + α2 + α3 1 0 1 1α14 1 + α3 1 0 0 1The Matlab function gftuple(),Simplify or convert the format of elements of a Galois field. That means, you can find the tuple representation of corresponding power representation by gftuple() function.Example:X = gftuple(11,4);Y= gftuple(14,4);The output is:X =0 1 1 1Y =1 0 0 1In Matlab you can do any Galois Field arithmetic using gf() function. Example:X = gf(6,4) % first argument is integer equivalent of tuple% representation and 2nd argument is degree mY = gf(13,4)Z = X + YThe output is:X = GF(2^4) array. Primitive polynomial = D^4+D+1 (19 decimal) Array elements =6Y = GF(2^4) array. Primitive polynomial = D^4+D+1 (19 decimal) Array elements =13Z = GF(2^4) array. Primitive polynomial = D^4+D+1 (19 decimal)Array elements =11Note: The array elements are shown in tuple representation format. Tounderstand it you may need to convert from tuple representation to power representation from the table.In the above example we did the addition of α5 + α7, which is α13.Similarly you ca do multiplication, division or subtraction.Minimal polynomialsMinimal polynomials of elements in GF(24) generated by p(X) = X4 + X+ 1are given in following table.Conjugate Roots Minimal polynomials Ф(X)0 X1 X+1α, α2, α4, α8X4 + X + 1α3, α6, α9, α12X4 + X3 + X + 1α5, α10X2 + X + 1α7, α11, α13, α14X4 + X3 + 1By using minpol() function in matlab you can genetare the minimalpolynomial for any root. Again using roots() function you can find theconjugate roots for a particular minimal polynomial.Example:m = 4;e = gf(6,4);em = minpol(e) %Find minimal polynomial of e. em is in%GF(2^m)emr = roots(gf([0 0 1 1 1],m))%Roots of D^4+D^3+1 in GF(2^m)The output is:em = GF(2) array.Array elements =0 0 1 1 1emr GF(2^4) array. Primitive polynomial D^4+D+1 (19 decimal)Array elements =9111314Generation of generator polynomial of BCH codes:For BCH codes generator polynomials can be calculated by following equation asg(X) = LCM{ Ф1(X), Ф3(X), Ф5(X), Ф7(X)…… Ф2t-1(X)} where Фi(X) are the minimal polynomials.Now for m = 4, we can calculate the generator polynomial for (15, 11), (15, 7) and (15, 5) BCH codes as following:g1(X) = Ф1(X) for (15, 11) BCH code, t = 1g2(X) = LCM{ Ф1(X), Ф3(X)} for (15, 7) BCH code, t = 2g3(X) = LCM{ Ф1(X), Ф3(X), Ф5(X)} for (15, 5) BCH code, t = 3In matlab you can easily generate the generator polynomial by using bchgenpoly() function.Example:genpoly1 = bchgenpoly(15,11)genpoly2 = bchgenpoly(15,7)The output is:genpoly = GF(2) array.Array elements =1 0 0 1 1genpoly = GF(2) array.Array elements =1 1 1 0 1 0 0 0 1Now you can shift this generator polynomial using circshift() command to create the generator matrix and encode the message block by block.。