matlab中的向量除法 您所在的位置:网站首页 matlab中的除法怎么写 matlab中的向量除法

matlab中的向量除法

2023-09-25 03:14| 来源: 网络整理| 查看: 265

       向量之间进行除法运算,使用不加点的矩阵除法“A/B”时,问题可以描述为:给定两个向量A、B,求一个常量x,使得A=x * B。     举个例子: [2 4]/[1 2]=2。很显然,当两个向量中对应的每一组元素都有固定的比值时,答案很简单,就等于任一组对应元素之比。但若两个向量中对应的元素之比并不是都相等时,除出来的结果等于多少呢?例如: [2 5] / [1 2] = ? 不论哪个常数 x 都不能使得 [2 5] = x * [1 2] 成立。那此时的矩阵(向量)除法还有没意义呢?有意义!在很多时候,我们测得了两组向量数据,并且知道它们之间满足一个固定的倍数关系,具体的比值需要我们去求,但由于各种原因,数据存在测量误差,每一组数据的比值又都不一样,只能选一个比较合适的比值,使得其中一个向量乘上这个比值后与另一个向量尽量相等(两个向量中对应的元素尽量相等,全部相等是不可能的)。怎样才叫尽量相等呢?我们一般喜欢用误差的最小平方和来表示,以 [2 5] / [1 2] 为例,即求一个常量x,使得      (2 - x * 1)^2 + (5 - x * 2)^2      最小。

     于是,一个向量间的除法问题,转化为了一个求单变量2次函数的最小值问题,求极值很简单,对函数求导再令其等于0就OK了。更一般地,我们考虑求如下两个向量的除法问题:     A=[A1 A2 ………… An ],   B=[B1 B2 ………… Bn ]     求x,使得f(x)=(A1 - x * B1)^2   + (A2 - x * B2)^2 ……   +   (An - x * Bn)^2 最小。

     解:对f求导得:     f'(x)=2(A1-x * B1) * (-B1)    + 2(A2-x * B2) * (-B2) ……   + 2(An-x * Bn) * (-Bn)           =-2A1 * B1 + B1^2 * x - 2A2* B2 + B2^2 * x …… -2An * Bn + Bn^2 * x           =-2(A1 * B1 + A2 * B2 ……+ An * Bn) + 2(B1^2 + B2^2 …… + Bn^2)x

     令f'(x)=0,对x求解可得到:          x= (A1 * B1 + A2 * B2 ……+ An * Bn) / (B1^2 + B2^2 …… + Bn^2)

     用matlab的语句表示出来,也就是x=sum(A.*B)/sum(B.^2)

    例如,在matlab中运行:

    A=[ 2   5 ];    B=[ 1   2 ];    A/B

    ans=           2.4000



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有