matlab - Plotting graph error (values not showign up) -


how plot value of approximation - answer s varies in code below? if @ code below, can see method used (i put in separate file).

however, not show me graph 1 1000. instead graph 999 1001 , not have points on it.

for s = 1:1000     error = laplacetransform(s,5) - (antiderivative(1,s)-antiderivative(0,s)); end plot(s,error); title('accuracy of approximation'); xlabel('s'); ylabel('approximation - exact answer'); 

the functions used:

function g = laplacetransform(s,n); % define function parameters a=0;  b=1; h=(b-a)/n; x = 0:h:1; % define function g = ff(x).*exp(-s*x);  % compute exact answer of integral exact_answer=antiderivative(b,s)-antiderivative(a,s) % compute composite trapezoid sum if=0; i=1:(n-1)     if=if+g(i).*h; end; if=if+g(1).*h/2+g(n).*h/2; if 

with

function fx=ff(x) fx=x; 

and

function fx=antiderivative(x,s); fx= (-exp(-s*x)*(s*x+1))/(s^2); 

any appreciated. thanks.

the following

for s = 1:1000     error = laplacetransform(s,5) - (antiderivative(1,s)-antiderivative(0,s)); end plot(s,error); 

already has several issues. 2 main ones error getting overwritten @ each iteration, @amro has pointed out, , s, loop variable, scalar.

thus, need write

difference = zeros(1000,1); %# preassignment s = 1:1000     difference(s) = laplacetransform(s,5) - (antiderivative(1,s)-antiderivative(0,s)); end plot(1:1000,difference); 

there error in laplacetransform function

function g = laplacetransform(s,n); [...] g = ff(x).*exp(-s*x); %# g array  [...] if %# if calculated, not returned. 

i assume want write

function if = laplacetransform(s,n); 

instead, because otherwise, try assign array g scalar difference(s).


Comments

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -