任务一:

问题描述:

  1. 分别使用Matlab的ezplot和isosurface函数绘制附件所示函数图形;

ezplot心形函数:

只有这一句,由于这个编辑器不支持MATLAB语法,自身又有语法规则,只能使用别的方法粘贴过来

ezplot('x^2 + (y - (x^2)^(1/3))^2 - 1',[-5,5])

中间用单引号引起来的就是函数的解析式,后面中括号里面表示的是 x 的范围(可写可不写,如果不写的话,默认范围是-2π到2π)

常见错误: x 平方之后再开三次方的那个部分,如果直接直接写成x的二分之三次方的话,会发现画出来的图形只有半边,因为这么写的话,x的取值会无法取到负数,如果是先进行 x 的平方再进行开三次方(开n次方根,可以表示为 n 分之一次方)的话那就没有这个顾虑了,因为实数范围内的平方是绝对成立的

参考结果:

若将表达式右边的 -1 更换为其他的数,例如 -5 ,可以得到不同形态的心形

isosurface心形曲面函数

[x,y,z] = meshgrid(-10:0.1:10);V = (x.^2 + 9/4 .* y.^2 + z.^2 - 1).^3 - x.^2 .* z.^3 - 9/80 .* y.^2 .* z.^3;isosurface(x,y,z,V,0);
  1. 要绘制这个图形,首先得准备数据,使用meshgrid生成数据,也就是第一句
  2. 第一句的意思是对于 x y z ,在 -10 到 10 这个区间,生成一个三维的数据,每个数据大小的间隔为 0.01
  3. 然后就是利用刚刚生成的数据进行函数解析式的计算,也就是第二句
  4. 由于数据是一个三维的矩阵,只要涉及到矩阵乘法,就得考虑是叉乘还是点乘(叉乘和点乘的区别在上一篇的MATLAB的文章中讲解过),幂次方也是乘法的一种,所以也有点幂和叉幂的区别,同于矩阵乘法
  5. 在这里的要求显然是所有的数据进行计算之后都位于原来的位置(把这个三维矩阵想象成一个三维的坐标系,每个数据都是其中的一个点,他们都有一个唯一的坐标),所以,进行计算的时候需要使用到点乘
  6. 最后,就是使用 isosurface 这个工具把数据可视化了,其中使用的 x y z 必须是前面生成数据的时候使用的三个变量,这样的话才能使用到有效的数据进行图像绘制

isosurface 的语法规则在PPT里面已经讲了,更加具体详细的可以到官方文档查阅

https://ww2.mathworks.cn/help/matlab/ref/isosurface.html#mw_79c88feb-20af-42e7-9937-655b16f4e983

参考结果:

任务二:

问题描述:

  1. 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹有多高?
  2. 编程求阶乘数列{n!}前20项的和;

小球下落:

height = 100;
sum = 0;
for i=1:10sum = sum + height;height = height / 2;sum = sum + height;
end

下落时有一个距离,弹起来之后又有一段距离,两段距离都需要累加,符合顺序结构,循环里面先加了一次距离,后面又加了一次距离

  1. height 表示的是当前高度
  2. sum 表示的是总共经历的路程
  3. 循环中的 i 用于表示当前是第几次下落

重点:
for 循环的语法:
for 循环变量 = 起点(:步长(可选,不写的话默认为1)):终点
循环体
end

for i=1:10%循环体
end

具体用法参考上面黑色的这一段

参考结果:

求阶乘:

result=0;
for i=1:20  sum=1; for j=1:i    sum=sum*j; endresult = result + sum; end
disp(result);
  1. result 用于存放累加之后的结果
  2. sum 用于存放 i 的阶乘
  3. 由于每次进行计算的结果相互独立,所以 sum 进行计算完之后的结果要变回 1 ,以参与下一次运算
  4. disp() 这是用于显示某个变量的值,相当于输出语句

