Matlab学习笔记--数值计算
2017-10-30 21:21
501 查看
数据拟合
多项式运算
多项式创建
多项式求值
多项式求根
多项式乘法运算
多项式除法运算
多项式的微积分
代数方程求解
poly用于根据根矢量返回多项式系数的形式。
roots与poly互为逆操作
tips:知道多项式的根x1,x2,x3⋅⋅⋅⋅⋅⋅xn.那么多项式就是y=(x−x1)∗(x−x2)∗(x−x3)⋅⋅⋅⋅⋅⋅(x−xn)展开即可
c(x)=a(x)∗b(x)=(x2+2x+3)∗(4x2+5x+6)
polyint(p):求p的不定积分,常数项为0
a11x1+a12x2+⋅⋅⋅+a1nxn=y1a21x1+a22x2+⋅⋅⋅+a2nxn=y1a31x1+a32x2+⋅⋅⋅+a3nxn=y1⋅⋅⋅⋅⋅⋅an1x1+an2x2+⋅⋅⋅+annxn=y1=>⎡⎣⎢⎢⎢⎢⎢a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann⎤⎦⎥⎥⎥⎥⎥∗⎡⎣⎢⎢⎢⎢x1x2⋮xn⎤⎦⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢y1y2⋮yn⎤⎦⎥⎥⎥⎥⎥
所以⎡⎣⎢⎢⎢⎢x1x2⋮xn⎤⎦⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann⎤⎦⎥⎥⎥⎥⎥−1∗⎡⎣⎢⎢⎢⎢⎢y1y2⋮yn⎤⎦⎥⎥⎥⎥⎥
x1+2x2=82x1+3x2=13
多项式运算
多项式创建
多项式求值
多项式求根
多项式乘法运算
多项式除法运算
多项式的微积分
代数方程求解
数据拟合
>> x0=0:0.1:1; >> y0=[-0.447 1.978 3.11 5.25 5.02 4.66 4.01 4.58 3.45 5.35 9.22]; >> p=polyfit(x0,y0,3) %数据拟合为3次函数型 p = 56.6915 -87.1174 40.0070 -0.9043 >> xx=0:0.01:1;yy=polyval(p,xx); %计算函数的预计值 >> plot(xx,yy,'-b',x0,y0,'or') %绘制拟合曲线和离散数据点
多项式运算
多项式创建
>> p=[1 -5 -4 3 -2 1]; >> y=poly2sym(p) y =x^5 - 5*x^4 - 4*x^3 + 3*x^2 - 2*x + 1 >> y=poly2str(p,'x') y = x^5 - 5 x^4 - 4 x^3 + 3 x^2 - 2 x + 1
多项式求值
>> p1=polyval(p,6) p1 =529
多项式求根
roots用于根据多项式系数的行向量求解多项式的根。poly用于根据根矢量返回多项式系数的形式。
roots与poly互为逆操作
>> p=[1 2 3 4];% >> y=poly2sym(p) y =x^3 + 2*x^2 + 3*x + 4 %得到多项式 >> r=roots(p) %求多项式的根 r = -1.6506 + 0.0000i -0.1747 + 1.5469i -0.1747 - 1.5469i >> p2=poly(r) p2 = 1.0000 2.0000 3.0000 4.0000 %由多项式的根得到原多项式 %------------------------------------------------------------------- >> p=[1 2 1]; >> y=poly2sym(p) y =x^2 + 2*x + 1 >> r=roots(p) r = -1 -1 >> r=[0 2]; >> p2=poly(r) p2 = 1 -2 0
tips:知道多项式的根x1,x2,x3⋅⋅⋅⋅⋅⋅xn.那么多项式就是y=(x−x1)∗(x−x2)∗(x−x3)⋅⋅⋅⋅⋅⋅(x−xn)展开即可
多项式乘法运算
conv(a,b) a,b为两个多项式的系数向量c(x)=a(x)∗b(x)=(x2+2x+3)∗(4x2+5x+6)
>> a=[1 2 3];b=[4 5 6]; >> c=conv(a,b) c = 4 13 28 27 18 >> poly2str(c,'x') ans = 4 x^4 + 13 x^3 + 28 x^2 + 27 x + 18
多项式除法运算
deconv(a,b) 参数a,b表示为两个多项式系数的行向量,表示多项式a除以多项式b>> a=[1 2 3];c=[4 13 28 27 18]; >> [d,r]=deconv(c,a) d = 4 5 6 %返回商多项式 r = 0 0 0 0 0 %返回余多项式
多项式的微积分
polyder(p):求p的微分polyint(p):求p的不定积分,常数项为0
>> a=[1 2 3 4 5];poly2str(a,'x') ans = x^4 + 2 x^3 + 3 x^2 + 4 x + 5 >> b=polyder(a) %微分 b = 4 6 6 4 >> poly2str(b,'x') ans = 4 x^3 + 6 x^2 + 6 x + 4 >> c=polyint(a) %不定积分 c = 0.2000 0.5000 1.0000 2.0000 5.0000 0 >> poly2str(c,'x') ans =0.2 x^5 + 0.5 x^4 + x^3 + 2 x^2 + 5 x
代数方程求解
ax=b=>x=ba=a−1ba11x1+a12x2+⋅⋅⋅+a1nxn=y1a21x1+a22x2+⋅⋅⋅+a2nxn=y1a31x1+a32x2+⋅⋅⋅+a3nxn=y1⋅⋅⋅⋅⋅⋅an1x1+an2x2+⋅⋅⋅+annxn=y1=>⎡⎣⎢⎢⎢⎢⎢a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann⎤⎦⎥⎥⎥⎥⎥∗⎡⎣⎢⎢⎢⎢x1x2⋮xn⎤⎦⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢y1y2⋮yn⎤⎦⎥⎥⎥⎥⎥
所以⎡⎣⎢⎢⎢⎢x1x2⋮xn⎤⎦⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢a11a21⋮an1a12a22⋮an2⋯⋯⋱⋯a1na2n⋮ann⎤⎦⎥⎥⎥⎥⎥−1∗⎡⎣⎢⎢⎢⎢⎢y1y2⋮yn⎤⎦⎥⎥⎥⎥⎥
x1+2x2=82x1+3x2=13
>> a=[1 2;2 3];b=[8;13]; >> x=a\b %矩阵除法求解 x = 2.0000 3.0000 >> x=inv(a)*b %等价矩阵求逆求解 x = 2 3
相关文章推荐
- matlab学习笔记 数值计算
- matlab学习笔记--数值计算
- MATLAB学习笔记(三):符号计算(积分+导数)
- 【Matlab学习笔记】(一)初识Matlab和简单计算
- MATLAB学习笔记:随机模拟法计算数值积分
- MATLAB学习笔记:求数值微分
- 【批处理学习笔记】第二十一课:数值计算
- MATLAB上的GPU加速计算——学习笔记
- 深度学习第四章-数值计算笔记
- MATLAB学习笔记(八)——MATLAB数值积分与微分
- MATLAB学习笔记:数值积分
- MATLAB学习笔记(九)——MATLAB符号计算
- MATLAB基础学习----数值的计算(1)
- Matlab学习笔记--符号计算
- 数值计算学习笔记
- matlab学习笔记一 符号计算
- MATLAB学习笔记:常微分方程的数值解
- MATLAB学习笔记(六)——MATLAB数据分析与多项式计算
- MATLAB学习笔记(六):数值数组及向量化运算(数组创建)
- matlab基础学习——数值计算