首页 > 其他分享 >MATLAB入门实验-MATLAB实验1...MATLAB实验8

MATLAB入门实验-MATLAB实验1...MATLAB实验8

时间:2022-10-31 15:55:52浏览次数:52  
标签:... right end 矩阵 实验 MATLAB array left mathrm

MATLAB入门实验-MATLAB实验1...MATLAB实验8

实验1 MATLAB系统环境运算基础

一、实验目的

  1. 掌握启动和退出MATLAB的方法。
  2. 掌握MATLAB操作界面的组成。
  3. 掌握建立矩阵的方法。
  4. 掌握MATLAB表达式的书写规则以及常用函数的使用方法。

二、实验内容

1、启动MATLAB系统环境,完成下列操作。

在MATLAB命令行窗口输入以下命令后,观察工作区窗口的内容。

3、先建立自己的工作文件夹,再将自己的工作文件夹设置MATLAB工作空间的使用情况并保存全部变量。

(1)\(Z_{1} = \frac{2*sin85^{\circ}}{1+e^{2}}\)

Z1 = 2*sind(85)/(1+exp(2))
运行结果
matlab_cs.001.png

(2)\(Z_{2} = \frac{\pi }{x+y}\),其中\(x=12,y=10^{-5}\)。

x=12;y= 10^-5;
Z2 = pi/(x+y)
运行结果
matlab_cs.002.png

(3)\(Z_{3}= \frac{1}{2} \ln_{}{x+\sqrt{1+x^{2}}}\) ,其中\(x=\begin{bmatrix} 2& 1+2i\\ -0.45&5\end{bmatrix}\)。

x = [2 1+2i;-0.45 5];
Z3 = 1/2*log(x+sqrt(1+x^2))
运行结果
matlab_cs.003.png

(4)\(Z_{4}=\frac{e^{0.3 a}-e^{-0.3 a}}{2} \sin (a+0.3)+\ln \frac{0.3+a}{2}\) , 当 a 取 -3.0,-2.9,-2.8, ……, 2.8,2.9,3.0 时, 求各点的函数值。

a=-3:0.01:3;
Z4 = (exp(0.3.*a)-exp(-0.3.*a))/2.*sin(a+0.3)...
    +log((0.3+a)/2)
运行结果
matlab_cs.004.png

4、已知 \(A=\left[\begin{array}{ccc}12 & 34 & -4 \\34 & 7 & 87 \\3 & 65 & 7\end{array}\right]\),\(B=\left[\begin{array}{ccc}1 & 3 & -1 \\2 & 0 & 3 \\3 & -2 & 7\end{array}\right]\),

求下列表达式的值。

(1) \(A^{\wedge} 3\) 和 \(A .^{\wedge} 3\)

(2) \(A^{*} B\) , \(B^{*} A\) ,与 \(A .^{*}B\)

(3) \(A / B\) 及 \(B \backslash A\)

(4) \([\mathrm{A}, \mathrm{B}]\) 和 \(\left[\mathrm{A}([1,3],:) ; \mathrm{B}^{\wedge} 2\right]\)

A=[12 34 -4;34 7 87;3 65 7;];B=[1 3 -1;2 0 3;3 -2 7];
%(1)
A*B,B*A,A.*B
%(2)
A^3,A.^3
%(3)
A/B,B\A
%(4)
[A,B],[A([1,3],:);B^2]
运行结果
%(1)matlab_cs.006.png
%(2)matlab_cs.007.png
%(3)matlab_cs.008.png
%(4)matlab_cs.009.png

5、设有矩阵 A 和 B

\[A=\left(\begin{array}{ccccc} 1 & 2 & 3 & 4 & 5 \\ 6 & 7 & 8 & 9 & 10 \\ 11 & 12 & 13 & 14 & 15 \\ 16 & 17 & 18 & 19 & 20 \\ 21 & 22 & 23 & 24 & 25 \end{array}\right), B=\left(\begin{array}{ccc} 3 & 0 & 16 \\ 17 & -6 & 9 \\ 0 & 23 & -4 \\ 9 & 7 & 0 \\ 4 & 13 & 11 \end{array}\right) \]

(1) 求它们的乘积 \(\mathrm{C}=\mathrm{A} * \mathrm{~B}\) .

