Integration of a function that is built by a loop
1 次查看(过去 30 天)
显示 更早的评论
Wolfgang Dr. Auf der Heyde
2020-5-6
评论: Wolfgang Dr. Auf der Heyde
2020-5-19
What is the Integral of
for k = 1 :500
y = y +(sin( 2*k* x))./ k
end
in the bounderies of zero to pi ?
0 个评论
采纳的回答
Bjorn Gustavsson
2020-5-6
You should do two things!
1, write that function definition into a function, then integrate it from 0 to pi. Use the integral or quadgk functions for the integration.
2, solve the more general problem: for n equal to 1, 2, 3, to 500.
HTH
3 个评论
Bjorn Gustavsson
2020-5-15
Herr Doktor Auf der Heyde,
Please be adviced to calculate the integral for an arbitrary term sin(2*n*x)/n from zero to π analytically by hand. Y is a sum of terms of simple continous functions on the intervall, therefore the integral of Y is equal to the sum of the integral of the terms.
I made a little illustrationing of this using this function:
function y = fivehundredsines( x,n_sines )
%UNTITLED2 Summary of this function goes here
% Detailed explanation goes here
if nargin < 2 || isempty(n_sines)
n_sines = 500;
end
y = 0;
for k = 1:n_sines
y = y +(sin( 2*k* x))./ k;
end
That one can run with:
x = linspace(0,pi,1001);
n = 1;
clf
Y =fivehundredsines(x,n);plot(x,Y),title([trapz(x,Y),integral(@(x)fivehundredsines(x,n),0,pi)]),xlabel(n),n = 2*n; hold on
Y =fivehundredsines(x,n);plot(x,Y),title([trapz(x,Y),integral(@(x)fivehundredsines(x,n),0,pi)]),xlabel(n),n = 2*n; hold on
Y =fivehundredsines(x,n);plot(x,Y),title([trapz(x,Y),integral(@(x)fivehundredsines(x,n),0,pi)]),xlabel(n),n = 2*n; hold on
Y =fivehundredsines(x,n);plot(x,Y),title([trapz(x,Y),integral(@(x)fivehundredsines(x,n),0,pi)]),xlabel(n),n = 2*n; hold on
HTH
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!