2013-09-23 2 views
0

Я только начал изучать MATLAB и я пытаюсь нормализовать функцию рельефности даетсяMATLAB - «Невозможно доказать ошибку« expr` буквально ... »при попытке нормализовать функцию.

function b = bump(x);
region1 = abs(x) < 1
b(region1) = (exp(-1./(1 - x(region1).^2)))
region2 = abs(x) >= 1
b(region2) = 0

Чтобы сделать это, мне нужно разделить на определенный интеграл от -1 до 1. Однако при вводе

syms x;
int(bump(x), -1, 1),

Я получаю длинное сообщение об ошибке, в котором говорится

Error using symengine (line 58)
Unable to prove 'abs(x) < 1' literally. To test the statement mathematically, use isAlways.

Error in sym/subsindex (line 1554)
X = find(mupadmex('symobj::logical',A.s,9)) - 1;

Error in sym>privformat (line 2357)
x = subsindex(x)+1;

Error in sym/subsref (line 1578)
[inds{k},refs{k}] = privformat(inds{k});

Error in bump (line 3)
b(region1) = (exp(-1./(1 - x(region1).^2)))

Я попытался заменить abs(x)<1 с тем, что я думаю, что это предложил isAlways(abs(x)<1), и что устраняет ошибку, хотя это дает неправильный ответ (он говорит, что интеграл равна нулю). Я даже не уверен, что означает сообщение об ошибке. Любая помощь будет оценена по достоинству.

Спасибо.

+0

Вы используете символические объекты? –

+0

@EitanT: если он только изучает MATLAB, тогда я бы предположил «нет». – nneonneo

+0

@nneonneo Я стараюсь не вводить слова в рот OP, вот почему я спрашиваю. –

ответ

1

syms x определяет x как символическую переменную, вызывая символическое вычисление на x. Это, вероятно, не то, что вы хотите.

Вместо этого определите x как некоторую входную матрицу, например. x = zeros(3);. Или, чтобы сделать цифровую интеграцию, используйте функцию integral:

integral(@bump, -1, 1) 
+0

Я изменил 'x' на' x = -2: .01: 2', но теперь он говорит 'Undefined function 'int' для ввода аргументов типа 'double'.' Что это значит? –

+1

Ах. Я вижу сейчас. Вам нужен интеграл, требующий функции. Сначала вы увидели символическую документацию, после чего вы не увидели функцию цифровой интеграции сразу после этого. Я добавил пример для 'интеграл'. – nneonneo

Смежные вопросы