高等代数数学实验PPT

Download Report

Transcript 高等代数数学实验PPT

数 学 实 验
用数学软件解决高等代数问题
数 学 实 验
一 多项式运算
二 矩阵和行列式计算
三 线性方程组的解
一 多项式运算
• 用系数矩阵 P=[an,…,a1,a0] 表示多项式
P ( x )  an x n  an1 x n1    a1 x  a0
 多项式排版与显示的相关函数
1、expand (e)
对表达式e进行展开
2、factor (e)
对表达式e(正整数)进行因式(因子)分解
3、horner (e)
把表达式e分解成嵌套形式
4、simplify (e)
运用多种恒等式转换对e进行综合化简
5、simple (e)
运用包括simplify的各种指令化简
6、pretty (e)
以习惯的“书写”方式显示表达式e
7、collect (e, x)
对表达式e中指定的符号对象x的合并同类项
8、[n,d]=numden(e)
对分式e进行通分,提取分子n和分母d
一 多项式运算
 多项式运算的相关函数
1、r=roots(p)
求多项式p的根
2、p=conv(p1, p2)
多项式相乘,p是多项式p1和p2的乘积多项式
3、[q, r]=deconv(p1, p2) 多项式相除,p1/p2的商多项式为q,余多项式为r
4、p=poly (AR)
矩阵的特征多项式,p为矩阵AR的特征多项式
5、dp=polyder(p)
导数多向式, dp为p的导数多项式
6、dp=polyder(p1,p2)
dp为p1,p2乘积的导数多项式
8、[n,d]=polyder(p1,p2) 对有理分式(p1/p2)求导所得的分式(n/d)
9、p=polyfit(x,y,n)
求x,y向量给定数据的n阶多项式拟合
一 多项式运算
• 验证多项式
p=[1,-2,1]
x=roots(p)
x  2x  1
2
的根
% p为多项式
% x为解向量
3
3
2
2
x

y

