MATLAB 矩阵处理及多项式计算

 

一、实验目的

(1)掌握生成特殊矩阵以及矩阵处理的方法

    (2)掌握数据统计和分析的方法

(3)掌握多项式的常用计算

二、实验原理与实验设备

原理计算机编程相关知识技能和MATLAB软件编译环境

设备:计算机与MATLAB软件

三、MATLAB矩阵处理

设有分块矩阵A=E3×3R3×2O2×3S2×2,其中E、R、O、S分别为单位矩阵、随机矩阵、零矩阵、和对角阵,试通过数值计算验证A2=ER+RSOS2

clear;

clc;

B = eye(3);

C = rand(3,2);

D = zeros(2,3);

E = rand(1,2);

F = diag(E);

A = [B C;D F];

G = A * A

H = [B C+C*F;D F*F]

if G == H

    fprintf("\t由结果可知:G = H,也即验证成功\n")

end

四、数据分析与多项式计算

  1. 利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质。
  1. 均值和标准差
  2. 最大元素和最小元素
  3. 大于0.5的随机数个数占总数的百分比

clear;

clc;

x = rand(1,30000);

average = mean(x)

SD = std(x)

y = length(find(x>0.5));

P = y/30000

  1. 将100个学生5门功课的成绩存入矩阵P中,进行如下处理。
  1. 分别求每门课的最高分、最低分及相应学生序号。
  2. 分别求每门课的平均分和标准差
  3. 5门课总分的最高分、最低分及相应学生序号。
  4. 将5门课总分按从大到小顺序存入变量score中,相应学生序号存入num。

为了避免输入学生成绩的麻烦,可用取值范围在[45,95]之间的随机矩阵来表示学生成绩。

clear;

clc;

random_num = 45+50*rand(100,5);

P = fix(random_num);

[max_score,max_score_num] = max(P)

[min_score,min_score_num] = min(P)

average = mean(P)

SD = std(P)

A = sum(P,2);

[all_max_score,all_max_score_num] = max(A)

[all_min_score,all_min_score_num] = min(A)

[score,num] = sort(A)

  1. 有3个多项式P1x=x4+2x3+4x2+5, P2x=x+2, P3x=x2+2x+3,试进行下列操作
  1. 求P(x)=P1(x)+P2(x)P3(x)
  2. 求P(x)的根
  3. 当x取矩阵A的每一元素时,求p(x)的值。矩阵A见下
  4. 当以矩阵A为自变量时,求P(x)的值。矩阵A见下

A=-11.2-1.40.7523.5052.5

clc;

p1 = [1,2,4,0,5];

p2 = [1,2];

p3 = [1,2,3];

p2 = [0,0,0,p2];

p3 = [0,0,p3];

p4 = conv(p2,p3);

num_p4 = length(p4);

num_p1 = length(p1);

p = [zeros(1,num_p4-num_p1),p1]+p4

x = roots(p)

A = [-1 1.2 -1.4;0.75 2 3.5;0 5 2.5];

X1 = polyval(p,A)

X2 = polyvalm(p,A)

  1. 采用interp1对y=sin(x)进行分段性插值,并绘制出图像。

clear;

clc;

x = -2*pi:0.5:2*pi;

y = sin(x);

z = -2*pi:0.2:2*pi;

y1=interp1(x,y,z);

figure

plot(x,y,'*',z,y1,'c')

title('分段性插值')

五、画图

1:按要求做出下面函数的图像

  1. 绘制f1(x)=e2xsin2x ,x∈(-π,π)的图像
  2. 绘制隐函数f2(x, y)=x2-x4=0 ,x∈(-,)上的图像
  3. 绘制下面参数曲线的图像。

x=etcosty=etsint    t∈(-,)

clear;

clc;

x = -pi:0.1:pi;

f1 = exp(2*x.*sin(2*x));

figure

subplot(2,2,1)

plot(x,f1,'c')

title('exp(2*x.*sin(2*x))')

subplot(2,2,2)

ezplot('x*x-x*x*x*x',[-2*pi,2*pi])

subplot(2,1,2)

ezplot('exp(t)*cos(t)','exp(t)*sin(t)',[-4*pi,4*pi])

2:分别用plot3()、mesh()、meshc()画出下面函数的曲面图形 并添加标题

z=cosx2+y2     -5x,y5

clear;

clc;

x1 = -5:0.1:5;

y1 = -5:0.1:5;

z1 = cos(sqrt(x1.*x1+y1.*y1));

figure

subplot(2,1,1)

plot3(x1,y1,z1,'c')

title('plot3(x,y,z)')

subplot(2,2,3)

x2 = -5:0.1:5;

y2 = -5:0.1:5;

[x,y]=meshgrid(x2,y2);

z2 = cos(sqrt(x.*x+y.*y));

mesh(x,y,z2)

title('mesh(x,y,z)')

subplot(2,2,4)

meshc(x,y,z2)

title('meshc(x,y,z)')

五、实验总结

请简单对实验进行总结,阐述MATLAB在矩阵计算中的优势。

本次实验我掌握了用MATLAB生成特殊矩阵以及矩阵处理的方法,掌握了用MATLAB进行数据统计和分析的方法,掌握了用MATLAB进行多项式的常用计算。

MATLAB在矩阵中计算快的主要原因是因为MATLAB集合了非常多的高性能数学库,这里面有BLAS、LAPACK等矩阵运算库。同时,用MATLAB做矩阵运算的运算符号与我们日常书写的符号非常相似,不需要像python和c语言那样要专门写代码。

综上所述,MATLAB在矩阵计算中的优势是非常明显的。

指导教师批阅意见:

成绩评定:

实验报告规范性、撰写形式与质量(15%)

现场完成情况(40%)

实验数据和处理分析(30%)

思考题与实验总结(15%)

总分

                                                    批阅教师签字:

                                                    年    月    日

备注:

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SZTU_青衫酒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值