210 likes | 335 Views
数 学 实 验. 用数学软件解决高等代数问题. 数 学 实 验. 一 多项式运算 二 矩阵和行列式计算 三 线性方程组的解. 用系数矩阵 P=[an,…,a1,a0] 表示多项式. 一 多项式运算. 多项式排版与显示的相关函数 1 、 expand (e) 对表达式 e 进行展开 2 、 factor (e) 对表达式 e( 正整数 ) 进行因式 ( 因子 ) 分解 3 、 horner (e) 把表达式 e 分解成嵌套形式 4 、 simplify (e) 运用多种恒等式转换对 e 进行综合化简
E N D
数 学 实 验 用数学软件解决高等代数问题
数 学 实 验 一 多项式运算 二 矩阵和行列式计算 三 线性方程组的解
用系数矩阵 P=[an,…,a1,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] % p为多项式 x=roots(p) % x为解向量 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进行因式分解
计算 分子和分母,并化简分子 • 假设人口服从指数增长模型,即 ,其中 表 示初始人口数, 表示人口增长率, 表示时间, 表示 时刻时人口数,请根据以下数据采用最小二乘拟合法(1次 多项式拟合)估计出人口增长率 和初始人口 一 多项式运算 syms x y % x,y为符号变量 [n,d]=numden((x+y)/(x-y)-4*x*y/((x-y)*(x+y)))% 通分计算分子n和分母d simple(n) % 化简分子n
一 多项式运算 • 首先根据 变形,两边取对数,得 令 则变为 t=[0:10:210]; % 从0到210年 p=[3.9,5.3,7.2,…,281.4]; % 人口数 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-’); % 拟合人口
一 多项式运算 • 计算 的商、余多项式和导数多项式 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) 生成n×n的全1矩阵 ones(m,n) 生成m×n的全1矩阵 3、zeros(n) 生成n×n的全0矩阵 zeros(m,n) 生成m×n的全0矩阵 4、rand(n) 生成n×n的均分布随机矩阵 rand(m,n) 生成m×n的均分布随机矩阵 5、randn(n) 生成n×n的正态分布随机矩阵 randn(m,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 2 6 24 20 30 63 56 72 ]
二 矩阵和行列式计算 • 试对比矩阵和数组的转置的共轭性 R=[1 2;3 4]; % 矩阵A的实部R V=eye(2); % 矩阵A的虚部V A=R+V*i ; % 矩阵A A’ % 矩阵的转置(共轭转置) 得到 A’=[ 1.0000 - 1.0000i 3.0000 2.0000 4.0000 - 1.0000i ] A.’ % 数组的转置(非共轭转置) 得到 A.’=[ 1.0000 + 1.0000i 3.0000 2.0000 4.0000 + 1.0000i ]
二 矩阵和行列式计算 • 计算矩阵的逆矩阵、矩阵的秩和特征值 A=[3 3 -4 -3; 0 6 1 1; 5 4 2 1; 2 3 3 2] % 矩阵A的实部R Ainv=inv(A); % 矩阵A的逆矩阵Ainv 得到 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 ] k=rank(A) % 计算矩阵A的秩k 得到 k=4 d=eig(A) % 计算矩阵A的特征值d 得到 d=[7.3156; 2.8443 + 4.9345i; 2.8443 - 4.9345i; -0.0042]
二 矩阵和行列式计算 • 用符号计算验证矩阵 的行列式的值、逆矩阵和特征值 syms a11 a12 a21 a22; % 定义符号变量 A=[a11 a12; a21 a22]; % 定义符号矩阵 det(A) % 计算符号矩阵的行列式的值 得到 a11*a22-a12*a21 inv(A) % 计算符号矩阵的逆矩阵 得到 [ a22/(a11*a22-a12*a21), -a12/(a11*a22-a12*a21) -a21/(a11*a22-a12*a21), a11/(a11*a22-a12*a21) ] eig(A) % 计算符号矩阵的特征值 得到 [ 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) % 计算矩阵A的特征向量v和特征值d 得到 v=[ -0.5397 0.6127 0.5774 -0.2607 -0.7738 0.5774 0.8004 0.1611 0.5774 ] d=[ 1.0000 0 0 0 1.0000 0 0 0 7.0000 ] 注:各特征值对应的特征向量为v中所对应的特征列向量,但仅为近似值。
左除法解线性方程组 三 线性方程组的解 • 主要有左除法和函数法解线性方程组 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) ]
左除法解符号线性方程组 三 线性方程组的解 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函数解线性方程 % 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 函数解线性方程组 % 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