2016-12-04 11 views
2

enter image description hereCompute сумма ряда

Мне нужно вычислить сумму этой серии

мне нужен выходной сигнал таким образом:

If n = 3; 

x = function_name(n) 

Мне нужно получить x = 11.

If n = 5; 

x = function_name(n) 

Мне нужно зарегистрироваться x = 45.

Я считаю, что мне нужна петля для итерации; но мне трудно итерировать значение приращения.

ответ

0
inc=2; 
sum=1; 
next=1; 

n=input('what is n?\n'); 

for i=2:n 
    next=next+inc; 
    sum=sum+next; 
    inc=inc+2; 
end 

disp('sum is '); 
disp(sum); 
+0

Я тоже понял другой путь. – user3812887

1

Я предполагаю, что вы хотите sum от cumsum различий d чисел:

d = 2; 
n = 5; 

s = d:d:d*(n-1) 
cs = cumsum([1 s]) 
scs = sum(cs) 

%// or as anonymous function 

scsh = @(n,d) sum(cumsum([1 d:d:d*(n-1)])) 

scs = 

    45 

scsh(5,2) = 

    45 

Нет необходимости в цикле!

+0

мне нужна сумма (только) чисел в колонке 2 диаграммы, т.е. серии – user3812887

+0

Если п = 5; Мне нужно иметь 1 + 3 + 7 + 13 + 21 = 45; функция Matlab может принимать только один вход; и это n. – user3812887

+0

Если я предоставляю вход как n = 3, то Matlab должен получить мне 11 в качестве вывода; Мне нужно разработать серию внутри функции, а затем сгенерировать сумму – user3812887

0
function Total = abc(n) 

nth_term=1; 
Total = 1 ; 


    for d = 2:2:(2*(n-1)) 
     nth_term = nth_term + d;  
     Total =Total + nth_term;  

    end 

end 
+0

Это также работает; в любом случае спасибо вам обоим, особенно @netizen – user3812887