MATLAB学习笔记——实验课作业(矩阵的一些操作)

这是开学以来的第一个实验课,下面我会就实验课的作业题目给出解答

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\sigma法则:

(1)生成1000阶标准正态随机阵

(2)计算元素abs(a_{ij})<3的比例

可以用编程的方法做

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

求其伴随矩阵

伴随矩阵有几种求法,

其一是当矩阵满秩的时候,

A^{*}=\left | A \right |*A^{-1}

但是当矩阵行列式为零的时候,就得用定义来做了

A_{ji}=(-1)^{i+j}*M_{ij}

其中,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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_43264642/article/details/88639734