Ошибка при попытке суммировать два продукта, где один продукт представляет собой матрицу 1x2 - PullRequest
2 голосов
/ 19 апреля 2020

Первый вопрос, который я разместил здесь, я работаю над кодом для своего финала в понедельник, и по какой-то причине я продолжаю получать следующую ошибку. Любая помощь будет высоко ценится. Спасибо!;

На следующем рисунке показана ошибка в моем коде, я переключился на 1D математику и все еще не могу найти проблему

1 Ответ

2 голосов
/ 19 апреля 2020

В Maple глобальное имя D имеет предварительно назначенное значение. Это дифференциальный оператор. Например,

f := t -> sec(t):

D(f);

      t -> sec(t)*tan(t)

Глобальное имя D также защищено , ie. Вы не можете присвоить ему другие значения.

И вообще, не рекомендуется использовать имя D как фиктивную переменную в вашем коде (поскольку по умолчанию ей уже назначена системная процедура ). Ваш пример - (неудачный) пример странности, которая может произойти.

D * Vector([-3,1]);
  Error, (in LinearAlgebra:-Multiply) invalid arguments

У вас есть несколько альтернатив:

1) Вместо этого используйте другое имя, например DD.

2) Если ваша версия Maple является последней, вы можете объявить ее (один раз) как локальное имя для использования на верхнем уровне. Например,

restart;

local D;

               D

D * Vector([-3,1]);

             [-3 D]
             [    ]
             [ D  ]

Если вы объявите local D для использования на верхнем уровне, вы все равно можете использовать дифференциальный оператор по его глобальному имени :-D. Например,

restart;
local D:

f := t -> sec(t):

D(f);     # does nothing, since this is the local D

             D(f)

:-D(f);

       t -> sec(t)*tan(t)

Если все это звучит запутанно, вам, вероятно, лучше просто использовать другое имя.

Это всего лишь несколько коротких символов с предварительно назначенными значениями или использованиями, например , Pi, I, D.

Возможно, вы захотите взглянуть на страницу справки по темам initialconstants и trydeclaringlocal .

...