Torsten
Posts:
1,709
Registered:
11/8/10


Re: Integration with variable limits
Posted:
Jul 31, 2013 3:09 AM


"Torsten" wrote in message <ktacg3$fkj$1@newscl01ah.mathworks.com>... > "Sanaa" wrote in message <kt9bf4$56h$1@newscl01ah.mathworks.com>... > > "Torsten" wrote in message <kst5mn$h75$1@newscl01ah.mathworks.com>... > > > "Sanaa" wrote in message <kss3h5$50n$1@newscl01ah.mathworks.com>... > > > > "Torsten" wrote in message <ksrcel$2k$1@newscl01ah.mathworks.com>... > > > > > "Sanaa" wrote in message <ksrbia$r0l$1@newscl01ah.mathworks.com>... > > > > > > Hi all, > > > > > > How to integrate a function within a loop and the limits of integration are variables? > > > > > > For instance, y(i)*(1y(i)) is the function I wish to integrate from 0.25*i to t where > > > > > > t \in (0.25*i, 0.25*(i+1)). > > > > > > Any help is really appreciated. > > > > > > Sanaa Moussa > > > > > > > > > > I think y(i)*(1y(i)) is just a real number, not a function, isn't it ? > > > > > > > > > > Best wishes > > > > > Torsten. > > > > > > > > Thanks for replying. You are right, but I mean the function is y*(1y) which I want to put it into a loop > > > > My code is > > > > itermax=300;min=itermax9;% That is we plot from 291:300 i.e. 10 values of x only. > > > > r=0.25; > > > > for rho=0:0.001:4 > > > > %x0=0.1; > > > > x(1)=0.1; > > > > for i=1:itermax1 > > > > %t=linspace(i*r,(i+1)*r,itermax) > > > > y(i+1)=x(i); > > > > x(i+1)=x(i)+ rho*int(y(i)*(1y(i)),i*r,(i+1)*r); > > > > end > > > > %fix(y) > > > > plot(rho*ones(10),x(min:itermax),'b.','linewidth',0.1) > > > > hold on > > > > end > > > > fsize=15; > > > > xlabel('\rho','FontSize',fsize) > > > > ylabel('\itx','FontSize',fsize) > > > > %title('r=0.25, \alpha=1','FontSize',fsize) > > > > hold off > > > > % print(gcf, 'djpeg', 'zbuffer', 'bif.png'); > > > > > > > > I get the error > > > > Function 'int' is not defined for values of class 'double'. > > > > what does this mean and how to fix it please? > > > > Many thanks in advance. > > > > > > It means what I said before: > > > y(i)*(1y(i)) > > > is a scalar value and not a function. > > > So "int" does not know how to handle this because it expects a function, not a scalar as its first input argument. > > > > > > Best wishes > > > Torsten. > > > > Sorry for not posing my question correctly. The function I want to integrate is > > y(s)*(1y(s)) ds from (n*0.25) to t, and t/in(n*0.25, (n+1)*0.25). > > Do you have any idea on how to format my code above to solve my problem? > > Thanks a lot in advance > > int_{n*0.25}^{t} (y(s)*(1y(s)) ds = (1/2*t^2  1/3*t^3)  (1/2*(n*0.25)^2  1/3*(n*0.25)^3) > for t/in(n*0.25, (n+1)*0.25). > Is it that what you asked for ? > > Best wishes > Torsten.
No sorry, this is wrong  I integrated s*(1s). For integration, you will have to know the explicit form of y as a function of s, e.g. y(s)=sin(s) or something like that.
Best wishes Torsten.

