Error in matrix dimension and using a plus sign?

1 vue (au cours des 30 derniers jours)
Snirisa  Gödel
Snirisa Gödel le 19 Juin 2013
I am trying to write a code for the Midpoint rule given by :
M = \sum_{i=1}^{n}hf(\frac{x_{i-1}+x_{i}}{2})
My MATLAB code is following:
if true
function M = mittpunkt(fun,a,b,n)
h = (b-a)/n;
x = linspace(a,b,n);
f = fun(x);
M = h*(sum(f(((1:n-1)+(1:n))/2)));
end
My error is :
Error using +
Matrix dimensions must agree.
If something is wrong I think it must me the index, certainly not the use of a plus sign, right? Thanks

Réponse acceptée

the cyclist
the cyclist le 19 Juin 2013
In the line where you calculate M, you are trying to add
(1:n-1)
and
(1:n)
which are vectors of two different lengths. Those are the dimensions that don't match.

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 19 Juin 2013
Modifié(e) : Andrei Bobrov le 19 Juin 2013
Wikipedia about your problem:
function M = mittpunkt(fun,a,b,n)
h = (b-a)/n;
x = linspace(a,b,n);
f = fun(x);
%M = h*(sum(f(((1:n-1)+(1:n))/2))); your code
M = h*sum(f(1:end-1)+f(2:end))/2; % from Wikipedia
end

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by