matlab8.5期末考试题目讲解及参考代码

目录

文章前言

第一题:计算矩阵

第二题:求解方程组,要求需要两种解法

第三题:按照需求画图象

第四题:构建一个求均值和平均值的函数,之后分别生成4组值,来运行求解

第五问:求解方程右边含有变量的方程组

第六题、按要求创建数组


文章前言

今天刚刚考完期末考试,其中有一些题目确实有些意思,将题目与参考的代码分享。

注:题目可能只有一些重点,并且答案只用做参考,有疑问留言评论。

第一题:计算矩阵

本题与期中考试的第二问相同,但是题目顺序有些许偏差,不可直接引用。

上图是期中试题,期末为编程计算(1)、矩阵C^3;(2)、数组C^3;(3)、3^C

故而参考代码如下:

%期末考试第一题,计算矩阵
C=[1 4 7;8 5 2;3 6 0]; %输入矩阵
y1=C.^3  %矩阵C^3
y2=C^3   %数组C^3
y3=3.^C  %3^C
% 进行对应的向量运算,使用y1_y3来保存数据

 运行结果如下:

第二题:求解方程组,要求需要两种解法

题目所需求解的线性方程如上!

我这里提供参考两种方法,一种是矩阵分解求解线性方程组,另一种是使用左除运算符的直接解法

当然还包括线性方程组的迭代解法等等

第一种解法参考代码如下:

% 期末考试第二题求解方程组第一种解法
%利用矩阵分解求解线性方程组
A=[2 -3 1 2; 1 3 0 1; 7 1 -2 2; 1 -1 1 8];
b=[8 6 5 1]'; %取向量的逆向量
B=[A b];
n=4; %方程中的未知数的个数
rA=rank(A)  %求秩
rB=rank(B)
format rat %取有理数的形式
if rA==rB&rA==n
    X=A\b
    elseif rA==rB&rA<n
        X0=A\b  %求方程的通解
        Z=null(A,'r') %求方程的基础解系
        else X='Equation has no solves'%意思是无解
        end

 运行结果为:

 第二种解法参考代码如下:

%期末考试第二题的第二种解法
%利用左除运算符的直接解法
A=[2 -3 1 2; 1 3 0 1; 7 1 -2 2; 1 -1 1 8]; %系数矩阵A
b=[8 6 5 1]'; %常数项b
X=A\b

 运行结果如下:

 第三题:按照需求画图象

这道题相对于期中题目相较于简单化,应为对于一些所需要的标准减少了很多。

期中题目参考:matlab8.5的期中测试参考代码与分析_赵玄月的博客-CSDN博客

这次题目区别在于分为四部分,右上部分画一个周期的正弦函数图像,右下画一个余弦函数图像。

之后更多的一些标准使用默认即可。

本题参考参考代码如下:

%期末考试第三题
subplot(2,2,2); %对于正弦曲线绘图
x1=0:pi/20:2*pi; %规定自变量的范围
y1=sin(x1); %规定自变量因变量的变化关系与范围
plot(x1,y1,' -.r*','linewidth',2) %按照题目要求进行设置
xlabel('时间');ylabel('幅值') %设置轴标签
title('绘图示例') %设置标题
subplot(2,2,4); %对于余弦曲线绘图
x2=0:pi/10:4*pi
y2=cos(x2);
plot(x2,y2,'-b^','markersize',10)
xlabel('时间');ylabel('幅值')
title('绘图示例')

 运行结果如下:

 第四题:构建一个求均值和平均值的函数,之后分别生成4组值,来运行求解

先写一个函数.m文件,用于计算一组数据的平均值和中值,参考代码如下:

%建立主函数
function[A,M]=amfun(X)
%该函数调用内部子函数计算均值和中位数
n=length(X);
A=mean(X,n);
M=median(X,n);
%建立求均值子函数
function avg = mean(Y,n)
    avg=sum(Y)/n;
