矩阵求值

[复制链接]
匿名  发表于 2023-4-24 17:55:46 |阅读模式
现有一个矩阵A=(B1'*B1+w*(B2'*B2)+w*(B3'*B3))‘*(B1'*z+w*(B2'*U)+w*(B3'*V)),其中B1,B2,B3都为一个K行15列的已知矩阵,U,V,z为一个K行1列的已知矩阵,另有一个数D=(z-B1*A)'*(z-B1*A)+w*(U-B2*A)'*(U-B2*A)+w*(V-B3*A)'*(V-B3*A),w是一个数,假设w大于0,求当w为何值时,能够使得D等于0,并进而求得矩阵A,用matlab实现
回复

使用道具 举报

全部回复5 显示全部楼层
机器人Gpt 发表于 2023-4-24 17:56:42 | 显示全部楼层
根据题目描述,可以将矩阵A的表达式展开为:

A = (B1'*B1 + w*(B2'*B2) + w*(B3'*B3)) \ (B1'*z + w*(B2'*U) + w*(B3'*V))

其中,\ 表示矩阵的左除运算,即求解A矩阵使得等式成立。

将A代入D的表达式中可得:

D = (z - B1*A)' * (z - B1*A) + w * (U - B2*A)' * (U - B2*A) + w * (V - B3*A)' * (V - B3*A)

将A的表达式带入D中可得:

D = (z - B1*(B1'*B1 + w*(B2'*B2) + w*(B3'*B3)) \ (B1'*z + w*(B2'*U) + w*(B3'*V)))' * (z - B1*(B1'*B1 + w*(B2'*B2) + w*(B3'*B3)) \ (B1'*z + w*(B2'*U) + w*(B3'*V))) + w * (U - B2*(B1'*B1 + w*(B2'*B2) + w*(B3'*B3)) \ (B1'*z + w*(B2'*U) + w*(B3'*V)))' * (U - B2*(B1'*B1 + w*(B2'*B2) + w*(B3'*B3)) \ (B1'*z + w*(B2'*U) + w*(B3'*V))) + w * (V - B3*(B1'*B1 + w*(B2'*B2) + w*(B3'*B3)) \ (B1'*z + w*(B2'*U) + w*(B3'*V)))' * (V - B3*(B1'*B1 + w*(B2'*B2) + w*(B3'*B3)) \ (B1'*z + w*(B2'*U) + w*(B3'*V)))

现在的问题是如何求解w使得D等于0。这是一个非线性方程,可以通过Matlab中的fsolve函数进行求解。具体代码实现如下:
  1. % 定义已知矩阵
  2. B1 = randn(K, 15);
  3. B2 = randn(K, 15);
  4. B3 = randn(K, 15);
  5. U = randn(K, 1);
  6. V = randn(K, 1);
  7. z = randn(K, 1);
  8. % 定义非线性方程
  9. fun = @(w) (z - B1*(B1'*B1 + w*(B2'*B2) + w*(B3'*B3)) \ (B1'*z + w*(B2'*U) + w*(B3'*V)))' * (z - B1*(B1'*B1 + w*(B2'*B2) + w*(B3'*B3)) \ (B1'*z + w*(B2'*U) + w*(B3'*V))) + w * (U - B2*(B1'*B1 + w*(B2'*B2) + w*(B3'*B3)) \ (B1'*z + w*(B2'*U) + w*(B3'*V)))' * (U - B2*(B1'*B1 + w*(B2'*B2) + w*(B3'*B3)) \ (B1'*z + w*(B2'*U) + w*(B3'*V))) + w * (V - B3*(B1'*B1 + w*(B2'*B2) + w*(B3'*B3)) \ (B1'*z + w*(B2'*U) + w*(B3'*V)))' * (V - B3*(B1'*B1 + w*(B2'*B2) + w*(B3'*B3)) \ (B1'*z + w*(B2'*U) + w*(B3'*V)));
  10. % 求解非线性方程
  11. w0 = 1;
  12. w = fsolve(fun, w0);
  13. % 计算矩阵A
  14. A = (B1'*B1 + w*(B2'*B2) + w*(B3'*B3)) \ (B1'*z + w*(B2'*U) + w*(B3'*V));
复制代码

--- 光学专家Gpt
回复 支持 反对

使用道具 举报

匿名  发表于 2023-4-24 18:05:51
求解非线性方程组这儿的MATLAB语言对吗
回复 支持 反对

使用道具 举报

机器人Gpt 发表于 2023-4-24 18:05:58 | 显示全部楼层
手机用户Ae64131 发表于 2023-04-24 18:05
求解非线性方程组这儿的MATLAB语言对吗 ...

不对,这里是求解非线性方程,而不是求解非线性方程组。要使用MATLAB求解非线性方程可以使用fsolve函数,而求解非线性方程组可以使用fsolve或者其他函数,比如fmincon等。
--- 光学专家Gpt
回复 支持 反对

使用道具 举报

匿名  发表于 2023-4-24 18:08:09
唇程序里面的求解非线性方程对吗
回复 支持 反对

使用道具 举报

机器人Gpt 发表于 2023-4-24 18:08:16 | 显示全部楼层
手机用户Ae64131 发表于 2023-04-24 18:08
唇程序里面的求解非线性方程对吗

是的,唇程序中涉及到了求解非线性方程组,其中使用了fsolve函数进行求解。
--- 光学专家Gpt
回复 支持 反对

使用道具 举报

快速回帖

您需要登录后才可以回帖 登录 | 立即注册 手机动态码快速登录

本版积分规则

关于楼主

匿名用户组
  • 主题

    89
  • 回答

    25
  • 积分

    91
联系客服 关注微信 访问手机版 返回顶部 返回列表