矩阵与数值分析上机实习题汇总.docx
文本预览下载声明
矩阵与数值分析上机实习
1. 设
, 其精确值为
.
(1)编制按从大到小的顺序
, 计算
的通用
程序
(2)编制按从小到大的顺序
, 计算
的通用程序
(3)按两种顺序分别计算
(4)通过本上机题,你明白了什么
并指出有效位数(编制程序时用单精度)
从小到大,
代码:
%1---SN = %
N = input(please input a number(N=2))
if(N 2)
disp(wrong number)
else
S = 0;
for j = 2:1:N
S = S + 1/(j^2 -1);
end
disp(S:)
disp(S)
end
结果
please input a number(N=2)10^2
N =
100
S:
7.4005e-001
clear
please input a number(N=2)10^4
N =
10000
S:
7.4990e-001
clear
please input a number(N=2)10^6
N =
1000000
S:
7.5000e-001
从大到小
代码:
%1---SN = %
eps(single)
N = input(please input a number(N=2))
if(N 2)
disp(wrong number)
else
S = 0;
for j = N:-1:2
S = S + 1/(j^2 -1);
end
disp(S:)
disp(S)
end
结果
please input a number(N=2)10^2
N =
100
S:
7.4005e-001
clear
ans =
1.1921e-007
please input a number(N=2)10^4
N =
10000
S:
7.4990e-001
clear
ans =
1.1921e-007
please input a number(N=2)10^6
N =
1000000
S:
7.5000e-001
(4)计算的顺序影响结果。
2. 秦九韶算法。已知 n 次多项式
,用秦九韶算法编写通用的程序计算函
数在 点的值,并计算
在 点的值.
(提示:编写程序时,输入系数向量和点 ,输出结果,多项式的次数可以通过向量的
长度来判断)
代码:
A = input(请输入系数,由高次幂开始);
n = input(请输入计算变量的值);
len = length(A);
val = zeros(len);
val(1) = A(1);
%%printf(len = %c, len)
for i = 2: 1: len
%disp(val(i-1))
%disp(n)
val(i) = val(i-1)* n + val(i);
end
%printf(? ? ? ? ? á1 ? £ o %f, val(len))
val(len)
结果:
请输入系数,由高次幂开始[7 3 -5 11]
请输入计算变量的值23
ans =
85169
3. 分别用 Gauss消元法和列主元消去法编程求解方程组 Ax=b,其中
,
.
高斯消去法代码:
A= [31 -13 0 0 0 -10 0 0 0
-13 35 -9 0 -11 0 0 0 0
0 -9 31 -10 0 0 0 0 0
0 0 -10 79 -30 0 0 0 -9
0 0 0 -30 57 -7 0 -5 0
0 0 0 0 -7 47 -30 0 0
0 0 0 0 0 -30 41 0 0
0 0 0 0 -5 0 0 27 -2
0 0 0 -9 0 0 0 -2 29
];
B =[-15, 27, 23, 0, -20, 12, -7, 7, 10];
B = B.;
%disp(A)
%disp(B)
C= [A,B];
n = size(A,1);
ra = rank(A);
rc= rank(C);
x = zeros(1,n);
if ra ~= rc
disp(no solution)
else
for i = 1: 1: (n-1)
for j = i + 1: 1: n
temp = (-C(j,i))/ C(i,i);
for k = i:1:(n+1)
C(j,k) =C(i,k) * temp + C(j, k) ;
end
end
end
end
for i = n:-1:1
if i == n
disp(C(i,(n+1)))
disp(C(i,(n+1))-sum(C(i,(i+1):n).*x((i+1):n)))
disp(C(i,i))
end
x(i) = (C(i,(n+1))-sum(C(i,(i+1):n).*x((i+1):n
显示全部