数学建模社区-数学中国

标题: 【美赛必备】 MATLAB 入门教程七篇:点乘和给x轴赋值 [打印本页]

作者: 吃苹果的梨    时间: 2015-12-12 09:34
标题: 【美赛必备】 MATLAB 入门教程七篇:点乘和给x轴赋值
MATLAB里最核心的内容就是数组和数组运算,在MATLAB里矩阵和数组的差别不大,矩阵作为一种变换或映射算子的体现,在数学上有着严格的运算规则。数组不仅承担matlab软件赋给它的一些运算规则,而且也实现矩阵运算的功能。

当你需要进行一般的(就像教科书讲的)矩阵(向量)运算时就直接用 *(^)。

当你需要把两(矩阵)向量 的对应位置相乘(求幂) 那就用 .*(.^)。


我们知道1*1的矩阵我们叫标量,就是一个数,标量和标量的运算直接用我们熟悉的运算符号就可以了。但是,矩阵的运算,包括向量,标量,矩阵之间的运算有所谓叉乘和点乘之分,比如我们定义了

复制代码
我们想计算相应的2t的所有值,就必须用到点乘,符号是“.*”,即:

复制代码
相应的,还有点除,点乘方等运算,如果涉及到这样的运算,这个“点”符号一定一定不要忘掉,由于”.”符号过于微小,如果你的程序写的很大,这个错误将很难被发现。

A*B(为线性代数中定义的矩阵乘法。按乘法定义要求必须有矩阵A的列数等于矩阵B的行数)

A.*B(符号数组的乘法,为按参量A与B对应的分量进行相乘。A与B必须为同型阵列,或至少有一个为标量)

为什么要在sin(1./x)?

句柄是对图像的标识,MATLAB在创建每一个图形对象时,都为该对象分配唯一的一个值,称其为图形对象句柄。句柄是图形对象的唯一标识符,不同对象的句柄不可能重复和混淆。我们还是下面用简单的例子说明一下!!~~

复制代码

复制代码

复制代码
第二个例子如果有矩阵

复制代码

复制代码

复制代码

复制代码
所以,点乘或者点除都是一对一的乘或者除!!

特别注意:对于Ax=b的问题,如果A,b已知,那么,x=A\b(x等于A左除b)


复制代码
所以,这种类似的情况,都要是“左除\”来做!

对于点乘,点除给出了详细的说明,我们继续说说另一个。上回我们在绘图那篇里没有对x轴取值没有详细的说明因为取值这也是一个技巧。在matlab里有二个命令实现,下面介绍一下。

linspace(x1,x2,N)
linspace是Matlab中的一个指令,用于产生x1,x2之间的N点行矢量。其中x1、x2、N分别为起始值、中止值、元素个数。若缺省N,默认点数为100。在matlab的命令窗口下输入help linspace或者doc linspace可以获得该函数的帮助信息。

给点小建议:
x=first:increment:last
创建从first开始,加增量(increment)计数,到last结束的行向量x

x=linspace(first,last,n)
创建从first开始,到last结束,有n个元素的行向量x

以前这是我总是分不清这俩个地方,也总出现错误。两者有什么不同吗?为什么我运行下面两个命令执行的结果是一样的?但是有时候做程序两者不能互换呢?

复制代码
有区别的,比如:你要在-1到1之间取400个点,用步长法很难办到,但用linspace就很容易。 其实它们可以互换的,n=[(last-first)+1]/increment,如果你将这两个数换成刚才比例的话,肯定产生的点是相同的啦,呵呵!还是有区别的,如果你知道增量就用步长法,如果不知道增量又懒得算的话,就用linspace。

logspace(a,b,n)
其中a、b、n分别表示开始值、结束值、元素个数。生成从10的a次方到10的b次方之间按对数等分的n个元素的行向量。n如果省略,则默认值为50。在matlab的命令窗口中输入help logspace或者doc logspace可以获得更多帮助信息。
就是将1到2 将的数划成5分1 1.25 1.50 1.75 2 然后取10为底。

复制代码


52007fce47c47a34b08665dace2a4cca.jpg (95.58 KB, 下载次数: 177)

52007fce47c47a34b08665dace2a4cca.jpg






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5