Numerical analysis please help
Show older comments
if true
i=1;
for q=0:0.05:4;
x(i)=q;
s(i)=quad('sin(x.^2)',0,x(i));
c(i)=quad('cos(x.^2)',0,x(i));
i=i+1;
end
fprintf('\n The value of s(x)=%5.3f',s(i-1))
fprintf('\n The value of c(x)=%5.3f\n',c(i-1))
plot(x,s,x,c)
xlabel('x')
ylabel(' C(x) and S(x)')
grid
figure
plot(c,s)
xlabel('c'),ylabel('s')
end
4 Comments
Azzi Abdelmalek
on 26 Jul 2013
What is the question?
francis
on 26 Jul 2013
Mike Hosea
on 31 Jul 2013
I got no error. What version of MATLAB are you using?
Andrew Reibold
on 31 Jul 2013
I am using 2012b I believe, and I also received no errors. I did get two sexy looking graphs though.
Answers (1)
dpb
on 26 Jul 2013
Replace the loop structure
i=1;
for q=0:0.05:4;
x(i)=q;
s(i)=quad('sin(x.^2)',0,x(i));
c(i)=quad('cos(x.^2)',0,x(i));
i=i+1;
end
with
q=[0:0.05:4]';
s=accumarray([1:length(q)]',q,[],@(x) quad('sin(x.^2)',0,x));
c=accumarray([1:length(q)]',q,[],@(x) quad('cos(x.^2)',0,x));
If you want to get even more clever, define the functions as function handles... :)
I didn't pursue the initial too much; you should at a minimum preallocate the vectors s and c
Categories
Find more on Image Arithmetic in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!