MATLAB基础笔记#7(数值计算)

MATLAB数值计算

1 数据分析函数库

  • 基本的数据分析
    基本的数据处理功能按进行(行也可以)。
函数功能
max( )求各列最大值
min( )求各列最小值
mean( )求各列平均值
sum( )求各列元素和
std( )求各列标准差

标准差是指列中N个元素与该列平均值之差的平方和开方。

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)
  • 用于随机数据分析的函数
函数功能
rand(m,n)产生在0~1之间均匀分布的m行、n列随机数矩阵
randn(m,n)产生正态分布的m行、n列随机数矩阵,均值为0,标准差为1
y= 5*(randn(1,10)-.5)
plot(y)
  • 用于相关分析的函数
函数功能
corrcoef(x,y)计算两个向量x,y的相关系数
cov(x,y)计算x,y的协方差矩阵
x= rand(1,10)
y= rand(1,10)
corrcoef(x,y)

2 多项式函数库

2.1 多项式的四则运算

  • 多项式的表示
    用各幂次前的系数向量表示,从高到低。零系数不能省去。
    a(x)=a1xn+a2xn-1+…+anx+an+1
    a=[a(1), a(2),…,a(n), a(n+1)]

a(x)=x3+2x2+1
b(x)=x2+2x+1

a=[1, 2, 0, 1]
b=[1, 2, 1]
  • 多项式的运算
  1. 多项式相加:a+b,长度必须相同,短的在前面以“0”补齐

  2. 多项式相乘:conv(a,b)

  3. 多项式相除:[q,r]=deconv(a,b)
    q:商式
    r:余子式
    注意:a是分子,b是分母,分母系数向量的第一位不能为零。

a(x)=2x3+4x2+6x+8
b(x)=3x2+6x+9

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)

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

函数功能
polyder(a)多项式求导
roots(a)多项式求根
poly(a)由根求多项式系数
polyval(a,xv)多项式求值,给多项式a中的自变量x赋予值xv

a(x)=2x3+4x2+6x+8

a=[2, 4, 6, 8]
a1=polyder(a)
a2=roots(a)
a3=poly(a2)
a4=polyval(a,1)

2.3 多项式拟合

拟合:根据一组已知的数据找到其数学表达式。拟合方法:使方差最小,应用最小二乘法。
p=polyfit(x,y,n)
x,y是已知的N个数据点坐标向量,n是拟合的多项式次数,p是求出的多项式系数向量。

在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],试用最小二乘法求拟合曲线。

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];
subplot(2,3,1),plot(x,y,'o','LineWidth',1)%%原始数据

a1=polyfit(x,y,1);		%%线性拟合
xi=linspace(0,1);
yi1=polyval(a1,xi);
subplot(2,3,2),plot(x,y,'o',xi,yi1,'y','LineWidth',1)

a1=polyfit(x,y,2);		%%二次拟合
xi=linspace(0,1);
yi1=polyval(a1,xi);
subplot(2,3,3),plot(x,y,'o',xi,yi1,'c','LineWidth',1)

a1=polyfit(x,y,3);		%%三次拟合
xi=linspace(0,1);
yi1=polyval(a1,xi);
subplot(2,3,4),plot(x,y,'o',xi,yi1,'g','LineWidth',1)

a1=polyfit(x,y,9);		%%九次拟合
xi=linspace(0,1);
yi1=polyval(a1,xi);
subplot(2,3,5),plot(x,y,'o',xi,yi1,'b','LineWidth',1)

a1=polyfit(x,y,10);		%%十次拟合
xi=linspace(0,1);
yi1=polyval(a1,xi);
subplot(2,3,6),plot(x,y,'o',xi,yi1,'LineWidth',1)

%%linspace(X1, X2) generates a row vector of 100 linearly equally spaced points between X1 and X2.

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

  • 非线性函数的分析
    绘制函数曲线:fplot (‘函数名’ ,[初值,终值])
    求函数极值:fmin (‘函数名’ ,初值,终值)
    求函数零点:fzero(‘函数名’,初猜值)
  • 函数的数值积分
    定积分子程序:quad (‘函数名’ ,初值,终值)

例:绘制humps函数曲线(一个函数),求零点值及在1~2之间的定积分。

fplot(‘humps’,[0, 2]),grid
z=fzero(‘humps’,1)
s=quad(‘humps’,1,2)

4 线性微分方程的解

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值