在这里要感谢某个人,在寒假教她的时候,我发现了改进的方法,只需要一层循环就可以达到这个效果

result=0;
sum = 1;
for i=1:20sum = sum * i;   result = result + sum; end
disp(result);

为什么只需要一层循环?
n 的阶乘为 (n - 1)的阶乘乘以 n , 所以,每次进行计算的时候利用上一次循环计算出的结果即可

任务三:

问题描述:

  1. 用for循环生成一个长度为100的行向量A,其通项是log(n),其中n为数列下标;
  2. 分别计算A向量前20、40、60、80及前100项的和;
  3. 取A的前20项,重新赋给A,之后在A的下方新增一个元素全部都是1行向量,形成矩阵B,并计算矩阵的转置C;
  4. 分别计算A * C、C * B和B * C的结果;

生成行向量A:

A = [];
for i = 1:100A(end + 1) = log(i);
end

第三行用于在向量 A 的末尾添加元素,end 表示的是 A 中最后一个元素的位置,在没有使用分号表示要换行的前提下,在末尾添加的元素都是在行的末尾添加

计算前n项和:

sum = 0;
for i = 20:20:100for j = 1:isum = sum + A(j); endfprintf("前%d的和为%.2f\n",i,sum);sum = 0;
end
  1. MATLAB中,使用下标访问矩阵中的某个元素是使用小括号,而不是像 C 语言和Python那样使用中括号
  2. fprintf 的用法和作用与 C 语言一致,参考 C 语言的用法即可
  3. 计算前n项和的方法参考上面计算阶乘和的思路

取A的前20项,新增一向量,矩阵的转置:

取A的前20项:

A(21:100) = [];

我使用的是把后面那么多项全部去掉,若是选择将前20项赋给一个新的变量,也可以

新增一向量:

使用 ones 函数

B = [A;ones(1,20)];

ones() 函数括号内的参数表示行和列,例如:ones (3,5) 表示的是生成一个元素值全是 1 的 3 * 5 的矩阵

矩阵的转置:

C = B';

在矩阵的名字后面加个单引号,就是表示对该矩阵进行转置
例如 3 * 5 的矩阵转置之后会变成 5 * 3 的矩阵,即 行数变成列数,列数变成行数

具体是怎么实现的呢?其实是个很简单的操作,C 语言课上也讲过

a [ i ] [ j ] 和 a [ j ] [ i ] 进行交换即可

计算矩阵叉乘和点乘的结果:

计算条件和计算方法参考我上一篇MATLAB的博客,最终的结果记得输出

disp(A);
newline;
disp(B);
newline;
disp(C);
newline;
disp(A*C);
newline;
disp(C*B);
newline;
disp(B*C);
newline;

newline用于在输出结果的窗口制造一个空行,这里也将前面部分的结果一起输出了

任务三这些代码段全部拼接在一起,就是最终的结果

