필터 지우기
필터 지우기

Error: Too many functions when plotting series

조회 수: 9 (최근 30일)
Jordi van Selm
Jordi van Selm 2022년 12월 4일
답변: Walter Roberson 2022년 12월 4일
x=[0:pi/100:2*pi];
figure;
syms k;
syms f(x);
S1 = symsum((1/k)*sin(k*x),k,1,Inf);
S2 = symsum((1/(2*k-1))*sin((2*k-1)*x),k,1,Inf);
fplot(x,S1,x,S2);
Error using fplot
Too many functions.
xlabel('x')
ylabel('y')
I get this error when I'm trying to plot two series, what did I do wrong?
And how to properly apply the domain from 0 to 2pi ?

채택된 답변

Walter Roberson
Walter Roberson 2022년 12월 4일
x=[0:pi/100:2*pi];
That creates a numeric x in steps of
syms f(x);
That is equivalent to
syms x
f = symfun('f(x)', x)
which has the side effect of overwriting x with a symbolic variable.
fplot(x,S1,x,S2);
fplot does not accept x, y pairs at all. If you want to plot multiple functions, put the functions into a vector, as the first parameter. The second parameter, if provided, must be the lower and upper bound to plot over.
fplot([S1, S2], [lower_bound, upper_bound])
Note that at this point, x is the symbolic x, since you overwrote the numeric x with symbolic x.
You should be using
xrange = [0, 2*pi];
syms k;
syms f(x);
S1 = symsum((1/k)*sin(k*x),k,1,Inf);
S2 = symsum((1/(2*k-1))*sin((2*k-1)*x),k,1,Inf);
fplot([S1,S2], xrange);
xlabel('x')
ylabel('y')
OR you can subs() particular numeric x values into S1 and S2 and use plot()

추가 답변 (1개)

Rik
Rik 2022년 12월 4일
I suspect this will do what you want:
fplot(x,S1);
hold on
fplot(x,S2)
hold off

카테고리

Help CenterFile Exchange에서 Conversion Between Symbolic and Numeric에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by