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
14495
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
14495
А если не побояться и использовать цикл?
Код:
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
12063
Боюсь ошибиться, потому что работаю с 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
12063
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
12063
сумму по двум индексам? а чем 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
12063
в матлабе - все с матрицами. Задайте матрицу от 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, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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