当前位置:文档之家› MATLAB应用

MATLAB应用

8
plot(t,y,’ro’) 绘制试验数据的散点图
2018/11/24
7
绘制拟和曲线: AC=b >>c0=exp(-t') %计算衰减指数向量 >>A=[ones(6,1),c0] %建立方程组的系数矩阵 >>b=y' %建立方程组等式右侧列向量 >>C=pinv(A)*b %解超定方程组(或者用左除法) C= 0.4759 0.3413 >>t=0:0.05:2.4; >>y1=C(1)+C(2)*exp(-t); >>plot(t,y1, '-k') >>grid on >>legend('散点图','拟和曲线')
sym2poly poly2sym
16
>>p=[1 2 1];
>>k=poly2str(p, 'x') >> k=poly2str([1 2 1],'x') or:
poly2str
k= x^2 + 2 x + 1 >> whos k Name Size Bytes Class k 1x16 32 char array Grand total is 16 elements using 32 bytes
教学内容
1. 线性方程组的数值解法
2. 多项式运算
3. 插值和数据拟和
4. 微分与积分 5. 极值问题 6. 常微分方程的数值解
2018/11/24 1
5.1 线性方程组求解
MATLAB中有两种除运算左除和右除。 对于方程AX=b,A 为m×n矩阵,有三种情 况: 当m=n时,此方程成为“恰定”方程 当m>n时,此方程成为“超定”方程 当m<n时,此方程成为“欠定”方程 MATLAB定义的除运算可以很方便地解上 述三种方程
10
5.1.3 欠定方程组的解
当方程数少于未知量个数时,即不定情况, 有无穷多个解存在。MATLAB将寻求一个 基本解,其中最多只能有m个非零元素。
2018/11/24
9
解欠定方程组: >>A=[1 -2 1 1;1 -2 1 -1;1 -2 1 5] >>b=[1 -1 5]’ >>X1=A\b Warning:Rank deficient,rank=2 tol=4.6151e-015 X1= 0 -0.0000 0 1.0000 >>X2=pinv(A)*b X2= 0 -0.0000 0.0000 1.0000
12
5.2.1 多项式的表示
MATLAB语言把多项式表达成一个行向量, 该向量中的元素是按多项式降幂排列的。
f(x)=anxn+an-1xn-1+……+a0 系数向量:p=[an an-1 …… a1 +a0] 例:
P( x) x 2 x 5x 3x 13
5 4 3
p=[1 2 5 0 3 13]
2018/11/24 13
多项式的阶次是依照系数向量p的长度减1而得。 N=length(p)-1
>>syms x >>P=x^5+2*x^4+5*x^3+13+x; >>p=sym2poly(P) p= 1 2 5 0 1 13 >> whos p P Name Size Bytes Class P 1x1 164 sym object p 1x6 48 double array >>poly2sym(p) ans= x^5+2*x^4+5*x^3+x+13
11
5.1 多项式运算
函数名 poly2str sym2poly poly2sym polyder polyint residue roots Taylortool
2018/11/24
说明 由系数多项式构成字符串多项式 由符号多项式构成系数多项式 由系数多项式构成符号多项式 求符号多项式的微商表达式 求符号多项式的积分表达式 分式多项式展开成部分分式 求多项式的根 Taylor级数工具
2018/11/24 5
例:今有一组试验数据,时间向量t=[0 0.3 0.8 1.1 1.6 2.3],输出 向量y=[0.82 0.72 0.63 0.6 0.55 0.5],考虑用衰减指数曲线拟和它。 求衰减指数曲线的系数,绘出散点图和拟和曲线图。
设衰减的指数曲线方程为:y c1 c2 et 将时间向量t代入,得一组6个方程式的超定方程组: c1+c2=0.82 绘制散点图: c1+0.7408c2=0.72 在MATLAB中输入如下程序: c1+0.4493c2=0.63 >>t= [0 0.3 0.8 1.1 1.6 2.3] c1+0.3329c2=0.6 c1+0.2019c2=0.55 >> y=[0.82 0.72 0.63 0.6 0.55 0.5] c1+0.1003c2=0.5 >>plot(t,y, 'ro' ) &的根
Roots: 多项式的根可用命令roots求得。 例: >>p=[2 1 4 5] >> r=roots(p) 得到 r= 0.2500 + 1.5612i 0.2500 - 1.5612i -1.0000 所有根由一个列向量给出。 Poly: 由根值可得原始多项式的各系数,但可能相差一个常数倍。 例: >> poly(r) ans = 1.0000 0.5000 2.0000 2.5000 注意:若存在重根,这种转换可能会降低精度。
2018/11/24 2
5.2.1 恰定方程组的解 方程AX=b(A为非奇异) X=A-1 b 矩阵逆 两种解:
1. X=inv(A)b — 采用求逆运算解方程
2. X=A\b — 采用左除运算解方程
2018/11/24 3
例:
x1+2x2=8 2x1+3x2=13
1 2 x1 8 = 2 3 x2 13
方程Ax=b A=[1 2;2 3];b=[8;13]; x=inv(A)*b x= 2.00 3.00
A
x=A\b x= 2.00 3.00
x = b
6
5.1.2 超定方程组的解
方程 AX=b ,m>n时,此时不存在精确解。
MATLAB使用广义逆矩阵(pinv)或左除进 行计算。左除计算结果满足最小二乘解,但 广义逆法求解速度快。 X=pinv(A)*b X=A\b
12
5.2 多项式运算
函数名 conv deconv poly polyval polyfit polytool compan polyeig 2018/11/24 Polyvalm 说明 多项式乘法 多项式除法 由多项式的根构造系数多项式 求多项式的值 多项式的曲线拟和 多项式的曲线拟和工具 由系数多项式生成伴随矩阵 多项式的特征值 求矩阵多项式的值
相关主题