end
%建立求中位数子函数
    function med=median(Y,n)
        Z=sort(Y);
        if  rem(n,2)==1
            med=Z((n+1)/2);
        else
            med=(Z(n/2)+Z(n/2+1))/2;
        end
    end
end

   

建立函数.m文件方法如下:

首先选择file,之后new,之后选择function,界面如下

不要用正常的script建立.m文件,否则函数无法运行。

 之后运行函数.m文件:

正常情况,它会报错,这个是很正常的,让我们看一下报错原因:

报错的原因是没有足够的输入变量,你需要输入变量,才可以运行的

例如输入一为,使用‘:’进行输入 ,即:

输入二要求使用linspace函数进行输入,即:

输入三为随机获得10个变量,这一问存在疑问,参考为:

输入四要求在【20,50】中均匀取10个数之后求解,即:

 这就是第四问的所有问题求解。

分界线哈,开始简单化

第五问:求解方程右边含有变量的方程组

题目如下:

 参考代码如下:

syms a b c x y z  %定义变量
a=1,b=2,c=3, %代入已知数据
[x,y,z]=solve(y^2-z^2==x^2,y+z==a,x^2-b*x==c) %对于方程组进行求解

 运行结果如下:

第六题、按要求创建数组

 现给出2020级学生机械班第一学期考试课程和学生信息,图下表所示
表1 2020级机械班学生信息
|学号(number) | 姓名(name) |学习课程(course)| 成绩(score)
|20200103001 |赵凯| 高等数学、大学英语、计算机基础、机械制图|86 80 92 79|
|20200103002 | 王菲 |高等数学、大学英语、计算机基础、机械制图|78 85 90 82|
|20200103003|刘洋|高等数学、大学英语、计算机基础、机械制图|88 80 95 90|
表2 2020级机械班任课教师信息
|姓名(name)|孙天宇、刘梅芳、王海涛、杨一帆|
|开设课程(course)|高等数学、大学英语、计算机基础 、机械制图|
求:
1. 建立任课教师和学生的结构数组teacher和student。
2. 以建立的结构数组teacher和student为基础,创建班级的细胞数组,并显示教师和学生的信息。
3. 查询第一个学生的姓名、学习课程、成绩。
4. 查询所有开课教师的姓名。

这道题目说实话除了费时间其他没有任何难度,参考代码如下:

%期末考试第六题
student(1).number='20200103001';
student(1).name='赵凯';
student(1).couse={'高等数学','大学英语','计算机基础','机械制图'};
student(1).score='86 80 92 79';
student(2).number='20200103002';
student(2).name='王菲';
student(2).couse={'高等数学'  '大学英语'  '计算机基础'  '机械制图'};
student(2).score='78 85 90 82';
student(3).number='20200103003';
student(3).name='刘洋';
student(3).couse={'高等数学'  '大学英语'  '计算机基础'  '机械制图'};
student(3).score='88 80 95 90';
student %显示学生的结构数组

teacher=struct('name',{'孙天宇','刘美芳','王海涛','杨一凡'},'course',{'高等数学'  '大学英语'  '计算机基础'  '机械制图'})
%显示老师的结构数组
class=cell(1,2);
class{1,1}=student;
class{1,2}=teacher;
celldisp(class)
%班级细胞数组
class{1} 
class{2} 
%分别显示学生和老师的信息
class{1}(1).name
class{1}(1).couse
class{1}(1).score
%查询第一个学生的姓名,学习课程,成绩
class{2}.name
%查询所有开课老师的姓名

运行结果如下:

 结果截图一多,开始水帖,哈哈哈

 期末考试结束,matlab其实真的需要去仔细学习,这些说实话有些真的很浅显,学会之后会觉得很简单,之后matlab画图是真的好看,给大家看几个书上的范例:

 

 

 

 

 最后还有一些我们当时美赛画的图,真的超好看:

最后大家有问题请指正提问,学习冲冲冲。

执着追梦,勇攀高峰!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

赵玄月

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

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

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

打赏作者

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

抵扣说明:

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

余额充值