其他分享
首页 > 其他分享> > Matlab分析函数、多项式、非线性函数

Matlab分析函数、多项式、非线性函数

作者:互联网

目录

1 数据分析函数库

1.1 基本的数据分析

1.2 用于随机数据分析的函数

1.3 用于相关分析的函数

2 多项式函数库 

2.1 多项式的四则运算

 2.2 多项式求导、求根和求值 

2.3 多项式拟合 

2.4 线性微分方程的解

3 非线性函数分析及函数的数值积分

3.1 非线性函数分析

3.2 函数的数值积分


1 数据分析函数库

1.1 基本的数据分析

基本的数据处理功能按列进行:   标准差是指列中N 个元素与该列平均值之差的平方和开方。

 

%例1.1
data=[49 99 100 63 63 55 56 89 96 60]';
a=max(data)
b=min(data)
m=mean(data)
s=sum(data)
c=std(data)

  

1.2 用于随机数据分析的函数

rand(m,n) :  产生在0 ~ 1之间 均匀分布 m 行、 n 列随机数矩阵。 randn(m,n) : 产生 正态分布 m 行、 n 列随机 数矩阵,均值为0,标准差为1。
%例1.2 
y= 5*(randn(1,10)-.5)
plot(y)

                    

1.3 用于相关分析的函数

corrcoef(x,y): 计算两个向量 x , y 的相关系数 cov(x,y): 计算 x , y 的协方差矩阵
%例1.3
x= rand(1,10)
y= rand(1,10)
corrcoef(x,y) 
%结果
x =

    0.7060    0.0318    0.2769    0.0462    0.0971    0.8235    0.6948    0.3171    0.9502    0.0344


y =

    0.4387    0.3816    0.7655    0.7952    0.1869    0.4898    0.4456    0.6463    0.7094    0.7547


ans =

    1.0000   -0.0403
   -0.0403    1.0000

多项式函数库 

2.1 多项式的四则运算

(1)多项式的表示

用各幂次前的系数向量表示,从高到低。 a(x)=a_{1}x^{n}+a_{2}x^{n-1}+.....+a_{n}+a_{n+1} a=[a(1), a(2),…,a( n ), a( n +1)] 注意 :零系数不能省去。 a(x)=x^{3}+2x^{2}+1 b(x)=x^{2}+2x+1 a=[1, 2, 0, 1] b=[1, 2, 1]

(2) 多项式的运算 

♥ 多项式相加: a+b     注意: 长度必须相同,短的在 前面 以“0”补齐。 ♥ 多项式相乘: conv(a,b) ♥ 多项式相除: [q,r]=deconv(a,b)     q :商式     r :余子式 注意 : a 是分子, b 是分母,分母系数向量的第一位不能为零。

%例2.1
a=[2, 4, 6, 8]
b=[3, 6, 9]
c=a+[0, b]
d=conv(a,b) [q,r]=deconv(d,a) [q,r]=deconv(a,b)
%结果
c =

     2     7    12    17


d =

     6    24    60    96   102    72


q =

     3     6     9


r =

     0     0     0     0     0     0


q =

    0.6667         0


r =

     0     0     0     8

 2.2 多项式求导、求根和求值 

♥ 多项式求导: polyder(a) ♥ 多项式求根: roots(a) ♥ 由根求多项式系数: poly(a) ♥ 多项式求值: polyval(a,xv)         给多项式a 中的自变量 x 赋予值 xv 。 例2.2  a(x)=2x^{3}+4x^{2}+6x+8
%例2.2
a=[2, 4, 6, 8]
a1=polyder(a)
a2=roots(a)
a3=poly(a2)
a4=polyval(a,1)

%结果
a =

     2     4     6     8


a1 =

     6     8     6


a2 =

  -1.6506 + 0.0000i
  -0.1747 + 1.5469i
  -0.1747 - 1.5469i


a3 =

    1.0000    2.0000    3.0000    4.0000


a4 =

    20

2.3 多项式拟合 

拟合 :根据一组已知的数据找到其数学表达式。 拟合方法 :使方差最小,应用最小二乘法。         p=polyfit(x,y,n) x , y 是已知的 N 个数据点坐标向量, n 是拟合 的多项式次数, p 是求出的多项式系数向量。 例2.3 在11个点( x=0:0.1:1 )上测得的数值为 y=[0.447,1.978,3.28,6.16,7.01,7.32,7.66, 9.56,9.48,9.30,11.2] 试用最小二乘法求拟合曲线。
%例2.3
x=(0:0.1:1)
y=[0.447,1.978,3.28,6.16,7.01,7.32,7.66,9.56,9.48,9.30,11.2]
a1=polyfit(x,y,1);
xi=x
yi1=polyval(a1,xi);
plot(x,y,'o',xi,yi1,'b')

                        

2.4 线性微分方程的解

首先利用 拉普拉斯变换 将线性常微分方程变换 为 代数方程 ,响应的表达式为 s 的有理分式。 (1)部分分式展开 Y(s)=\frac{B(s)}{A(s)} (2)求反变换 (假设分母比分子阶数高) [r,p,k]=residue(b,a)         Y(s)=\frac{r(1)}{s-p(1)}+\frac{r(2)}{s-p(2)}+..... y(t)=r(1)*exp(p(1)*t)+ r(2)*exp(p(2)*t)+ ⋯         y(t)=r(1)e^{p(1)t}+r(2)e^{p(2)t}+.....

非线性函数分析及函数的数值积分

3.1 非线性函数分析

绘制函数曲线         fplot ( ‘ 函数名 ’ ,[初值,终值])  求函数极值         fmin ( ‘ 函数名 ’ ,初值,终值)  求函数零点         fzero ( ‘ 函数名 ’ ,初猜值)

3.2 函数的数值积分

定积分子程序         quad ( 函数名 ,初值,终值)

 

 

function y=humps(x)
y= 1./((x-0.3).^2+0.01)+1./((x-.9).^2+.04)-6;
fplot('humps',[0, 2]),grid
z=fzero('humps',1)
s=quad('humps',1,2)

                          

%结果
z =

    1.2995


s =

   -0.5321

标签:数据分析,函数,多项式,Matlab,拟合,data,函数库
来源: https://blog.csdn.net/weixin_46039719/article/details/122750021