matlab 综合练习解答(基础)

文章前言

本文章适用于刚刚开始学习matlab的人进行练习解惑。
之后我会专门出一个专栏进行matlab的基础讲解。
matlab是专为科学和工程计算设计的高级交互式应用软件,适用于工程应用各领域的分析设计与复杂计算。
其使用环境集数值分析、矩阵运算、信号处理和图形显示于一体,是一个可以完成各种计算和数据处理的可视化、易于使用和理解的工具。
因其可信度高、灵活性好,因而在世界范围内被科学工作者、工程师和大中学生广泛使用。
在大学中,学会matlab也是一个加分项,可以凭借好的编程技术去参加全国数学建模大赛,对找工作也有好处。
最好有一些C语言编程基础,高等数学的基础。


文章目录


介绍

接下来都是一些习题的解答,可以有一个参考借鉴的价值,希望对你们有帮助吧!


第一题:矩阵向量运算

向量x=[1 2 3],y=[4 5 6],编程求x.*y,x./y,x.\y, x.^ 3, 2 ^ [x,y], x.^y的结果.

解:如下方代码所示

>> x=[1 2 3];y=[4 5 6];%先设置矩阵
>>Q=x.*y,W=x./y,E=x.\y,R=x.^3,T=x.^y,Y=2.^[x,y]%进行矩阵运算
>>ans=
>Q =

       4             10             18       


W =

       1/4            2/5            1/2     


E =

       4              5/2            2       


R =

       1              8             27       


T =

       1             32            729       


Y =

  1 至 5 列

       2              4              8             16             32       

  6 列

      64       

第二题:方程组运算

求方程组
x1+x2-3x3-x4=1;
3x1-x2-3x3+4x4=4;
x1+5x2-9x3-8x4=0;的通解。

解:如下代码所示

>> A=[1 1 -3 -1;3 -1 -3 4;1 5 -9 -8];
>> b=[1 4 0]';%取逆
>> B =[A b];
>> n=4;%方程中的未知数个数
>> rA=rank(A)%求秩
rA =
     2
>> rB=rank(B)
rB =
     2
>> format rat%取有理数形式
>> if rA==rB&rA==n
X=A\b
else if rA==rB&rA<n
X0=A\b%方程的通解
Z=null(A,'r')%求方程的基础解系
else X='无解'
end

第三题:单元数组与结构数组

现给出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='20110103001';
student(1).name='赵凯';
student(1).couse={'高等数学','大学英语','计算机基础','机械制图'};
student(1).score='86 80 92 79';
student(2).number='20110103002';
student(2).name='王菲';
student(2).couse={'高等数学'  '大学英语'  '计算机基础'  '机械制图'};
student(2).score='78 85 90 82';
student(3).number='20110103003';
student(3).name='刘洋';
student(3).couse={'高等数学'  '大学英语'  '计算机基础'  '机械制图'};
student(3).score='88 80 95 90';
student

student = 

  包含以下字段的 1×3 struct 数组:

    number
    name
    couse
    score

>> teacher=struct('name',{'孙天宇','刘美芳','王海涛','杨一凡'},'course',{'高等数学'  '大学英语'  '计算机基础'  '机械制图'})

teacher = 

  包含以下字段的 1×4 struct 数组:

    name
    course

>> class=cell(1,2);
class{1,1}=student;
class{1,2}=teacher;
celldisp(class)
 
class{1} =
 
  包含以下字段的 1×3 struct 数组:

    number
    name
    couse
    score

 
 
class{2} =
 
  包含以下字段的 1×4 struct 数组:

    name
    course
   >> class{1}(1)

ans = 

  包含以下字段的 struct:

    number: '20110103001'
      name: '赵凯'
     couse: {'高等数学'  '大学英语'  '计算机基础'  '机械制图'}
     score: '86 80 92 79'

>> class{2}(1)

ans = 

  包含以下字段的 struct:

      name: '孙天宇'
    course: '高等数学'

>> class{2}.name

ans =

    '孙天宇'


ans =

    '刘美芳'


ans =

    '王海涛'


ans =

    '杨一凡'

第四题:“符号导数"和"符号积分”,编程求下列算式。

1.求极限

bc8495074f934f78a1f42617b993c2e6.png#pic_center
解:如下方代码所示

>> syms x;
>> L=limit(x*(sqrt(x^2+1)-x),x,inf)
 
L =
 
1/2

2. 已知参数方程,求dy/dx。

4db0972383cb42baaa9c91aaf4676ccf.png#pic_center

解:如下方代码所示

>> syms a b t;
>> x=a*(cos(t))^3;
>> y=b*(sin(t))^3;
>> diff(y/x,'t')
 
ans =
 
(3*b*sin(t)^2)/(a*cos(t)^2) + (3*b*sin(t)^4)/(a*cos(t)^4)

3.计算二重积分

365a79946af14addac6e1776d086e9bd.png#pic_center
解:如下方代码所示

>> syms x y z
>> z=x^2+y^2;
>> R=int(int(z,'y',1,x^2),'x',1,2)
 
