matlab norm函数_MATLAB | TAM 211 存活指南 V3.0

cdd528341bc8d806045a3d9b5ac03496.png

点击蓝字 关注我

a598ee23c54f726a2012b173d14f55c5.png d884ffdaa5d4177dc82f95205c29beab.png

本文大部分内容为2019年初次接触 TAM 211时所写,后续存在少量修改与增补。叙述时间可能有点错乱,凑合着看吧。

新的学期,我们迎来了 TAM 211 , 静力学的课程。虽说这是一门 水课 轻松愉快 的课,但每月两次(也有可能是四次)的 Quiz 总也是让人心惊胆颤的。

得益于暑期实验室项目的要求,对 MATLAB 的基本操作我也算是小有所成。因此,为了服务广大的 ME, CE 人民,我特地在暑的尾巴加班加点改出了这篇 MATLAB教程,开学大礼包不客气哟。

话不多说,请看学习笔记:

d0c7560e4b77991b1766ed104ce9cbc1.png

学前预热

9a5929879baf3a56218a15a1ef9a06f1.gif

MATLAB 的性能十分出色,它比其他程序(比如说 Python )的优越之处在于完善的帮助系统。

当你码代码遇到了一个忘记使用方法的函数时,你就可以在命令行窗口打上

help xxx

它会自动告诉你这玩意该怎么用!

如果是直接忘记应该用什么函数了,也可以上网百度搜素,各种博客与论坛上面会有很多解决方案,总有一款适合你。

9a5929879baf3a56218a15a1ef9a06f1.gif 9a5929879baf3a56218a15a1ef9a06f1.gif

因为直接在命令行窗口编写程序或者进行计算的话是不能修改已经运行过的东西的。而且一按回车就直接运行而不是换行(使用Enter+Shift),所以请务必 使用脚本(Script)  窗口!这能带来很大的便利。

9a5929879baf3a56218a15a1ef9a06f1.gif 9a5929879baf3a56218a15a1ef9a06f1.gif

在做作业的时候,可以不用做一题删一行,而是把原过程留着,打上注释(Ctrl+R, Ctrl+T 可以取消注释),方便事后检查错误之处(比如说在 211 quiz 之前或在 FlipitPhysics 成绩出来之后)。

9a5929879baf3a56218a15a1ef9a06f1.gif 9a5929879baf3a56218a15a1ef9a06f1.gif

   设置 MATLAB 搜索路径

在使用的过程中,MATLAB的函数搜索仅仅包含当前文件夹与搜索路径中的文件。

7d28889667a59a25960c921a3323be57.png

当前文件夹

87f9cb40ae3cce9a67be99829ff473b0.png

MATLAB 搜索路径

因此,在使用自己写的或者其他外置函数时,需要事先把它放到搜索路径中。过程也很简单:

主页 - 设置路径 - 

添加文件夹/添加并包含子文件夹

9a5929879baf3a56218a15a1ef9a06f1.gif

TAM211

相信大家在之前的ECE110中也经历过这种事情:经过重重复杂计算,写了慢慢一纸的 A4 ,终于把答案给算出来并且被Prairielearn 评为正确,还需要 再来一遍 才能满分通过。然而,当自己重复那个复杂操作的时候一不小心出来了个啥岔子,于是就 再来亿遍 了。

这种情况在你使用 MATLAB 进行解题的时候就绝对不会发生了,因为 MATLAB 是不会出错的!要错就是自己错了。

如果答案很不幸地又错了,那就肯定是阴险狡诈的题目不仅仅改变了数据的大小,还更改了某个条件。这个时候就认命重做亿遍吧。

9a5929879baf3a56218a15a1ef9a06f1.gif

   Solve([f1,f2,...],[x1,x2,...])

MATLAB 中的 solve 函数接受两个矩阵,前一个矩阵输入函数关系,后一个矩阵输入变量名字。它输出变量的一个解或多个解。

但要注意的是:

1. 使用本函数之前必须先声明变量!

f867b0733ba29d89d26be0dd77e9af40.png

事先声明变量

2. 输入的是包含一个或多个函数关系式的矩阵,不是其他杂七杂八的东西!

4c2dee5da6267f94daba31be9b517dc4.png

函数关

系式正

确示范

函数关

系的错

误示范