(
x

y
)(
x

xy

y
)
• 验证多项式
syms x y
%x,y为符号变量
法一
expand((x-y)*(x^2+x*y+y^2))
% 展开(x-y)*(x^2+x*y+y^2)
法二
factor(x^3-y^3)
% 对x^3-y^3进行因式分解
法三
horner(x^3-y^3)
% 对x^3-y^3进行因式分解
一 多项式运算
x y
4 xy
• 计算 x  y  ( x  y )( x  y )
分子和分母,并化简分子
syms x y
% x,y为符号变量
[n,d]=numden((x+y)/(x-y)-4*x*y/((x-y)*(x+y)))
% 通分计算分子n和分母d
simple(n)
% 化简分子n
x0
• 假设人口服从指数增长模型,即x( t )  x0e rt ,其中
x (t )
表
r
t
t
示初始人口数, 表示人口增长率, 表示时间, 表
示
x0
r
年份
1790
1800
1810
1820
1830
1840
1850
1860
1870
1880
1890
时刻时人口数,请根据以下数据采用最小二乘拟合法
人口
(1次3.9 5.3 7.2 9.6 12.9 17.1 23.2 31.4 38.6 50.2 62.9
年份
1900
1910
1920
1930
1940
1950
1960
1970
1980
1990
2000
多项式拟合)估计出人口增长率
和初始人口
人口
76.0
92.0 106.5 123.2 131.7 150.7 179.3
204.0 226.5 251.4 281.4
一 多项式运算
•
x( t )  x0 e rt
首先根据
y 变形,两边取对数,得
ln x( t ), a  ln x0 ,
ln x( t )  ln x0  rt ,
则变为
y 令
a  rt
t=[0:10:210];
p=[3.9,5.3,7.2,…,281.4];
% 从0到210年
% 人口数
logp=log(p);
% y=lnx
[a,s]=polyfit(t, logp, 1)
% 最小二乘法
p2=polyval(a, t);
% 拟合y
plot((1790:10:2000), p, ‘b+’)
% 实际人口
hold on
% 继续绘图
plot((1790:10:2000), exp(p2), ‘r-’);
% 拟合人口
一 多项式运算
一 多项式运算
( s 2  2)( s  4)( s  1)
• 计算
s3  s  1
的商、余多项式和导数多项
式
p1=conv([1,0,2],conv([1,4],[1,1]))
% p1为分子多项式
p2=[1,0,1,1]
% p2为分母多项式
[q,r]=deconv(p1,p2)
% 计算出商多项式和余多项式
cq=‘商多项式’;cr=‘余多项式’;
% cq,cr为字符串
disp([cq, poly2str(q,’s’)])
% 输出商多项式
disp([cr, poly2str(r,’s’)])
% 输出余多项式
[n,d]=polyder(p1,p2)
% 计算(p1/p2)的导数多项式
disp([poly2str(n,’s’);poly2str(d,’s’)])
% 输出分子,分母的导数多项式
二 矩阵和行列式计算
•1、magic(n)
常用的矩阵生成函数
生成n×n的魔方矩阵
2、ones(n)
ones(m,n)
3、zeros(n)
zeros(m,n)
4、rand(n)
rand(m,n)
5、randn(n)
randn(m,n)
生成n×n的全1矩阵
生成m×n的全1矩阵
生成n×n的全0矩阵
生成m×n的全0矩阵
生成n×n的均分布随机矩阵
生成m×n的均分布随机矩阵
生成n×n的正态分布随机矩阵
生成m×n的正态分布随机矩阵
6、eye(n)
生成n×n的单位矩阵
7、diag(v)
根据向量v生成dim(v)阶的对角形矩阵或提取对角元
二 矩阵和行列式计算
•1、A±B
常用的矩阵或行列式运算函数
矩阵或数组的加法(减法)
2、A*B
(A.*B)
矩阵的乘法(数组乘)
3、A\B
(A/B)
矩阵的左除(右除)
4、A’
(A.’)
矩阵的转置(数组的转置)
5、inv(A)
计算矩阵A的逆矩阵A-1
6、det(A)
计算方阵A的行列式的值
7、rank(A)
计算矩阵A的秩
8、eig(A)
计算矩阵A的特征值和特征向量
9、lu(A)
将方阵A分解成准上三角形矩阵L×上三角形矩阵U
10、qr(n)
将矩阵A分解成正交矩阵Q×上三角形矩阵R
11、svd(m,n)
将矩阵A进行svd分解
二 矩阵和行列式计算
• 试比较矩阵的乘法与数组乘法的区别
A=[1 2 3;4 5 6;7 8 9];
% 矩阵A
B=[3,1,2;6,4,5;9,7,8];
% 矩阵B
A*B
% 矩阵的乘法
得到
A*B=[
42 30 36
96 66 81
150 102 126
% 数组的乘法
A.*B
得到
A.*B=[
]
3
24
63
2
20
56
6
30
72
]
二 矩阵和行列式计算
• 试对比矩阵和数组的转置的共轭性
R=[1 2;3 4];
% 矩阵A的实部R
V=eye(2);
% 矩阵A的虚部V
A=R+V*i;
% 矩阵A
A’
% 矩阵的转置(共轭转置)
得到
A’=[
A.’
得到
A.’=[
1.0000 - 1.0000i
2.0000
3.0000
4.0000 - 1.0000i
]
% 数组的转置(非共轭转置)
1.0000 + 1.0000i
2.0000
3.0000
4.0000 + 1.0000i
]
二 矩阵和行列式计算
•A=[3计算矩阵的逆矩阵、矩阵的秩和特征值
3 -4 -3; 0 6 1 1; 5 4 2 1; 2 3 3 2]
% 矩阵A的实部R
% 矩阵A的逆矩阵Ainv
Ainv=inv(A);
得到
Ainv=[
-7.0000 5.0000 12.0000 -19.0000
3.0000 -2.0000 -5.0000 8.0000
41.0000 -30.0000 -69.0000 111.0000
-59.0000 43.0000 99.0000 -159.0000
]
% 计算矩阵A的秩k
k=rank(A)
得到
k=4
d=eig(A)
得到
d=[7.3156;
% 计算矩阵A的特征值d
2.8443 + 4.9345i;
2.8443 - 4.9345i;
-0.0042]
二 矩阵和行列式计算
•
 a11
