Вычисление векторной функции с помощью вектора с помощью символического набора инструментов MATLAB - PullRequest
1 голос
/ 13 октября 2019

У меня есть функция F, которая является вектором функций от n переменных. Например, рассмотрим следующее:

syms x y z f(f1,f2,f3) f1(x,y,z) f2(x,y,z) f3(x,y,z)

X0 = [1 0 1 0]';

f1(x,y,z) =  x+y+2;
f2(x,y,z) =  w-5*x+z^2-4;
f3(x,y,z) =  2*x+y^2-z-12;


F = vertcat(f1, f2, f3)

Здесь F - вектор трех функций из трех переменных. В рассматриваемом случае я хочу, чтобы F рассматривалось как n уравнений с n переменными.

Я хочу взять вектор скаляров длины F, например:

X = [1 2 3]';

и оцените F в этом векторе. Так что-то вроде:

F(X(1),X(2),X(3))

Однако мне нужен способ написать это, не зная n. Я могу найти n, написав

dims = size(X);

Но это не решает, как я параметрически оцениваю F в X. Есть ли способ сделать это?

1 Ответ

1 голос
/ 14 октября 2019

Если вы не возражаете против использования ячеек вместо массивов, вы можете заменить X = [1 2 3]' на X = {1 2 3} (транспонирование не требуется) и F(x(1),x(2),x(3)) на F(X{:}).

...