Оценивать систему в заданных точках в Mathematica

#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 . Затем вы получите правильный результат.