实验13输出特殊矩阵 本工作页练习产生元素满足一定要求的特殊矩阵:主要方法有 1.使用内置函数 Matrix(m,nF)函数 2.直接定义矩阵元素 3.编写程序 例1给出一个4×4阶的 Hilbert矩阵 10.50.3330.25 (1)f(x,y) matrix(4, 4, f) x+y+1 0.3330.250.20.167 0.250.20.1670.143 10.50.3330.25 0.50.3330.250.2 gx,y) matrix(4, 4, g) 0.3330.250.20.167 0.250.20.1670.143 1111 0.3330.250.20.167 0.250.20.1670.143 注意符号运算与浮点运 matrix(4, 4, f) 算结果之间的差异 1 0.20.1670.1430.125 5678(0.1670.1430.250.111 678 11111 1-31 2345 2345 (2)i:=0.3j:=0.3 1+1 3456 1-51-6 1-61-7 Hilbert 10.50.3330.250.2 forj∈0.4 0.50.3330.250.20.167 Hilbert=0.330.250.20.1670.143 0.250.20.1670.1430.125 0.20.1670.1430.1250.111 例2给出一个9×9表
例2 给出一个9 ´ 9 表 Hilbert 1 0.5 0.333 0.25 0.2 0.5 0.333 0.25 0.2 0.167 0.333 0.25 0.2 0.167 0.143 0.25 0.2 0.167 0.143 0.125 0.2 0.167 0.143 0.125 0.111 æ ç ç ç ç ç è ö ÷ ÷ ÷ ÷ ÷ ø = Hilbert h i, j 1 i + j + 1 ¬ for j Î 0.. 4 for i Î 0.. 4 h (3) := h 1 1 2 1 3 1 4 1 2 1 3 1 4 1 5 1 3 1 4 1 5 1 6 1 4 1 5 1 6 1 7 æ ç ç ç ç ç ç ç ç ç è ö ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ø ® 1 1 2 1 3 1 4 1 2 1 3 1 4 1 5 1 3 1 4 1 5 1 6 1 4 1 5 1 6 1 7 æ ç ç ç ç ç ç ç ç ç è ö ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ø h = i, j 1 i + j + 1 (2) i := 0.. 3 j := 0.. 3 := matrix(4,4,f) 1 3 1 4 1 5 1 6 1 4 1 5 1 6 1 7 1 5 1 6 1 7 1 8 1 6 1 7 1 8 1 9 æ ç ç ç ç ç ç ç ç ç è ö ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ø ® 0.333 0.25 0.2 0.167 0.25 0.2 0.167 0.143 0.2 0.167 0.143 0.125 0.167 0.143 0.125 0.111 æ ç ç ç ç è ö ÷ ÷ ÷ ÷ ø = 注意符号运算与浮点运 算结果之间的差异. matrix(4,4, g) 1 0.5 0.333 0.25 0.5 0.333 0.25 0.2 0.333 0.25 0.2 0.167 0.25 0.2 0.167 0.143 æ ç ç ç ç è ö ÷ ÷ ÷ ÷ ø g(x, y) = 0 1 t t x+y ó ô õ := d matrix(4,4,f) 1 0.5 0.333 0.25 0.5 0.333 0.25 0.2 0.333 0.25 0.2 0.167 0.25 0.2 0.167 0.143 æ ç ç ç ç è ö ÷ ÷ ÷ ÷ ø f(x, y) = 1 x + y + 1 (1) := 例1 给出一个4 ´ 4 阶的 Hilbert 矩阵 本工作页练习产生元素满足一定要求的特殊矩阵: 主要方法有 1. 使用内置函数 Matrix(m,n,F) 函数. 2. 直接定义矩阵元素. 3. 编写程序. 实验13 输出特殊矩阵
24681012141618 36912151821 (x,y): =xy matrIx(9,9,f)→51015202530354045 61218243036424854 71421283542495663 91827364554637281 23456789 24681012141618 369121518212427 4812162024283236 1=0.8j=0.88=(+1)(j+1)g=51015202530354045 61218243036424854 81624324048566472 N TAble:=fori∈0.8 123456789 0..8 24681012141618 ←(i+1)(j+1) 69121518212427 N TAble→51015202530354045 612182430364248 71421283542495663 81624324048566472 91827364554637281 例3如下程序可以产生奇数阶幻方 S(n):=|fori∈0.n-1 if mod(n,2)≠0 (n+ nIn (n-1) +2J+n+ 17241810 51219213
f(x, y) := x×y matrix(9,9,f) 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81 æ ç ç ç ç ç ç ç ç ç ç ç è ö ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ø ® i := 0.. 8 j := 0.. 8 g i, j := (i + 1)×(j + 1) g 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81 æ ç ç ç ç ç ç ç ç ç ç ç è ö ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ø = N_NTable n i, j ¬ (i + 1)×(j + 1) for j Î 0.. 8 for i Î 0.. 8 n := N_NTable 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81 æ ç ç ç ç ç ç ç ç ç ç ç è ö ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ø ® 例3 如下程序可以产生奇数阶幻方 S(n) a i, j mod i + j (n + 1) 2 + é ê ë ù ú û ,n é ê ë ù ú û ×n mod i + 2× j + n (n - 1) 2 + é ê ë ù ú û , n é ê ë ù ú û + ¬ ... for j Î 0.. n - 1 for i Î 0.. n - 1 if mod(n,2) ¹ 0 a := S(5) 17 23 4 5 11 24 0 6 12 18 1 7 13 19 20 8 14 15 21 2 10 16 22 3 9 æ ç ç ç ç ç è ö ÷ ÷ ÷ ÷ ÷ ø =
例3给定x,2.k的值,产生形如x2x2x2x2x2|的范达蒙矩阵 并计算行列式值 forj∈0.n 1 ifi= 0 X=(2-331-2)van(X)=49914 14400 Vande(x) 仅计算 Van de monte行列式的值 rj∈0.n- s←s1(X;-x)ifi>j Vande(x)=14400 使用如下程序生成 Van de monte矩阵,并计算其行列式值,当指定参数a=0时, 输出 Van de monte行列式值 forj∈0. fori∈1 J∈0.n v otherwise X:=(-123-4 123 Van de monte(x, 1) Van de monte(X, 0)=-1512 14916
例3 给定 x1, x2, ....,xk 的值, 产生形如 1 x1 x12 .... x14 1 x2 x22 .... x24 1 x3 x32 .... x34 1 x4 x42 .... x44 1 x5 x52 .... x54 æ ç ç ç ç ç ç è ö ÷ ÷ ÷ ÷ ÷ ÷ ø 的范达蒙矩阵, 并计算行列式值. Van(X) n ¬ length(X) - 1 v i, j ¬ 1 if i = 0 v i, j X( j) i ¬ otherwise for j Î 0.. n for i Î 0.. n v := X (2 -3 3 1 -2 ) T := Van(X) 1 2 4 8 16 1 -3 9 -27 81 1 3 9 27 81 1 1 1 1 1 1 -2 4 -8 16 æ ç ç ç ç ç è ö ÷ ÷ ÷ ÷ ÷ ø = Van(X) = 14400 Vande(X) s ¬ 1 n ¬ length(X) - 1 s s Xi Xj - ( ) ¬ × if i > j for j Î 0.. n - 1 for i Î 0.. n s := 仅计算Van de Monte行列式的值 Vande(X) = 14400 使用如下程序生成 Van de Monte 矩阵, 并计算其行列式值, 当指定参数a = 0 时, 输出Van de Monte行列式值。 Van_de_Monte(X,a) n ¬ length(X) - 1 v 0, j ¬ 1 for j Î 0.. n v i, j X( j) i ¬ for j Î 0.. n for i Î 1.. n v if a = 0 v otherwise := X (-1 2 3 -4 ) T := Van_de_Monte(X, 1) 1 -1 1 -1 1 2 4 8 1 3 9 27 1 -4 16 -64 æ ç ç ç ç è ö ÷ ÷ ÷ ÷ ø = Van_de_Monte(X, 0) = -1512
例5如下程序可以产生杨辉三角形 Yanghuiq(n): for ieO.n f 0.n fori∈1.n Y.,. otherwise Y 100000000 110000000 133100000 Yanghui(8)=146410000 161520156100 1721353521710 18285670562881
例5 如下程序可以产生杨辉三角形 Yanghuiq(n) Y i, 0 ¬ 1 for i Î 0.. n Y i, j ¬ 0 if j > i Y i, j Y i-1, j-1 Y i-1, j ¬ + otherwise for j Î 1.. n for i Î 0.. n Y := Yanghuiq(8) 1 1 1 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 0 0 1 3 6 10 15 21 28 0 0 0 1 4 10 20 35 56 0 0 0 0 1 5 15 35 70 0 0 0 0 0 1 6 21 56 0 0 0 0 0 0 1 7 28 0 0 0 0 0 0 0 1 8 0 0 0 0 0 0 0 0 1 æ ç ç ç ç ç ç ç ç ç ç ç è ö ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ÷ ø =