(2) 将矩阵 \(\mathrm{C}\) 的右下角 3 * 2 子矩阵赋给 \(\mathrm{D}\) .

A=(reshape(1:1:25,5,5))';
B=[3 0 16;17 -6 9;0 23 -4;9 7 0;4 13 11];
%(1)
C=A*B
%(2)
D = C(3:5,2:3)
运行结果
%(1)matlab_cs.010.png
%(2)matlab_cs.011.png

6、完成以下操作。

(1) 求[100,999]之间能被21整除的数的个数。

A = [100:1:999];
B = find(rem(A,21)==0);
length(B)
运行结果
matlab_cs.012.png

(2) 建立一个字符串向量,删除其中大写字母。

E='aadfW4DF4';
F=find(E>='A'&E<='Z');%find返回下标索引
E(F)=[]
运行结果
matlab_cs.013.png

实验2 MATLAB矩阵处理

一、实验目的

  1. 掌握生成特殊矩阵的方法。
  2. 掌握矩阵处理的方法。
  3. 掌握用矩阵求逆法解线性方程组的方法。

二、实验内容

1、设有分块矩阵 \(\mathrm{A}=\left[\begin{array}{ll}E_{3 * 3} & R_{3 * 2} \\O_{2 * 3} & S_{2 * 2}\end{array}\right]\),其中 \(\mathrm{E}\)、\(\mathrm{R}\)、\(\mathrm{O}\)、\(\mathrm{S}\) 分别为单位矩阵、随机矩阵、零矩阵和对角阵,试通过数值计算验证 \(\left[A^{2}\right]=\left[\begin{array}{cc}E & R+R S \\O & S^{2}\end{array}\right]\) 。

E = eye(3,3);R = rand(3,2);O = zeros(2,3);S = diag([1,2]);
A = [E R;O S];
Z1 = A^2;
Z2 = [E R+R*S; O S^2];
Z1-Z2
运行结果
matlab_cs.014.png

2、建立一个5*5矩阵,求它的行列式值、迹、秩和范数。

E = rand(5);%5阶(0.1)随机方阵
A = det(E)%行列式的值
B = trace(E)%矩阵的迹
C = rank(E)%矩阵的秩
D1 = norm(E,1)      %矩阵E的1-范数
D2 = norm(E)        %矩阵E的2-范数
D3 = norm(E,inf)    %矩阵E的∞-范数
运行结果
matlab_cs.015.png

4、已知\(\mathrm{A}=\left[\begin{array}{ccc}-29 & 6 & 18 \\20 & 5 & 12 \\-8 & 8 & 5\end{array}\right]\),求 \(\mathrm{A}\) 的特征值及特征向量,并分析其数学意义。

A=[-29 6 18;20 5 12;-8 8 5];
[X,D] = eig(A)
%矩阵A的全部特征值构成对角阵D,相应的特征向量构成矩阵X
运行结果
matlab_cs.016.png
\(A\)的特征值\(D\)及特征向量\(X\),分析其数学意义——有满足:\(A=XDX^{-1}\)

5、下面是一个线性病态方程组:\(\left[\begin{array}{lll}1 / 2 & 1 / 3 & 1 / 4 \\1 / 3 & 1 / 4 & 1 / 5 \\1 / 4 & 1 / 5 & 1 / 6\end{array}\right]\left[\begin{array}{l}x_{1} \\x_{2} \\x_{3}\end{array}\right]=\left[\begin{array}{l}0.95 \\0.67 \\0.52\end{array}\right]\)

(1)用矩阵求逆法求方程的解。

(2)将方程右边向量元素 \(b_3\) 改为0.53,再求解,并比较 \(b_3\) 变化和解的相对变化。

(3)计算系数矩阵 \(A\) 的条件数并分析结论。

A = [1/2 1/3 1/4;1/3 1/4 1/5;1/4 1/5 1/6];
b = [0.95 0.67 0.52]';
%(1)矩阵求逆法求方程的解
x1 = inv(A)*b
%(2)
b = [0.95 0.67 0.53]';%b_3改为0.53,再求解
x2 = inv(A)*b
%(3)
A = [1/2 1/3 1/4;1/3 1/4 1/5;1/4 1/5 1/6];
C1 = cond(A,1)      %矩阵A的1-范数下的条件数
C2 = cond(A)        %矩阵A的2-范数下的条件数
C3 = cond(A,inf)    %矩阵A的∞-范数下的条件数
运行结果
matlab_cs.017.png
(2) \(b_3\) 从0.52变大为0.53,相应解,\(x^1,x^3\)都变大、\(x^2\)变小。
(3)系数矩阵\(A\)的条件数都不接近1,矩阵的系能差。