2022.3.11 MATLAB课程作业相关推荐

  1. 学matlab课程,MATLAB在线课程与学习资源2019版.pdf

    MATLAB 在线课程与学习资源 (2019 版) 1. MATLAB 免费在线课程: / 使用交互式课程和练习,学习MATLAB 基础支持.课程时长 2-3 小时.自定进 度,通过Web 浏览器访问 ...

  2. 全球名校课程作业分享系列(11)--斯坦福CS231n之生成对抗网络

    课程作业原地址:CS231n Assignment 3 作业及整理:@邓姸蕾 && @Molly && @寒小阳 时间:2018年2月. 出处:http://blog. ...

  3. 利用Matlab做二元huffman,信息论与编码课程作业_huffman编码的matlab_实现

    信息论与编码课程作业 --霍夫曼编码求信源熵和存储前后的信息量的变化 一:设计目的: 1.学习离散信源平均信息量的计算方法. 2.理解和掌握huffman 编码的基本原理,实现对信源符号的huffma ...

  4. matlab留学生作业代做,25877留学生作业代做、代写MATLAB,R编程设计作业、代做MATLAB/R课程作业、代写portfolio作业...

    25877留学生作业代做.代写MATLAB,R编程设计作业.代做MATLAB/R课程作业.代写portfolio作业 日期:2019-06-10 09:48 Financial Markets Ins ...

  5. 2022年春季学期课程基本信息总汇

    简 介: 对于2022学年春季学期的课程信息进行汇总,便于平时通过手机进行实时查询. 关键词: 2022,课程信息 #mermaid-svg-OP3BPdW7Z0jdfXe4 {font-family ...

  6. 吴恩达深度学习课程deeplearning.ai课程作业:Class 1 Week 2 assignment2_1

    吴恩达deeplearning.ai课程作业,自己写的答案. 补充说明: 1. 评论中总有人问为什么直接复制这些notebook运行不了?请不要直接复制粘贴,不可能运行通过的,这个只是notebook ...

  7. 8. 吴恩达机器学习课程-作业8-异常检测和推荐系统

    fork了别人的项目,自己重新填写,我的代码如下 https://gitee.com/fakerlove/machine-learning/tree/master/code 代码原链接 文章目录 8. ...

  8. 2022年11月多家权威机构____编程语言排行榜__薪酬状况

    2022年11月多家权威机构____编程语言排行榜__薪酬状况 目 录: 一.TIOBE统计数据(2022年11月) (1)2022年11月的编程语言流行度指数排行 (2)编程语言多年流行回顾 (3) ...

  9. 2022春哈工大ICS大作业——程序人生-hello‘sP2P

    计算机系统(初发布于2022/5/15,修改于2022/5/20) 大作业 题     目 程序人生-Hello's P2P 专       业 学    号 班    级 学       生 沈业力 ...

最新文章

  1. Hadoop集群的基本操作(二:HBase的基本操作)
  2. 独家 | 使用Python实现机器学习特征选择的4种方法(附代码)
  3. 安卓案例:利用相对布局实现注册页面
  4. Java编写程序将数据存入Kafka中
  5. PowerPoint什么意思
  6. React-表单处理(受控组件,非受控组件)
  7. PHP7.1 狐教程【旧】不在更新,请点击新连接查看
  8. xtwpro2编程器_XTW100编程器驱动软件
  9. 关于DNF的多媒体包NPK文件的那些事儿(8) - DNF里的DDS图像
  10. 良心安利游戏音效素材网站
  11. 计算机用户接入广域网的技术,广域网接入技术
  12. MSSQL 负载均衡(Moebius)
  13. CF1654-G. Snowy Mountain(2900) GOOD
  14. 智能暖风机——4.暖风机外设驱动实现
  15. c语言如何宏定义枚举型结构体,C语言学习笔记--枚举结构体
  16. 《用 Python 学微积分》笔记 3
  17. php获取搜索记录,PHP写的获取各搜索蜘蛛爬行记录代码
  18. 关于Ubuntu启动activeMq无效果的错误解决方案
  19. python HEIC 转jpg
  20. pycharm中出现Windows PowerShell版权所有 (C) Microsoft Corporation。保留所有权利。尝试新的跨平台 PowerShell https://aka.ms/

热门文章

  1. 三维重建 影像匹配 密集匹配三者的关系
  2. 「视频」VR购物有望解决现有二维网购模式的掣肘?
  3. Mentor-dft 学习笔记 day13-Scan Insertion for Wrapped Core案例
  4. 新三板上市和主板上市的区别主要是什么?
  5. 计算机网络原理自学考试课程,自学考试《计算机网络原理》课程全国统一命题考试说明...
  6. 创业公司遇到招募技术人才难的问题,怎么办?
  7. Mac OS和Office版本问题
  8. 『The ShardingSphere Global Echo』Vol.5
  9. GBase 8a MPP使用时 数据库基础问题之管理工具三
  10. solidity 变量