Matlab分析函数、多项式、非线性函数
作者:互联网
目录
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 多项式函数库
2.1 多项式的四则运算
(1)多项式的表示
用各幂次前的系数向量表示,从高到低。 a=[a(1), a(2),…,a( n ), a( n +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
%例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)部分分式展开 (2)求反变换 (假设分母比分子阶数高) [r,p,k]=residue(b,a) y(t)=r(1)*exp(p(1)*t)+ r(2)*exp(p(2)*t)+ ⋯
3 非线性函数分析及函数的数值积分
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