632c8e9a82f85e3c99eff83a3f661740.png

3. 函数关系中需要两个等号连用!!

一个等号是赋值,两个等号才是等于

4. 最终还需要用 [x y] = solve() 来进行赋值 

da5289e31f51ffc7dd5bd39877cc5891.png 8967745488d14052dafba91c1fb34abc.png

懒得赋值

------------------------------

进行赋值

这个东西十分神秘,它的赋值方向不是一一对应的,而是一一对应的。

6f395b692cb8d4cd5f62b1c9ee4c8e9d.png

如果我们写了一句

[x y] = solve([f1 f2],[x y])

那么什么都不会发生

但如果写的是

[y x] = solve([f1 f2],[x y])

神奇的事情就发生了

本该是赋给y的值变到x上去了!

总结来说,solve 函数的赋值方式还是一一对应的。它的对应方式和变量声明的顺序无关,只与 solve 这一行中变量使用的顺序有关。

图解如下

698cfb5f0991e18c88b6892fcd8958e0.png 9a5929879baf3a56218a15a1ef9a06f1.gif

有关 solve() 的两个小技巧:

syms 并不仅仅支持解方程,它还可用于其他含参的运算

4984a7c8d890562a0dfde7383b0557d5.png

例如来自老白的 H9

我们就可以先声明参数 a 与 b ,然后进行莫得感情的乘方运算。

0140ad9b7599c5f310e566731222f086.png

代码

e3b6dd52c8d263ab224e7958c55eef52.png

结果

它也可以用于直接进行含参的方程的求解。

1506717ffd6af7b496078f9ec4a52a06.png

代码

d09462bce10476ecd0242837deb070ec.png

结果

很多时候 solve 得出的结果是一串计算式,还需要复制粘贴二次求答案。

099b9255b60fe6a61e0c912bd54bd803.png

这并不是最复杂的那一个,但肯定是最典型的

此时我们就可以和 double() 函数连用直接打出需要的答案来。

7a057509e1fa578f43027e9d0e7abea9.png

代码

96d8901fc6187673a5a9aa22e218e3da.png

结果

感兴趣的同学可以验算一下 x 的值到底是不是348.5507 哦。

9a5929879baf3a56218a15a1ef9a06f1.gif

   cross(V1,V2)

这玩意大家应该都挺熟悉的,就是用来求两个三维向量叉乘结果的函数。其中 V1 与 V2 分别就代表了那两个向量。

此函数一般用于求某个力关于某个点的 momentum, 需要

首先将 力 与 那个点到力的作用点 这两个向量表示出来,

无脑叉乘,

最后左手定则判断方向就搞定了。

0144f2d7700386841bb6b2889f8b4f6e.png

比如说这题

只需要注意:

三维向量才存在叉乘,所以如果题目给定条件是二维的,需要简单转化为三维坐标才行。

9a5929879baf3a56218a15a1ef9a06f1.gif 9a5929879baf3a56218a15a1ef9a06f1.gif

 acosd(x) 三角函数相关

关于三角函数,需要知道三点:

1. a... 代表反三角函数 arc...

2. x 默认为是弧度制的

3. ...d 接受角度制

9a5929879baf3a56218a15a1ef9a06f1.gif 9a5929879baf3a56218a15a1ef9a06f1.gif

norm(A)

这个函数用于求某个向量的模。

可被用于:

359078270be183ed891a76912d214f67.png

求两向量间夹角

4b993eea7024afccc709946f536e94fa.png

求各种投影

04423d96eef8bb60161d4b4f42af0398.png

求某个方向上的单位向量

以及其他一切用到向量的模的地方

很简单也很实用的函数,没啥好注意的。

9a5929879baf3a56218a15a1ef9a06f1.gif

PHYS212

虽说我们在考试的时候用不了 MATLAB ,但是在平时做题学习时的简单使用能够极大地减少埋头按计算器的时间。

当然,需要配合以下几个小技巧

否则只能起到事倍功半的效果

9a5929879baf3a56218a15a1ef9a06f1.gif

储存常量

做题的时候是不是经常忘记这个常量是多少,然后往前使劲翻页寻找它的大小或者百度搜索找到一堆不相干的东西?

d10f82e08755ba70b4c83817c2ac3240.png

想象中的百度百科

8d83586692d8adb75021912b53c56026.png

