【matlab】数据预处理及微分方程计算

675 阅读2分钟

「这是我参与11月更文挑战的第25天,活动详情查看:2021最后一次更文挑战」。

数据预处理

为什么要进行数据预处理

我们采集到的数据很有可能有很多错误的信息,同时需要对不同性质的信息进行比较,因此,在做数据分析之前,必须进行数据预处理。

Min-max标准化

min-max标准化方法是对原始数据进行线性变换。将A的一个原始数据映射到区间[0,1]中。

公式为:

newresource=(resourcemin)/(maxmin)new_resource=(resource-min)/(max-min)

matlab程序中:X_new=(X-min(X))/(max(X)-min(X))

2.z-score标准化

这种方法是基于原属数据的均值(mean)和标准差(std)进行数据的标准化。将A的原始值x使用z-score标准化到x'。

此方法适用于属性A的最值未知或有超出取值范围的利离群数据的情况。

新数据=(原数据-均值)/标准差

matlab程序:X_new=zscore(X)X_new=(X-mean(X))/std(X)

求微分方程的解析解

matlab命令:

dsolve('方程1', '方程2',…'方程n', '初始条件', '自变量') 

例如:d²y/dx²=0,对应表达式为D2y=0。

求通解

dsolve('Du=1+u^2','t')

方程组情况

[x,y,z]=dsolve('Dx=2x-3y+3z','Dy=4x-5y+3z','Dz=4x-4y+2*z', 't')
xyz分别保存三个未知数的通解

求特解

 y=dsolve('D2y+4Dy+29y=0','y(0)=0,Dy(0)=15','x')

求微分方程的数值解

  • 将高阶方程转化为一阶方程组。
  • 建立相应的函数文件。 
  • 调用求解函数solver(ode23、ode45等)。

注:

  1. 在解nn个未知函数的方程组时,x0x_0xx均为nn维向量,mm文件中的待解方程组应以xx的分量形式写成。
  2. MATLAB提供了77个常微分方程求解器(solver)分别是ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb,其中前3个适用于求解非刚性(Nonstiff)问题,后44个适用于刚性问题。
  3. 刚性:设有一阶常系数线性微分方程组y=Ay+fy'=Ay+f,如果它的Jacobian矩阵的特征值相差十分悬殊;简单点说,就是系统包含多个相互作用但变化速度相差十分悬殊的子过程。

例题