R =
 
1006/105

4.求无穷级数之和

解:如下方代码所示

>> syms n
>> S=symsum(((-1)^(n+1))/(2*n-1),1,inf)
 
S =
 
hypergeom([-1/2, 1], 1/2, -1) - 1

5. 求代数方程关于x,y的解。

cd6293ff9c404c92b3fb2f8632577101.png#pic_center
解:如下方代码所示


>> syms a b c x y
>> [x,y]=solve(a*x^2+b*y+c==0,x+y==0)
 
x =
 
 (b - (b^2 - 4*a*c)^(1/2))/(2*a)
 (b + (b^2 - 4*a*c)^(1/2))/(2*a)
 
 
y =
 
 -(b - (b^2 - 4*a*c)^(1/2))/(2*a)
 -(b + (b^2 - 4*a*c)^(1/2))/(2*a)

第五题:绘图及其可视化

绘制1个周期的正弦曲线和2个周期的余弦曲线,要求如下。

1.正弦曲线:周期步长为π/20,线型为点划线、黑色、曲线宽度为2,点标志为五角星形,标记大小为10,填充颜色为黄色,周边颜色为红色。

解:如下方代码所示

>> t=0:0.2:2*pi;
>> y=sin(t);
>> plot(t,y,'-.bp','LineWidth',2,'MarkerEdgeColor','r','MarkerFaceColor','y','MarkerSize',10)

9cbcb46961aa410eb4e3c3e70c9ef660.png#pic_center

2.余弦曲线:周期步长为π/10,线型为实线、蓝色、曲线宽度为3,点标志为上菱形,标记大小为9,填充颜色为品红色,周边颜色为绿色。

解:如下方代码所示

t1=0:pi/10:4*pi;
y1=cos(t1);
plot(t1,y1,'-bd','LineWidth',3,'MarkerEdgeColor','g','MarkerFaceColor','r','MarkerSize',9)

babf981c739d4e7fb980d6a87bd45d07.png#pic_center

3.添加标题“绘图示例”。

解:如下方代码所示

>> t=0:0.2:2*pi;
>> y=sin(t);
>plot(t,y,'-.bp','LineWidth',2,'MarkerEdgeColor','r','MarkerFaceColor','y','MarkerSize',10), title('绘图示例')

b87bcf85de414afd9bba3b6142d88cf7.png#pic_center

4.添加轴标签X轴为“时间”,Y轴为“幅值”。

解:如下方代码所示

>> t=0:0.2:2*pi;
>> y=sin(t);
>>plot(t,y,'-.bp','LineWidth',2,'MarkerEdgeColor','r','MarkerFaceColor','y','MarkerSize',10), title('绘图示例'),xlabel('时间'),ylabel('幅值')

3136fa3aaf1e4649ad358c89d00207a2.png#pic_center

5.为两条曲线分别各自添加图例。

解:如下方代码所示

>> t=0:0.2:2*pi;
y=sin(t);
plot(t,y,'-.bp','LineWidth',2,'MarkerEdgeColor','r','MarkerFaceColor','y','MarkerSize',10), title('绘图示例'),xlabel('时间'),ylabel('幅值'),legend('正弦曲线')
>> t1=0:pi/10:4*pi;
>> y1=cos(t1);
>> plot(t1,y1,'-bd','LineWidth',3,'MarkerEdgeColor','g','MarkerFaceColor','r','MarkerSize',9),legend('余弦曲线')

11e2525e77454ba290920eb424fee9d1.png#pic_center
c5c0b6958ed44342a6a1381d7179ca7f.png#pic_center

6.分别在两个图形窗口中进行绘制。

解:如下方代码所示

t=0:0.2:2*pi;
y=sin(t);
plot(t,y,'-.bp','LineWidth',2,'MarkerEdgeColor','r','MarkerFaceColor','y','MarkerSize',10), title('绘图示例'),xlabel('时间'),ylabel('幅值'),legend('正弦曲线')
>> t1=0:pi/10:4*pi;
>> y1=cos(t1);
>> plot(t1,y1,'-bd','LineWidth',3,'MarkerEdgeColor','g','MarkerFaceColor','r','MarkerSize',9),legend('余弦曲线')
>subplot(1,2,1),plot(t,y,'-.bp','LineWidth',2,'MarkerEdgeColor','r','MarkerFaceColor','y','MarkerSize',10), title('绘图示例'),xlabel('时间'),ylabel('幅值'),legend('正弦曲线')
>> subplot(1,2,2),plot(t1,y1,'-bd','LineWidth',3,'MarkerEdgeColor','g','MarkerFaceColor','r','MarkerSize',9),legend('余弦曲线')

3f8b4a19e0d04bd6ad0152ad367867e9.png#pic_center

总结

上面这些题目在matlab中都是很基础的操作,学习matlab一定要跟着做练习,只有动手去敲代码,你才能体验到使用matlab的乐趣,希望这篇文章,可以为你建立起对matlab一个最基础的认知。

  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Bitter tea seeds

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

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

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

打赏作者

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

抵扣说明:

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

余额充值