MATLAB
期末考核
一、已知矩阵
(1)求、、;
(2)求A每行、每列元素之和,所有元素之和;
(3)将矩阵A扩充到6*6阶矩阵,第6行和第6列元素全为10;
(4)提取A中所有偶数列组成新的矩阵;
(5)将矩阵A进行左右翻转和上下翻转。
%第一题
clc;clear;
A =[1 0 0 4 9;
0 1 0 0 5;
0 0 1 0 0;
3 4 0 1 8;
7 1 0 0 1;]; %原矩阵
%第一题第一小问
A1 = det(A); %矩阵的行列式
A2 = inv(A); %矩阵的逆
A3 = rank(A); %矩阵的秩
disp '矩阵的行列式';A1
disp '矩阵的逆';A2
disp '矩阵的秩';A3
%第二小问
sum_lie = zeros(1,length(A(1,:))); %获取定义列元素总和的长度
for i=1:1:length(A(1,:)) %i:列元素的长度
sum_lie(i) = sum(A(:,i)); %每列元素求和
end
sum_hang = zeros(1,length(A(:,1))); %获取定义行元素总和的长度
for i=1:1:length(A(1,:)) %i:行元素的长度
sum_hang(i) = sum(A(i,:)); %每行元素求和
end
sum_all = sum(A); %对所有元素进行求和
disp 'A每列元素之和';sum_lie
disp 'A每行元素之和';sum_hang
disp 'A所有元素之和';sum_all
%第三小问
a =zeros(1,5);
a(1,:) = 10;
b = zeros(1,6);
b(1,:) = 10;
A_6_6 = [A,a';b]; %生成新的6*6矩阵
disp '将矩阵A扩充到6*6阶矩阵,第6行和第6列元素全为10:';A_6_6
%第四小问
cnt_lie_ou = floor(length(A(1,:))/2); %偶列数的总共次数
A_ou = zeros(5,cnt_lie_ou); %初始化新的矩阵
for j=1:1:cnt_lie_ou
A_ou(:,j) = A(:,2*j); %第j列的元素的赋值
end
disp '提取A中所有偶数列组成新的矩阵:'; A_ou
%第五小问
A_zy = fliplr(A); %左右翻转
A_sx = flipud(A); %上下翻转
disp '左右翻转:';A_zy
disp '上下翻转:';A_sx
二、求在(4,5)处的值。
%第二题
clc;clear;
x = 4;y = 5; %赋初值
z = x^3+log(y)-exp(x+y)+3/(x+y)+(x*y)^0.5; %编写表达式
fprintf('最终计算值为:%d\n',z);
三、求极限
%第三问
clc;clear;
syms x;
y1 = ((1+sin(x))^0.5-(1+tan(x))^0.5)/x^3; %编写表达式
limit(y1,x,0)
五、(1)求定积分;
(2)求不定积分。
%第四题(五题)
%1问
clc;clear;
syms x;
s = (1-log(x))/(x-log(x))^2;
int(s) %不定积分
%2问
syms x;
s = sin(x)^3/(1+cos(x)^2);
I =int(s,[0,pi]); %不定积分
double(I)
六、n*m阶矩阵AA,奇数行元素满足;
偶数行元素满足.
(1)编写一个函数文件,只需要输入行和列的数量,就能输出矩阵AA;
%第五道(六题)
%1问 函数
function AA = topic5(n,m)
AA = zeros(n,m);
for i=1:1:n %行枚举
if mod(i,2)==0 %此时i为偶数
for j=1:1:m %列数枚举
AA(i,j) = 2*i/(i+j);
end
else %此时i为奇数
for j=1:1:m %列数枚举
AA(i,j) = (2*i+1)/(i+3*j);
end
end
end
end
(2)输出6*6阶矩阵AA,并求出对角线元素之和。
%第五题2问
clc;clear;
AA = topic5(6,6) %输出6*6阶矩阵
sum_AA = sum(di