实验3 顺序结构程序设计

一、实验目的

  1. 掌握建立和执行M文件的方法。
  2. 掌握输入输出的方法。
  3. 握顺序结构程序设计方法。

二、实验内容

1、从键盘输入一个4位整数,按如下规则加密后输出。

加密规则:每位数字都加上7,然后用和除以10的余数取代该数字;然后将第一位数与第三位数互换,第二位数与第四位数互换。

x=ones(1,4);
x(1)=input('输入第一位:');
x(2)=input('输入第二位:');
x(3)=input('输入第三位:');
x(4)=input('输入第四位:');
x=rem(7+x,10);
y=1000.*x(3)+100.*x(4)+10.*x(1)+x(2)
运行结果
matlab_cs.018.png

2、输入一个正的实数 x ,分别输出 x 的整数部分和小数部分。

x=input('输入一个正的实数:');
y1=fix(x)
y2=x-y1
运行结果
matlab_cs.019.png

4、输入3个整数给a、b、c,然后交换它们的值;把a中原来的值赋给b,把b中原来的值赋给c,把c中原来的值赋给a。

a=input('输入第一个整数:')
b=input('输入第二个整数:')
c=input('输入第三个整数:')
A=[a b c];
b=A(1)
c=A(2)
a=A(3)
运行结果
matlab_cs.020.png

5、随机产生一个3位整数,将它的十位数变为0。例如,如果生成的3位整数为738,则输出为708。

A=randi ([100,999],1,1)
A=fix(A/100)*100+rem(A,10)
运行结果
matlab_cs.021.png

实验4 选择结构程序设计

一、实验目的

  1. 掌握利用 if 语句实现选择结构的方法。
  2. 掌握利用 switch 语句实现多分支选择结构的方法。
  3. 掌握 try 语句的使用方法。

二、实验内容

