2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Есть ли оператор суммы в Octave?
Сообщение05.01.2012, 19:31 
Аватара пользователя


13/11/07
41
Украина
Здравствуйте!
Я новичок в использовании программы Octave.
Меня интересует такой вопрос. Есть ли оператор суммы в программе, выполняющий роль такой математической функции?
$$\sum^{n-1}_{k=0}$$
Если есть, то подскажите, какая и как её использовать.

 Профиль  
                  
 
 Re: Есть ли оператор суммы в Octave?
Сообщение05.01.2012, 19:56 
Заслуженный участник
Аватара пользователя


13/08/08
14496
sum, cumsum, accumarray, даже sumsq

 Профиль  
                  
 
 Re: Есть ли оператор суммы в Octave?
Сообщение05.01.2012, 20:18 
Аватара пользователя


13/11/07
41
Украина
gris в сообщении #523507 писал(а):
sum, cumsum, accumarray, даже sumsq


В справке я нашёл эти операторы, но я не могу сообразить, как ими пользоваться. Допустим, мне нужно найти сумму от j=0 до N-1, скажем, выражения 2^(N-1-j).
Как оформить данную сумму в программе? В справке очень кратко и я, как новичок в этом деле, не могу разобраться.

 Профиль  
                  
 
 Re: Есть ли оператор суммы в Octave?
Сообщение05.01.2012, 20:32 
Заслуженный участник
Аватара пользователя


13/08/08
14496
А если не побояться и использовать цикл?
Код:
for j = 0:N-1
       S = S + pow2(N-1-j);
endfor

 Профиль  
                  
 
 Re: Есть ли оператор суммы в Octave?
Сообщение05.01.2012, 20:42 
Аватара пользователя


13/11/07
41
Украина
gris в сообщении #523534 писал(а):
А если не побояться и использовать цикл?
Код:
for j = 0:N-1
       S = S + pow2(N-1-j);
endfor


Так вот пишу програмку на октаве, где как часть программы нужно вычислить сумму очень сложного выражения (а выражение выше как пример привёл). Как раз сижу, и пишу сумму с помощью цикла и параллельно спросил, есть ли такая функция. Если бы была, то намного бы облегчила написание программы.

 Профиль  
                  
 
 Re: Есть ли оператор суммы в Octave?
Сообщение05.01.2012, 21:24 
Заслуженный участник


15/05/05
3445
USA
lomaxe в сообщении #523540 писал(а):
...как часть программы нужно вычислить сумму очень сложного выражения
...
есть ли такая функция. Если бы была, то намного бы облегчила написание программы.
Я очень сомневаюсь, что такая функция облегчила бы Вам жизнь.
Все равно ведь нужно написать функцию для вычисления очень сложного выражения для члена ряда. А подставить ее вызов в функцию суммирования или в цикл для прямого суммирования - одинаково просто.

 Профиль  
                  
 
 Re: Есть ли оператор суммы в Octave?
Сообщение10.01.2012, 14:57 
Экс-модератор
Аватара пользователя


23/12/05
12072
Боюсь ошибиться, потому что работаю с MatLAB, а не Octave, но насколько я знаю, они очень похожи, во всяком случае в простых случаях.
Так вот, настоятельно не рекомендую использовать циклы, если можно просто работать с массивом.
lomaxe в сообщении #523523 писал(а):
Допустим, мне нужно найти сумму от j=0 до N-1, скажем, выражения 2^(N-1-j).

в MatLAB (и, вероятно, в Octave) я бы решал это, например, так, взяв для определенности $N =10$:

Используется синтаксис Matlab M
N=10;
j=0:N-1;
summa=sum(2.^(N-1-j));


-- Вт янв 10, 2012 15:06:21 --

или вот так, если, например, нужно просуммировать элементы с $n$-го по $k$-ый:

Используется синтаксис Matlab M
N=10;
j=0:N-1;
arr=2.^(N-1-j);
n=3;
k=8;
summa=sum(arr(n:k));


или, например, нужно просуммировать нечетные элементы...

Используется синтаксис Matlab M
N=10;
j=0:N-1;
arr=2.^(N-1-j);
summa=sum(arr(1:2:end));


или для элементов, номера которых содержатся в другом массиве
Используется синтаксис Matlab M
N=10;
j=0:N-1;
arr=2.^(N-1-j);
arr_index=[1 3 7 8];
summa=sum(arr(arr_index));


в общем, система гибкая, а функция sum() в этом случае удобнее (и работает быстрее), чем цикл

 Профиль  
                  
 
 Re: Есть ли оператор суммы в Octave?
Сообщение28.02.2012, 19:51 


21/02/12
1
photon, а двойную и тройную сумму в матлабе как можно записать без циклов? Если несложно, покажите примерами.

 Профиль  
                  
 
 Re: Есть ли оператор суммы в Octave?
Сообщение28.02.2012, 22:24 
Экс-модератор
Аватара пользователя


23/12/05
12072
ArhonT в сообщении #543566 писал(а):
photon, а двойную и тройную сумму в матлабе как можно записать без циклов? Если несложно, покажите примерами.

Что значит "двойную и тройную"? Сумму элементов 2-мерного и 3-х-мерного массивов? - Да точно также
Используется синтаксис Matlab M
a= [1 2 3
    4 5 6
    7 8 9];
summa_all=sum(sum(a))

для многомерных массивов в качестве аргумента к функции sum(можно указывать, по какому их измерений суммировать). См. примеры

 Профиль  
                  
 
 Re: Есть ли оператор суммы в Octave?
Сообщение02.04.2012, 15:09 


02/04/12
3
Здравствуйте, не могли бы вы подсказать какую функцию следует использовать в Matlab, для подсчета двойной суммы(по i и j) функции ker(i,j)

 Профиль  
                  
 
 Re: Есть ли оператор суммы в Octave?
Сообщение02.04.2012, 15:21 
Экс-модератор
Аватара пользователя


23/12/05
12072
сумму по двум индексам? а чем sum(sum()) не устраивает?

 Профиль  
                  
 
 Re: Есть ли оператор суммы в Octave?
Сообщение02.04.2012, 18:09 


02/04/12
3
Извините за ламерство...но если есть функция y=2*x, то как посчитать сумму функции y, при x от 1 до 5?
P.S.в матлабе 3ий день, в хелпе описывается только сумирование матрицы(

 Профиль  
                  
 
 Re: Есть ли оператор суммы в Octave?
Сообщение02.04.2012, 20:39 
Экс-модератор
Аватара пользователя


23/12/05
12072
в матлабе - все с матрицами. Задайте матрицу от 1 до 5. Например так:
Код:
2*sum(1:5)

ну или так:
Код:
x=1:5;
sum(2*x)

или
Код:
x=1:5;
y=2*x;
sum(y)


вариантов много. Какой лучше - смотрите по ситуации.

 Профиль  
                  
 
 Re: Есть ли оператор суммы в Octave?
Сообщение04.04.2012, 09:11 


02/04/12
3
Спасибо!буду пробывать)

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group