这是开学以来的第一个实验课,下面我会就实验课的作业题目给出解答
1.生成主对角线元素为1到100,其余元素均为10的100阶方阵
此题我们可以用编程的方式做
for i=1:100
for j=1:100
if i==j
m(i,j)=i;
else
m(i,j)=10;
end
end
end
m
然而,matlab作为一个以矩阵为主的软件,自然有
diag((1:100)-10)+10
2.验证3法则:
(1)生成1000阶标准正态随机阵
(2)计算元素的比例
可以用编程的方法做
a=randn(1000);
s=0
for i=1:1000
for j=1:1000
if abs(a(i,j))<3
s=s+1;
end
end
end
s/(1000*1000)
当然也可以用矩阵的操作来做
clear,clc
A=randn(1000);
B=abs(A);C=B<3;
sum(C(:))/1000^2%注意,这里不能直接sum,因为在matlab中,直接sum产生的是列和,不是总和
3.编程计算1+2+4+8+…+1024
当然可以编程,这个程序很简单
s=0
for i=0:10
s=s+2^i;
end
s
氮素,不编程可能会更简单 偷笑.emoji。
sum(2.^(0:10))
很简单有木有 ,在这里要复习到之前博客中的关于矩阵和数组运算的一些内容。
https://blog.csdn.net/qq_43264642/article/details/88606127
https://blog.csdn.net/qq_43264642/article/details/88382017
4.偶数求和,总和不超过10000,至多要加了多少项?
s=0
k=0
for i=2:2:10000
s=s+i;
k=k+1;
if s+i+2>10000 & s<=10000
k
s
break
end
end
也可以用while循环
s=0;i=0;
while s+i+2<=10000
i=i+2;
s=s+i;
end
s,i
求其伴随矩阵
伴随矩阵有几种求法,
其一是当矩阵满秩的时候,
但是当矩阵行列式为零的时候,就得用定义来做了
其中,Mij是代数余子式
A=[-1,1,1,1;-1,1,-1,-1;1,-1,1,-1;1,-1,-1,1];
for i=1:4
for j=1:4
b=A;
b(i,:)=[];
b(:,j)=[];
a_1(j,i)=(-1)^(i+j)*det(b);
end
end
a_1