MATLAB Answers

Plot multiple subintervals in one figure

6 ビュー (過去 30 日間)
Joakim Karlsson
Joakim Karlsson 2017 年 11 月 9 日
Commented: Rik 2017 年 11 月 11 日
Hello all. Probably quite an easy problem but I am stuck.
f=@(t,u)-u+sin(5*t)+cos(2*t);
a=0; b=5; ua=2; % begynnelsevillkor
t=linspace(a,b,15); u=linspace(-2,2,15);
riktningsfaelt(f,t,u);
N=10; h=(b-a)/N; %steglängd
T=linspace(a,b,N+1); U=zeros(size(T));
U(2)=ua; %enligt begynnelsevillkor
for n=1:N
U(n+1)=U(n)+h*f(T(n),U(n)); % Eulers metod
end
plot(T,U)
So what I want to do is plot but with different N values in the same figure. I have tried "hold on" then set a new N value but it doesn't work. Lets say I want to plot N=10 and N=100 in the same figure, how do I do that??

  2 件のコメント

Rik
Rik 2017 年 11 月 9 日
You did run the plot command another time after the hold on?
Joakim Karlsson
Joakim Karlsson 2017 年 11 月 10 日
Yes I did but the script just computed the first thing again. So it didn't really change anything.

サインイン to comment.

採用された回答

Mischa Kim
Mischa Kim 2017 年 11 月 10 日
編集済み: Mischa Kim 2017 年 11 月 10 日
Joakim, is this what you had in mind?
f=@(t,u)-u+sin(5*t)+cos(2*t);
a=0; b=5; ua=2; % begynnelsevillkor
t=linspace(a,b,15); u=linspace(-2,2,15);
% riktningsfaelt(f,t,u);
for N = 10:10:100
h=(b-a)/N; %steglängd
T=linspace(a,b,N+1);
U=zeros(size(T));
U(2)=ua; %enligt begynnelsevillkor
for n=1:N
U(n+1)=U(n)+h*f(T(n),U(n)); % Eulers metod
end
plot(T,U)
hold on
end

  4 件のコメント

表示 1 件の古いコメント
Mischa Kim
Mischa Kim 2017 年 11 月 10 日
Simple enough. Replace the for command by
for N = [10,100,1000]
The code in my first answer above creates essentially the same graph, just with 10 plots vs 3.
Joakim Karlsson
Joakim Karlsson 2017 年 11 月 10 日
Yeah this works very well actually. Now I'd just like to set my own colours if that is possible since its hard to look at it when one is yellow and one is orange haha.
Rik
Rik 2017 年 11 月 11 日
Save the handles to the line objects (output of plot function) and you can set the color. (or just use a cell array with the color string inside the for-loop)

サインイン to comment.

More Answers (0)

サインイン してこの質問に回答します。


Translated by