实际上的百度百科

更不用说一些难以言说的希腊字母了。没个好一点的输入法和标准一点的拼音你就连打都打不出来。

40365b5f1c290bee408f8591d616b1ba.png aabfdb604b55769f3651733b63b246ae.png e853fb65697b1d6531e79c5896f3a797.png 16a2e332fec31f71cda7cf90c22f7407.png 7a85bf85fb7d391eab7175acd99beedd.png

这时候我读书少没文化就体现出来了

因此,我们可以把常数都一次性储存在 MATLAB 的工作区中,需要的时候直接调用就可以了。

5b8d0d6fe6d90e5777cc215ff7857a97.png

目前为止这学期有用过的几个常量

也可以直接写在脚本的最上方以防止被覆盖。

9a5929879baf3a56218a15a1ef9a06f1.gif 9a5929879baf3a56218a15a1ef9a06f1.gif

记录公式

也没啥技术含量,就是把要用的公示写在最上方并且注释掉,方便复制粘贴而已

fbd9804712a2b90cdc4678b6c88fed41.png

写出长长一串

9a5929879baf3a56218a15a1ef9a06f1.gif 9a5929879baf3a56218a15a1ef9a06f1.gif

科学记数法的简便表示

之前我只会用 *10^n 来表示科学记数法,于是用 MATLAB 来解题的时候就显得很傻。

3c700ccaab84eca4b8ebe453a5a8e545.png

显得很傻

有时觉的还是像我平时在计算机上做的那样无脑加零比较方便,即使有时候双手双脚都不够数零的个数,检查也很麻烦。

426b3fa52e8bed91c86979d7898e2731.png

不那么傻

直到后来,我终于学会了科学记数法:

54d4820ba38a2b689ff14d003b0a651d.png

显得很聪明

真的不要太方便啊!

9a5929879baf3a56218a15a1ef9a06f1.gif 9a5929879baf3a56218a15a1ef9a06f1.gif

int(fx,x1,x2)

这个函数是专门用来求积分的,它接受一个表达式 fx, 积分开始值 x1 与积分结束值 x2(当然有些时候会是无穷大 inf),输出的就是定积分的结果了,也可用于不定积分的求解。

dccec05ac90964e2323c44323cda9e58.png e4cfd334242f3c6aa38ba9495bdea530.png

例题

a54fb7a6f72c00ed720b6d1c7d40ff52.png

它只有一个注意事项项:

需要事先声明变量

可用于 potential (电势差)的计算,十分好用。

9a5929879baf3a56218a15a1ef9a06f1.gif 9a5929879baf3a56218a15a1ef9a06f1.gif

多重积分 (Iterated Integrals)

原理相同,只是连续使用多次 int 函数罢了

实例:

be7b4eb8a71ffb6de9b04f3258184a29.png

解:

syms x y z

mz = int(x^2+y^2,z,0,sqrt(9-y^2));

mzy = int(mz,y,3*x,3); %连用三次

mzyx = int(mzy,x,0,1); %每次迭代即可

disp(double(mzyx))

得:

>> H59E50

   11.2000

9a5929879baf3a56218a15a1ef9a06f1.gif

MATH241

学期初, MATLAB 在数学课上的应用在矩阵领域:

zeros()     ,     ones()     ,     eyes()等

得到矩阵

A‘     ,     inv(A)     ,     max()等

矩阵操作

A(:,1)等

矩阵索引

之后会需要进行一些图像的打印,详见下文:

eef0c3b57e785bbf5fdb2402e48645d6.png

MATLAB | 三维绘图与等高线绘制

当然

这些都是没用的。

你以为老白的题目是靠 MATLAB 就能解决的吗?

别做梦了!

老老实实地去钻研课件

总而言之, MATLAB 并不只是一个绘图软件,也不仅仅是高级一点的计算器。对于将来的数据处理与仿真模拟来说,它更是不可或缺的。因此,多学一些操作手法与内置函数(包括一些外加的工具箱)还是十分有必要的。希望大家在即将到来的考试/Quiz中能够取得好看的成绩吧!

dfc63f867c988db033bf73cae024745d.png 5040131cae4c45bbb6bf09621c655608.png

扫码关注我

盯住点赞与在看的手

49007758eeca3c9e0fd8844ecfd23b2d.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值