1、求分段函数的值。\(\mathrm{y}=\left\{\begin{array}{lr}x^{2}+x-6, & x<0 \text { 且 } x \neq-3 \\x^{2}-5 x+6, & 0 \leq x<5 \text { 且 } x \neq 2 \text { 及 } x \neq 3\\x^{2}-x-1, & \text { 其他 }\end{array}\right.\)

用 if 语句实现,分别输出 x=-5.0 ,-3.0 ,1.0 ,2.0 ,2.5 ,3.0 ,5.0 时的y值。

x=[-5 -3 1 2 2.5 3 5];
for i=1:7
    if and(x(i)<0,x~=-3)
        y(i)=x(i)^2+x(i)-6;
    elseif x(i)>=0 & x(i)<5 & x(i)~=2 & x(i)~=3
        y(i)=x(i)^2-5*x(i)+6;
    else 
        y(i)=x(i)*2-x(i)-1;
    end
end
disp(y);
运行结果
matlab_cs.022.png

2、输入一个百分制成绩,要求输出成绩等级A、B、C、D、E。其中90~100分为A,80~89分别为B,70~79分别为C,60~69分别为D,60分以下为E。

要求:

(1) 分别用if语句和switch语句实现。

(2) 输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出出错信息。

%2.1
    a=input('输入一个百分制成绩:','s');
%input()存数字或矩阵
%input('','s')存字符串
    k=str2double(a);
    x=floor(k/10);
%附:fix(),向零方向取整。发现输入-4,取整为0,不报错
%附:floor(),不大于自变量的最大整数
%附:ceil(),不小于自变量的最大整数
%附:rount(),四舍五入到最临近的整数
    
%str2double()把字符转换为数字。是“数字”则正常转换、不是则得NaN
%isnan()判断是否为NaN
if isnan(k)
    y='error!';
else
    if or(x==10,x==9)
        y='A';
    elseif x==8
        y='B';
    elseif x==7
        y='C';
    elseif x==6
        y='D';
    elseif x==6|x==5|x==4|x==3|x==2|x==1|x==0
        y='E';
    else
        y='error!';
    end
end
disp(y);



% 2.2
    a=input('输入一个百分制成绩:','s');
    k=str2double(a);
    x=floor(k/10);
if isnan(k)
    y='error!';
else
    switch x
        case 10
        case 90
            y='A';
            break;
        case 8
            y='B';
            break;
        case 7
            y='C';
            break;
        case 6
            y='D';
            break;
        case 6
        case 5
        case 4
        case 3
        case 2
        case 1
        case 0
            y='E';
            break;
        otherwise
            y='error!';
    end
end
disp(y);
运行结果
matlab_cs.023.pngmatlab_cs.024.pngmatlab_cs.025.pngmatlab_cs.027.pngmatlab_cs.028.pngmatlab_cs.029.png

4、设计程序,完成两位数的加、减、乘、除四则运算,即产生两个两位随机整数,再输入一个运算符号,完成对应的运算,并显示相应的结果。

x=rand(1,2);
y=input('输入一个运算符号:','s');
switch y
    case '+'
        z=x(1)+x(2);
        break;
    case '-'
        z=x(1)-x(2);
        break;
    case '*'
        z=x(1)*x(2);
        break;
    case '/'
        z=x(1)/x(2);
        break;
    otherwise
        z='error!';
end
disp(z);
运行结果
matlab_cs.031.png

5、建立5*6矩阵,要求输入矩阵第n行元素。当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出错误信息。

a=rand(5,6);
x=input('输入矩阵第n行:\n');
m=size(a,1);%求矩阵行数
%n=size(a,2);%求矩阵列数
%[m,n]=size(a);%求矩阵行列数
 
if ~(x<=m)
    disp('错误!超过矩阵的行数,转为自动输出矩阵最后一行');
    x=m
end
y=a(x,:);
disp(y);
运行结果
matlab_cs.033.pngmatlab_cs.034.png

实验5 循环结构程序设计

一、实验目的

  1. 掌握利用for语句实现循环结构的方法。
  2. 掌握利用while语句实现循环结构的方法。
  3. 熟悉利用向量运算来代替循环操作的方法。

二、实验内容

1、已知\(y=\frac{1}{3}+\frac{1}{3} \cdot \frac{1}{3^{3}}+\frac{1}{5} \cdot \frac{1}{5^{3}}+\cdots+\frac{1}{2 n-1} \cdot \frac{1}{3^{2 n-1}}\left(=\frac{\ln 2}{2}\right)\);求y的近试值。当n分别取100、1000、10000时,结果是多少?分别使用循环结构和向量运算。

%1.1
R=[];%循环结构
for n=[100,1000,10000];
    s=0;
    for i=1:n
        s=s+1/(2*i-1) * 1/(3^(2*i-1));
    end
    R=[R,s];
end
R

%1.2
R=[];%向量运算
for n=[100,1000,10000];
    i=1:n;  %生成1到n的行向量
        %s=sum(1./i);
        s=sum(1./(2.*i-1) .* 1./(3.^(2.*i-1)));
    R=[R,s];
end
R
运行结果
matlab_cs.035.png
matlab_cs.036.png

根据\(y=1+\frac{1}{3}+\frac{1}{5}+\cdots+\frac{1}{2 n-1}\),求:

(1) y ❤️ 时的最大 n 值。

(2) 与(1)的 n 值对应的 y 值。

n=0;
y=0;
while y<3
    n=n+1;
    y=y+n;
end
disp(['n=',num2str(n),',y=',num2str(y)]);
%n,y本是double型数据。class(n)查看
%disp(['n=',n,',y=',y])错误!
%disp([n,y]);
运行结果
matlab_cs.037.png

4、已知 \(\left\{\begin{array}{c}f_{1=1} \\f_{2}=0 \\f_{3}=1 \\f_{n}=f_{n-1}-2 f_{n-2}+f_{n-3} \quad(n>3)\end{array}\right.\),求f1~f100中:

(1) 最大值、最小值、各数之和。

(2) 正数、零、负数的个数。

f(1)=1;f(2)=0;f(3)=1;
format long g%对双精度,显示15位定点或浮点格式;对单精度,显示7位
n=input('输入一个n:');
for i=4:n
    f(i)=f(i-1)-2*f(i-2)+f(i-3);
end
%(1)
max=max(f)
min=min(f)
sum=sum(f)
%(2)
postive=length(f(f>0))
negative=length(f(f<0))
zero=length(f(f==0))
运行结果
matlab_cs.038.png

5、若两个连续自然数的乘积减1是素数,则称这两个连续自然数的亲密数对,该素数是亲密素数。例如,2×3-1=5,由于5是素数,所以2和3是亲密数对,5是亲密素数。求[2,50]区间内:

(1) 亲密数对的对数。

(2) 与上述亲密数对对应的所以亲密素数之和。

a=2:50;
count=0;
sum=0;
for i = a
    if i==49
        break;
    end
    x(i)=a(i)*a(i+1)-1;
    if isprime(x(i))%isprime判断是否为素数
        count=count+1;
        sum=sum+x(i);
    end
end
disp(['[2,50]区间亲密数对的对数',num2str(count)]);
disp(['所有亲密素数之和',num2str(sum)]);
运行结果
matlab_cs.039.png

实验6 函数文件

一、实验目的

  1. 理解函数文件的概念。
  2. 掌握定义和调用MATLAB函数的方法。

二、实验内容

1、定义一个函数文件,求给定复数的指数、对数正弦和余弦,并在脚本文件中调用该函数文件。

%函数文件 f61.m
function [ expval,logval,sinval,cosval ] = f61( inputArg1 )
expval=exp(inputArg1);
logval=log(inputArg1);
sinval=sin(inputArg1);
cosval=cos(inputArg1);
end%
x=input('输入x:')
[ expval,logval,sinval,cosval ]=f61(x)
运行结果
matlab_cs.040.png

2、某物理系统可用下列方程组来表示:

\[\left[\begin{array}{cccc} m_{1} \cos \theta & -m_{1} & -\sin \theta & 0 \\ m_{1} \sin \theta & 0 & -\cos \theta & 0 \\ 0 & m_{2} & \sin \theta & 0 \\ 0 & 0 & -\cos \theta & 1 \end{array}\right]\left[\begin{array}{l} a_{1} \\ a_{2} \\ N_{1} \\ N_{2} \end{array}\right]=\left[\begin{array}{c} 0 \\ m_{1} g \\ 0 \\ m_{2} g \end{array}\right] \]

从键盘输入\(m^{1}\)、\(m^{2}\)和θ的值,求 \(a^{1}\)、\(a^{2}\)、\(N^{1}\) 和 \(N^{2}\) 的值。其中 \(g\) 取9.8,输入 \(θ\) 时以角度为单位。

%函数文件 f62.m
function [ value ] = f62( m1,m2,ag )
g=9.8;
P=[m1*cos(ag),-m1,-sin(ag),0;m1*sin(ag),0,-cos(ag),0;...
    0,m2,-sin(ag),0;0,0,-cos(ag),1;]
q=[0,m1*g,0,m2*g]';
value=inv(P)*q;
end
m1=input('输入m1:');
m2=input('输入m2:');
ag=input('输入角度:');
[result]=f62(m1,m2,ag)
运行结果
matlab_cs.041.png

5、已知 \(y=\frac{f(40)}{f(30)+f(20)}\)

(1) 当 \(\mathrm{f}(\mathrm{n})=\mathrm{n}+10 \ln \left(n^{2}+5\right)\) 时, \(y\) 的值是多少?

(2) 当 \(f(n)=1 \times 2+2 \times 3+3 \times 4+\cdots+n \times(n+1)\) 时,\(y\) 的值是多少?

%函数文件f651.m
%(1)
function m=f651(n)
m=n+10*log(n*n+5);
end
%函数文件f652.m
%(2)
function m=f652(n)
m=0;
for i=1:n
    m=n*(n+1)+m;
end
end
y=f651(40)/(f651(30)+f651(20))
y=f652(40)/(f652(30)+f652(20))
运行结果
matlab_cs.042.png
matlab_cs.043.png

实验7 绘图操作

一、实验目的

  1. 掌握绘制二维图形的方法。
  2. 掌握绘制三维图形的方法。
  3. 掌握绘制图形的辅助操作。

二、实验内容

1、绘制函数曲线。

(1) 设 \(\mathrm{y}=\left(0.5+\frac{3 \sin x}{1+x^{2}}\right) \cos x\),把 \(\mathrm{x}=0 \sim 2 \pi\) 区间分为101点,绘制函数的曲线。

x=linspace(0,2*pi,101)
y=log(x).*sin(x);
plot(x,y)

(2) 已知 \(\mathrm{y}=\left\{\begin{array}{c}\frac{x+\sqrt{\pi}}{e^{2}}, \quad x \leq 0 \\ \frac{1}{2} \ln \left(x+\sqrt{1+x^{2}}\right), \quad x>0\end{array}\right.\),在\(-5 \leq \mathrm{x} \leq 5\) 区间绘制函数曲线。

%点乘操作
x=linspace(-5,5,100)
y=(x<=0).*( (x+sqrt(pi))./exp(2) ) + (x>0).*( 1/2*log(x+sqrt(1+x.^2)) )
plot(x,y)
title('点乘操作 ')
%循环判断操作
x=linspace(-5,5,100)
y=[];
for x0=x
    if x0<0
        y=[y,(x0+sqrt(pi))/exp(2)];
    elseif x0>0
        y=[y,1/2*log(x0+sqrt(1+x0^2))];
    else y=[y,x0^2];
    end
end
plot(x,y)
title('循环操作 ')

(3) 绘制极坐标曲线 \(\rho=10 \sin (1+5 \theta)\)。

t=0:pi/50:20*pi;%弧度
r=10.*sin(1+5*t);
polar(t,r)
运行结果
matlab_cs.044.png
运行结果
matlab_cs.045.pngmatlab_cs.046.png
运行结果
matlab_cs.047.png

2、已知 \(y_{1}=x^{2}, y_{2}=\cos (2 x)\), \(y_{3}=y_{1} * y_{2}\),完成下列操作。

(1) 在同一坐标系下用不同的颜色和线型绘制3条曲线。

x=(0:pi/100:2*pi)';
y1=x.^2;
y2=cos(2*x);
y3=y1.*y2;
plot(x,y1,'k',x,y2,'b--',x,y3,'r:')

(2) 以子图形式绘制3条曲线。

%使用subplot(m,n,p)子图分成m行n列,指定第P幅图;
x=(0:pi/100:2*pi)';
y1=x.^2;
y2=cos(2*x);
y3=y1.*y2;
subplot(2,2,1);
plot(x,y1,'k')
subplot(2,2,2);
plot(x,y2,'b--')
subplot(2,2,3);
plot(x,y3,'r:')

(3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。

%bar,stairs,stem,fill(用非白色的颜色进行实心填充,不然看不到现象),参考p118-p122
subplot(2,2,1);
bar(x,y1,'r')
subplot(2,2,2);
stairs(x,y1,'b')
subplot(2,2,3);
plot(x,y1,'y')
subplot(2,2,3);
stem(x,y2,'y')
subplot(2,2,4);
fill(x,y2,'k')
subplot(2,2,1);
bar(x,y,3,'r')
subplot(2,2,2);
stairs(x,y3,'b')

subplot(2,2,4);
fill(x,y,2,'r')
subplot(2,2,1);
bar(x,y,2,'r')
subplot(2,2,2);
stairs(x,y2,'b')
subplot(2,2,3);
stem(x,y3,'y')
subplot(2,2,4);
fill(x,y3,'k')
运行结果
matlab_cs.048.png
运行结果
matlab_cs.049.png
运行结果
matlab_cs.050.png

实验8 数据分析与多项式计算

一、实验目的

  1. 掌握数据统计和分析的方法
  2. 掌握多项式的常用计算。
  3. 掌握数据插值与曲线拟合的方法及其应用。

二、实验内容

1、利用 MATLAB 提供的 rand 函数生成 30000 个符合均匀分布的随机数,然后检验随机数的性质。

(1) 均值和标准差。

(2) 最大元素和最小元素。

(3) 大于0.5的随机数个数占总数的百分比。

X=rand(30000,1);
%(1)
mean=mean(mean(X))
std=std(std(X))
%(2)
max=max(X)
min=min(X)
%(3)
count=find(X>0.5);
length=length(count);
result=length/30000
运行结果
matlab_cs.051.png

2、将100个学生5门功课的成绩存入矩阵 \(P\) 中,进行如下处理。

(1)分别求每门课的最高分、最低分及相应学生序号。

(2)分别求每门课的分均分和标准差。

(3)5门课的总分的最高分、最低分及相应学生序号。

(4)将5门课总分按从大到小顺序存入 \(score\) 中,相应学生序号存入 \(num\) 。

P=100*rand(100,5);
%(1)
[eachmax,number1]=max(P)
[eachmin,number2]=min(P)
%(2)
eachmean=mean(P)
eachstd=std(P)
%(3)
[hall,number3]=max(sum(P,2))
[lall,number4]=min(sum(P,2))
%(4)
[score0,num0]=sort(sum(P,2),'descend');%按照从大到小
score=reshape(score0,10,10)%方便显示,进行转换
num=reshape(num0,10,10)
运行结果
matlab_cs.052.png
matlab_cs.053.png
matlab_cs.054.png

3、有3个多项式\(P_{1}(x)=x^{4}+2 x^{3}+4 x^{2}+5, P_{2}(x)=x+2, P_{3}(x)=x^{2}+ 2 x+3\) ,试进行下列操作。

(1) 求 \(P(x)=P_{1}(x)+P_{2}(x)+P_{3}(x)\)

(2) 求 \(P(x)\) 的根。

(3) 当x取矩阵\(A\)的每一元素时,求 \(P(x)\) 的值。其中 \(A=\left[\begin{array}{ccc}-1 & 1.2 & -1.4 \\ 0.75 & 2 & 3.5 \\ 0 & 5 & 2.5\end{array}\right]\)

(4) 当以矩阵\(A\)为自变量时,求 \(P(x)\) 的值。其中A的值与(3)相同。

%(1)
p1=[1,2,4,0,5];
p2=[1,2];
p3=[1,2,3];
p4=[0,conv(p2,p3)];%求结果
p=p1+p4
%(2)
y=roots(p)
%(3)
A=[-1,1.2,-1.4;0.75,2,3.5;0,5,2.5;];
y1=polyval(p,A)%x取矩阵A的每一元素
%(4)
y2=polyvalm(p,A)
运行结果
matlab_cs.055.png
matlab_cs.056.png
matlab_cs.057.png
matlab_cs.058.png

标签:...,right,end,矩阵,实验,MATLAB,array,left,mathrm
From: https://www.cnblogs.com/manzuixin/p/16844600.html

相关文章

  • Matlab实现:图像边缘提取
    1、边缘提取算法方法一:一阶微分算子Sobel算子Sobel算子检测方法对灰度渐变和噪声较多的图像处理效果较好,Sobel算子对边缘定位不是很准确,图像的边缘不止一个......
  • 基于HTML+CSS制作静态页面【剪纸文化15页】传统文化设计题材 dreamweaver制作静态html
    ......
  • 实验7: 基于REST API的SDN北向应用实践
    一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验环境下载虚拟机软件OracleVisualBox或......
  • Vue项目npm install下载依赖,报错:npm install 报错(npm ERR! errno -4048...(已解决✔)
    vue项目下载依赖npminstall报错:(npmERR!errno-4048,Error:EPERM:operationnotpermitted,)解决方法出现这种报错的时候有我用了清空缓存的方法:1,清理本地缓存:cach......
  • 实验2:简单工厂模式
    本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解简单工厂模式的动机,掌握该模式的结构;2、能够利用简单工厂模式解决实际问题。 [实验任务一]:女娲造人使......
  • 实验二 逻辑回归算法实验
    【实验目的】理解逻辑回归算法原理,掌握逻辑回归算法框架;理解逻辑回归的sigmoid函数;理解逻辑回归的损失函数;针对特定应用场景及数据,能应用逻辑回归算法解决实际分类问题。......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的1.能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;2.能够编写程序调用RyuRESTAPI实现特定网络功能。二、实......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验......
  • 决策树实验
    #一、【实验目的】#理解决策树算法原理,掌握决策树算法框架;#理解决策树学习算法的特征选择、树的生成和树的剪枝;#能根据不同的数据类型,选择不同的决策树算法;#针对特定应......
  • 实验7:基于REST API的SDN北向应用实践
    实验7:基于RESTAPI的SDN北向应用实践一、实验目的能够编写程序调用OpenDaylightRESTAPI实现特定网络功能;能够编写程序调用RyuRESTAPI实现特定网络功能。二、实验......