Numerical analysis please help
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Andrew Reibold
le 31 Juil 2013
I am using 2012b I believe, and I also received no errors. I did get two sexy looking graphs though.
Réponses (1)
dpb
le 26 Juil 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
0 commentaires
Voir également
Catégories
En savoir plus sur Environment and Settings 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!