【发布时间】:2016-06-22 03:18:35
【问题描述】:
我正在使用 fsolve 为可变数量的方程/未知数 (N) 求解矩阵方程。我已经为N=2,3 提供了一个问题示例,但是在每个示例的最后一行,我必须将每个方程“硬编码”到 fsolve 中。如果N 是一个变量,这将不起作用。我的问题:如何在可变数量的方程上调用 fsolve(在本例中为一般 N)?唯一的问题是调用 fsolve。
clear all
N = 2;
M(:,:,1) = rand(N);
M(:,:,2) = rand(N);
eqn = @(E,n) det(eye(N)-M(:,:,n)*diag(E));
%how do I write this line if I don't know what N is??
[E_values, Fval, Fflag] = fsolve(@(E) [eqn(E,1);eqn(E,2)],[1,1])
或者对于N=3 将是:
clear all
N = 3;
M(:,:,1) = rand(N);
M(:,:,2) = rand(N);
M(:,:,3) = rand(N);
eqn = @(E,n) det(eye(N)-M(:,:,n)*diag(E));
%how do I write this line if I don't know what N is??
[E_values, Fval, Fflag] = fsolve(@(E) [eqn(E,1);eqn(E,2);eqn(E,3)],[1,1,1])
(请注意,这可能有也可能没有解决方案,具体取决于 M,没关系)。谢谢。
【问题讨论】:
标签: matlab function matrix linear-algebra