A 
用符号计算验证矩阵 a21
a12 
a 22 
的行列式的
值、逆矩阵和特征值% 定义符号变量
syms a11 a12 a21 a22;
A=[a11 a12; a21 a22];
% 定义符号矩阵
det(A)
% 计算符号矩阵的行列式的值
得到
inv(A)
得到
eig(A)
得到
a11*a22-a12*a21
% 计算符号矩阵的逆矩阵
[ a22/(a11*a22-a12*a21), -a12/(a11*a22-a12*a21)
-a21/(a11*a22-a12*a21), a11/(a11*a22-a12*a21)
]
% 计算符号矩阵的特征值
[ 1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)
1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2) ]
二 矩阵和行列式计算
• 试验证三阶行列式的计算公式,并推导出
四级行列式的计算公式
syms
a11 a12 a13 a21 a22 a23 a31 a32 a33;
% 定义符号变量
A=[a11 a12 a13;a21 a22 a23;a31 a32 a33];
% 计算三阶符号矩阵的行列式的值
det(A)
得到
% 定义符号矩阵
a11*a22*a33-a11*a23*a32-a21*a12*a33+a21*a13*a32+a31*a12*a23-
a31*a13*a22
syms a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34 a41 a42 a43 a44;
A=[a11 a12 a13 a14;a21 a22 a23 a24;a31 a32 a33 a34;a41 a42 a43 a44];
dt=det(A)
% 计算四阶符号矩阵的行列式的值
simple(dt)
% 进行化简
结果略
二 矩阵和行列式计算
•A=[3求矩阵的特征值和特征向量
2 2; 2 3 2; 2 2 3]
% 矩阵A的实部R
[v,d]=eig(A)
得到
v=[
d=[
% 计算矩阵A的特征向量v和特征值d
-0.5397 0.6127 0.5774
-0.2607 -0.7738 0.5774
0.8004 0.1611 0.5774
]
1.0000
0
0
]
0
0
1.0000 0
0
7.0000
注:各特征值对应的特征向量为v中所对应的特征列向量,但仅为近似值。
三 线性方程组的解
•• 主要有左除法和函数法解线性方程组
左除法解线性方程组
10 x 1 3 x 2  x 3  14

 2 x1  10 x 2  3 x 3  5
 x  3 x  10 x  14
 1
2
3
A=[10 3 1; 2 -10 3; 1 3 10];
% 系数矩阵A
b=[14; -5; 14];
% 常数项
x=A\b
% 左除法求线性方程组
得到
x=[
-(a12*b2-b1*a22)/(a11*a22-a12*a21)
(a11*b2-a21*b1)/(a11*a22-a12*a21)
]
三 线性方程组的解
• 左除法解符号线性方程组
a11 x 1  a12 x2  b1

a21 x1  a22 x2  b2
syms a11 a12 a21 a22 b1 b2;
% 符号变量
A=[a11 a12; a21 a22];
% 系数矩阵A
b=[b1;b2];
% 常数项
x=A\b
% 左除法求线性方程组
得到
x=[
-(a12*b2-b1*a22)/(a11*a22-a12*a21)
(a11*b2-a21*b1)/(a11*a22-a12*a21)
]
三 线性方程组的解
• 利用solve函数解线性方程
 x1  2 x2  x 3  0

 2 x1  x 2  x 3  1
x  x  2x  3
 1
2
3
% solve函数求解线性方程组
s=solve('x1+2*x2+x3=0','2*x1-x2+x3=1','x1-x2+2*x3=3'
得到
s.x1=-1/2
s.x2=-1/2
s.x3= 3/2
三 线性方程组的解
• solve 函数解线性方程组
 x  2 y  3z  2

4 x  7 y  2 z  4
7 x  4 y  3 z  5

% solve函数求解线性方程组
s=solve('x+2*y+3*z=0',‘4*x+7*y+2*z=4',‘7*x+4*y+3*z=5')
得到
s.x=61/82
s.y=11/41
s.z= -35/82