如何在Matlab中数值求解具有两个矩阵的系统?

阿科西亚

我试图在数值上找到A*cos x +B*sin x = CA 和 B 是两个相同大小的已知方阵(例如 100x100),而 C 是已知向量(100x1)的解。如果没有第二项(即使用单个矩阵),我将使用 Jacobi 或 Gauss-Seidel 来解决这个问题并得到 x 但在这里,我不知道如何在 Matlab 中解决这个问题。可能,将问题解决为 : 会很有用A*X + B*sqrt(1-X^2) = C

我将不胜感激任何帮助、想法或建议 提前致谢

乔尼

如果我理解正确,您可以fsolve像这样使用c并且X是向量):

A = ones(2,2);
B = ones(2,2);
c = ones(2,1);

% initial point
x0 = ones(length(A), 1);
% call to fsolve
sol = fsolve(@(x) A * cos(x) + B*sin(x) - c, x0);

在这里,我们F(x) = 0F: R^N -> R^N求解非线性方程组F(x) = A * cos(x) + B*sin(x) - c

只是为了完整起见,这是我之前的答案,即万一如何做到这一点C并且X是矩阵而不是向量:

A = ones(2,2);
B = ones(2,2);
C = ones(2,2);

% initial point
x0 = ones(numel(A), 1);

% call to fsolve
fsolve(@(x) fun(x, A, B, C), x0)


function [y] = fun(x, A, B, C)
    % Transform the input vector x into a matrix
    X = reshape(x, size(A));
    % Evaluate the matrix equation
    Y = A * cos(X) + B*sin(X) - C;
    % flatten the matrix Y to a row vector y
    y = reshape(Y, [], 1);
end

这里的思路是将矩阵方程组F: R^(N x N) -> R^(N x N)转化为等效非线性系统F: R^(N*N) -> R^(N*N)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Matlab中求解具有矩阵参数的方程

如何在具有两个%符号的团队城市中配置参数值

如何求解具有两个变量的指数方程?

我如何在Matlab中的两个变量之间具有正协方差?

如何在MATLAB中绘制具有两个变量的多项式作为曲面?

Matlab比较具有不同维度的两个矩阵

如何在 C 中创建一个函数来检查两个矩阵是否具有相同的维度

如何在ExecuteReader中具有两个executeNonQuery

我们如何在R中添加两个具有不同行和列的矩阵?

如何在MATLAB中的矩阵中两个已知点之间创建随机路径

如何在Matlab中合并两个不同维度的矩阵

如何在Matlab中在两个矩阵之间进行单点交叉

如何将具有大矩阵的两个向量合并到数据帧中?

如何在Matlab中数值求解定积分的上限?

在matlab中匹配两个矩阵

如何在两个具有重组文本的链接中具有相同的文本?

在 R 中求解具有两个未知数的方程

如何在VBA中添加两个矩阵?

Python如何在numpy中合并两个矩阵

如何在numpy中合并两个矩阵?

Matlab-合并两个向量和一个具有不同维度的矩阵

如何在 Matlab 中求解由三个一阶 ODE 组成的系统

如何在MATLAB中仅对一个组件求解线性系统

如何在一个ggplot中具有两个不同大小的图例?

联合两个表后如何在两个表中按具有相同列名的列排序?

如何在r中具有两个向量的两个列表上运行循环?

如何在R数据框中聚合具有两个不同功能的两个不同列

将非常大的矩阵加载到求解器时,如何避免同时有两个实例?

如何计算两个矩阵的外积平方和减去Matlab中的公共矩阵?