2015-07-05 2 views
1

Какую команду MATLAB следует использовать для оценки суммы f(i) s, где, например, i=1..15? Я вижу в помощи numeric::sum(f(i), i=a..b), но я получаю ошибку:Как рассчитать суммирование функции по некоторым значениям в MAT LAB?

Error: Unexpected MAT LAB operator

, введя команду: numeric::sum(i,i=1..100)

+1

'сумма (е (1:15))'? В какой помощи вы видели синтаксис '::', который используется? Вы уверены, что это Matlab? – Hoki

+2

@ Хоки OP, вероятно, ссылается на функцию MuPAD ['numeric :: sum'] (http://www.mathworks.com/help/symbolic/mupad_ref/numeric-sum.html). – Shai

+0

Документация Matlab R2014; Символическая математика Toolbox/MuPAD/Исчисление/Серия/Суммирование -> числовые :: сумма – Pooryaa

ответ

2

Функция symsum сделает это. Например команды:

syms k 
symsum(k^2, 0, 3) 

вычислить:

(0)^2 + (1)^2 + (2)^2 + (3)^2 

, которая равна 14

2

Команда numeric::sum не является командой Matlab, а команда MuPAD.

Для того, чтобы подвести записи в Matlab, вы должны использовать sum функцию:

sum(1:100) 

Оценивает к

5050 
+0

Эта функция возвращает сумму некоторого массива элементы; Но как оценить сумму ряда с заданным выражением, которое определяет члены этого ряда? То, что я ищу, - это функция, которая принимает в качестве аргументов: выражение, переменную, с которой определяется выражение, и диапазон, который изменяется в переменной – Pooryaa

1

1) определить вашу переменную Ex:

var=1:1:1000; 

или

var=35:3:200; 

т.д.

2) преобразовать его в вектор-столбец

var=var'; 

3) использовать эти функции: а) сумма, б) arrayfun

res=sum(arrayfun(@your_desired_function,var)); 

4) таким образом, вы можете суммировать любую произвольную функцию, которую вы определили ранее (даже с несколькими входными аргументами);

5) другой способ состоит в использовании для цикла

var=3:5:4500; 
s=0; 
for i=1:numel(var) 
    //do your calculation on v(i) and stor the result in res for example 
    res=v(i)^2+3*(v(i))+5; 
    s=s+res; 
end 
Смежные вопросы