#wolfram-mathematica
#wolfram-mathematica
Вопрос:
У меня есть
f1[x_, y_] := x^2 - 10 x y^2 8;
f2[x_, y_] := x*y^2 x - 10 y 8;
f[x_, y_] := {f1[x, y], f2[x, y]} ;
x0 = {0, 0};
Я хочу оценить f[x_, y_]
в x0
, поэтому f[0, 0]
Я делаю это, но не работает, каков правильный способ?
MatrixForm[f[{x0}]]
Я получаю f[{{0, 0}}]
но хотите {8, 8}
вместо
Комментарии:
1. Либо определить как f[{x_,y_}] := {f1… } или оставьте как есть и используйте f[Последовательность @@x0]
2. @DanielLichtblau, ее проще использовать
f @@ x0
напрямую.
Ответ №1:
In[61]:= f @@ x0
Out[61]= {8, 8}
Что пошло не так? Когда вы оцениваете, f[{x0}]
это равно f[{{0,0}}]
, что не соответствует определенному шаблону для f
. f@@x0
, который является сокращением для Apply[f,x0]
, заменяет заголовок x0 (который внутренне равен List[0,0]
, следовательно, его заголовок List
) на f
. Затем вы получите, f[0,0]
который соответствует шаблону аргументов f
. Затем вы получите правильный результат.