浅析MATLAB在统计分析与常微分方程中的应用
2019-03-26袁朱红
袁朱红
(河北农业大学理学院数学系 071000)
随着社会的快速发展以及信息技术的广泛应用,数学发挥着越来越大的作用.在强调数学定义、定理的证明以及推理计算过程的同时,不能忽略数学在解决现实问题中的应用性.如果在数学学习中引入MATLAB,不仅能够实现计算的精准性,而且还能高效地解决数学中的实际应用问题.
一、MATLAB在数据统计分析中的应用
在传统学习中,学生都是通过肉眼观察比较数据求其最值,笔算各种数据进行统计分析.针对数据量少的情况,学生可以完成.但是一旦数据量增大,学生将很难快速准确计算出相应结果.而在实际应用中,经常需要对大量数据进行统计处理,对此MATLAB能提供相关函数简单化地实现.
>>A=[1,-1,2,3;5,1,-4,2;3,0,5,2;11,15,10,9]%建立矩阵A.
>>max(max(A))%求数据矩阵的最大值.
ans=15
>>min(min(A))%求数据矩阵的最小值.
ans=-4
>>sum(sum(A,2))%数据矩阵求和.
ans=64
>>prod(prod(A,2))%数据矩阵求积.
ans=0
>>mean(mean(A,2))%求数据矩阵的算术平方根.
ans=4
>>median(median(A,2))%求数据矩阵的中值.
ans=2
>>cumsum(A,dim)%当dim为1时,返回一个矩阵,其第i列是A的第i列的累加和向量;当dim为2时,返回一个矩阵,其第i行是A的第i行的累加和向量(矩阵累乘积函数cumprod与之用法相同).
>>std(A,flag,dim)%当dim为1时,求各列元素的标准差;当dim为2时,求各行元素的标准差.
>>var(A,flag,dim)%当dim为1时,求各列元素的方差;当dim为2时,求各行元素的方差.
>>corrcoef(A)%矩阵A形成的一个相关系数矩阵.
二、MATLAB在常微分方程中的应用
众所周知,只有一些典型的常微分方程,才能求出它们的解析解并用初始条件确定表达式中的任意常数.然而在实际问题中遇到的常微分方程往往很复杂,在许多情况下得不出解析解,这就需要使用数值解法.
考虑常微分方程的初值问题:y′=f(x,y),y(x0)=y0,所谓其数值解法,就是在x0 1.欧拉法 MATLAB命令如下: >>x1(1)=0;y1(1)=1;y2(1)=1;h=0.1; fork=1:10 x1(k+1)=x1(k)+h; y1(k+1)=(1-h)*y1(k)+h*x1(k)+h; y2(k+1)=(y2(k)+h*x1(k+1)+h)/(1+h); end x1,y1,y2,%y1是向前欧拉解,y2是向后欧拉解. 2.龙格—库塔法 MATLAB提供了多个求常微分方程初值问题数值解函数,一般调用格式如下: [t,y]=solver(filename,ts,y0) 其中,t和y分别是自变量值和函数值;solver为求常微分方程数值解的函数,如下表1列出了常用函数采用的方法和适用的场合;filename是由待解方程写成的函数文件;ts表示求解区间[t0,tf],t0、tf分别为自变量的初值与终值;y0是函数的初值. 表1 求常微分方程数值解的常用函数 首先在MATLAB中建立函数文件funt.m. function yp=funt(t,y), yp=y2-t-2; 求解微分方程,取t0=0,tf=10,输入命令: [t,y]=ode23(‘funt’,[0,10],2)%求数值解. 在数学学习中引入MATLAB,不仅可以解决手算无法处理的问题,还能增强解决数学实际问题的应用能力.数学理论学习与实践应用一直都是相辅相成的关系,而MATLAB软件的应用作为数学实践不可忽视的一部分,能够有效提高学生学习的兴趣和主观能动性,对培养创新应用型人才具有重大的意义.