2022.3.11 MATLAB课程作业
任务一:
问题描述:
- 分别使用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);
- 要绘制这个图形,首先得准备数据,使用meshgrid生成数据,也就是第一句
- 第一句的意思是对于 x y z ,在 -10 到 10 这个区间,生成一个三维的数据,每个数据大小的间隔为 0.01
- 然后就是利用刚刚生成的数据进行函数解析式的计算,也就是第二句
- 由于数据是一个三维的矩阵,只要涉及到矩阵乘法,就得考虑是叉乘还是点乘(叉乘和点乘的区别在上一篇的MATLAB的文章中讲解过),幂次方也是乘法的一种,所以也有点幂和叉幂的区别,同于矩阵乘法
- 在这里的要求显然是所有的数据进行计算之后都位于原来的位置(把这个三维矩阵想象成一个三维的坐标系,每个数据都是其中的一个点,他们都有一个唯一的坐标),所以,进行计算的时候需要使用到点乘
- 最后,就是使用 isosurface 这个工具把数据可视化了,其中使用的 x y z 必须是前面生成数据的时候使用的三个变量,这样的话才能使用到有效的数据进行图像绘制
isosurface 的语法规则在PPT里面已经讲了,更加具体详细的可以到官方文档查阅
https://ww2.mathworks.cn/help/matlab/ref/isosurface.html#mw_79c88feb-20af-42e7-9937-655b16f4e983
参考结果:
任务二:
问题描述:
- 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹有多高?
- 编程求阶乘数列{n!}前20项的和;
小球下落:
height = 100;
sum = 0;
for i=1:10sum = sum + height;height = height / 2;sum = sum + height;
end
下落时有一个距离,弹起来之后又有一段距离,两段距离都需要累加,符合顺序结构,循环里面先加了一次距离,后面又加了一次距离
- height 表示的是当前高度
- sum 表示的是总共经历的路程
- 循环中的 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);
- result 用于存放累加之后的结果
- sum 用于存放 i 的阶乘
- 由于每次进行计算的结果相互独立,所以 sum 进行计算完之后的结果要变回 1 ,以参与下一次运算
- disp() 这是用于显示某个变量的值,相当于输出语句
在这里要感谢某个人,在寒假教她的时候,我发现了改进的方法,只需要一层循环就可以达到这个效果
result=0;
sum = 1;
for i=1:20sum = sum * i; result = result + sum; end
disp(result);
为什么只需要一层循环?
n 的阶乘为 (n - 1)的阶乘乘以 n , 所以,每次进行计算的时候利用上一次循环计算出的结果即可
任务三:
问题描述:
- 用for循环生成一个长度为100的行向量A,其通项是log(n),其中n为数列下标;
- 分别计算A向量前20、40、60、80及前100项的和;
- 取A的前20项,重新赋给A,之后在A的下方新增一个元素全部都是1行向量,形成矩阵B,并计算矩阵的转置C;
- 分别计算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
- MATLAB中,使用下标访问矩阵中的某个元素是使用小括号,而不是像 C 语言和Python那样使用中括号
- fprintf 的用法和作用与 C 语言一致,参考 C 语言的用法即可
- 计算前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课程作业相关推荐
- 学matlab课程,MATLAB在线课程与学习资源2019版.pdf
MATLAB 在线课程与学习资源 (2019 版) 1. MATLAB 免费在线课程: / 使用交互式课程和练习,学习MATLAB 基础支持.课程时长 2-3 小时.自定进 度,通过Web 浏览器访问 ...
- 全球名校课程作业分享系列(11)--斯坦福CS231n之生成对抗网络
课程作业原地址:CS231n Assignment 3 作业及整理:@邓姸蕾 && @Molly && @寒小阳 时间:2018年2月. 出处:http://blog. ...
- 利用Matlab做二元huffman,信息论与编码课程作业_huffman编码的matlab_实现
信息论与编码课程作业 --霍夫曼编码求信源熵和存储前后的信息量的变化 一:设计目的: 1.学习离散信源平均信息量的计算方法. 2.理解和掌握huffman 编码的基本原理,实现对信源符号的huffma ...
- matlab留学生作业代做,25877留学生作业代做、代写MATLAB,R编程设计作业、代做MATLAB/R课程作业、代写portfolio作业...
25877留学生作业代做.代写MATLAB,R编程设计作业.代做MATLAB/R课程作业.代写portfolio作业 日期:2019-06-10 09:48 Financial Markets Ins ...
- 2022年春季学期课程基本信息总汇
简 介: 对于2022学年春季学期的课程信息进行汇总,便于平时通过手机进行实时查询. 关键词: 2022,课程信息 #mermaid-svg-OP3BPdW7Z0jdfXe4 {font-family ...
- 吴恩达深度学习课程deeplearning.ai课程作业:Class 1 Week 2 assignment2_1
吴恩达deeplearning.ai课程作业,自己写的答案. 补充说明: 1. 评论中总有人问为什么直接复制这些notebook运行不了?请不要直接复制粘贴,不可能运行通过的,这个只是notebook ...
- 8. 吴恩达机器学习课程-作业8-异常检测和推荐系统
fork了别人的项目,自己重新填写,我的代码如下 https://gitee.com/fakerlove/machine-learning/tree/master/code 代码原链接 文章目录 8. ...
- 2022年11月多家权威机构____编程语言排行榜__薪酬状况
2022年11月多家权威机构____编程语言排行榜__薪酬状况 目 录: 一.TIOBE统计数据(2022年11月) (1)2022年11月的编程语言流行度指数排行 (2)编程语言多年流行回顾 (3) ...
- 2022春哈工大ICS大作业——程序人生-hello‘sP2P
计算机系统(初发布于2022/5/15,修改于2022/5/20) 大作业 题 目 程序人生-Hello's P2P 专 业 学 号 班 级 学 生 沈业力 ...
最新文章
- Hadoop集群的基本操作(二:HBase的基本操作)
- 独家 | 使用Python实现机器学习特征选择的4种方法(附代码)
- 安卓案例:利用相对布局实现注册页面
- Java编写程序将数据存入Kafka中
- PowerPoint什么意思
- React-表单处理(受控组件,非受控组件)
- PHP7.1 狐教程【旧】不在更新,请点击新连接查看
- xtwpro2编程器_XTW100编程器驱动软件
- 关于DNF的多媒体包NPK文件的那些事儿(8) - DNF里的DDS图像
- 良心安利游戏音效素材网站
- 计算机用户接入广域网的技术,广域网接入技术
- MSSQL 负载均衡(Moebius)
- CF1654-G. Snowy Mountain(2900) GOOD
- 智能暖风机——4.暖风机外设驱动实现
- c语言如何宏定义枚举型结构体,C语言学习笔记--枚举结构体
- 《用 Python 学微积分》笔记 3
- php获取搜索记录,PHP写的获取各搜索蜘蛛爬行记录代码
- 关于Ubuntu启动activeMq无效果的错误解决方案
- python HEIC 转jpg
- pycharm中出现Windows PowerShell版权所有 (C) Microsoft Corporation。保留所有权利。尝试新的跨平台 PowerShell https://aka.ms/
热门文章
- 三维重建 影像匹配 密集匹配三者的关系
- 「视频」VR购物有望解决现有二维网购模式的掣肘?
- Mentor-dft 学习笔记 day13-Scan Insertion for Wrapped Core案例
- 新三板上市和主板上市的区别主要是什么?
- 计算机网络原理自学考试课程,自学考试《计算机网络原理》课程全国统一命题考试说明...
- 创业公司遇到招募技术人才难的问题,怎么办?
- Mac OS和Office版本问题
- 『The ShardingSphere Global Echo』Vol.5
- GBase 8a MPP使用时 数据库基础问题之管理工具三
- solidity 变量