MATLAB Answers

I want my graph to be continuous

조회 수: 2(최근 30일)
Mahmoud Chawki
Mahmoud Chawki 2021년 8월 9일
댓글: Rik 2021년 8월 9일
i want the graph to be continous. However, it is breaking form point 7 to 8 (t=7 to t=8).
as you can see from the function, at first it is a polynomial and after that it is linear, it is not taking 7 as a common point.
How can i fix that ??
.

채택된 답변

Rik
Rik 2021년 8월 9일
You can also let Matlab do the heavy lifting by creating an anonymous function and using fplot:
a=8.4;
v=58.8;
fun=@(t) 0 + ...
(t<=7).*(0.5*a.*(t.^2)) + ...
(t>7).*(v.*t);
fplot(fun,[0 30])
However, if you want to make the transition smooth, you will have to adjust a or v:
t=7;
[0.5*a.*(t.^2) v.*t]
ans = 1×2
205.8000 411.6000
To make those equal for some value of t, this relation must hold:
0.5*a.*(t.^2)==v.*t
a*t^2=2vt
at=2v
t=2v/a
If you want t=7, that means
7=2v/a ==> v=7a/2 ==> v=29.4
Now lets plot that one instead:
v=29.4;
fun=@(t) 0 + ...
(t<=7).*(0.5*a.*(t.^2)) + ...
(t>7).*(v.*t);
fplot(fun,[0 30])

추가 답변(2개)

Wan Ji
Wan Ji 2021년 8월 9일
It may work if you do by following Scott MacKenzie's advice or maybe you can do like this
t = [0:1:6, 6.01:0.01:6.99, 7:1:30];
This would make your curve more smooth then.
  댓글 수: 2
Wan Ji
Wan Ji 2021년 8월 9일
When t = 7, y encounters a gap. So a possible way is just to calculate them both and then to compare them.
a = 8.4; v = 58.8; t=0:0.1:30;
x1 = 0.5*a*t.^2; x2 = v*t;
q = x1<x2;
x = x1.*q + x2.*~q;
plot(t,x)
quite easy to find that the intersection point is 14.2, as mentioned by @Scott MacKenzie.

댓글을 달려면 로그인하십시오.


Scott MacKenzie
Scott MacKenzie 2021년 8월 9일
You need to determine the point where the two functions intersect and then use that point in line 6 as the transition between the two curves. That point is t = 14, which (luckily) happens to be an integer. So, change 7 to 14 in line 6 and you're good to go:
  댓글 수: 3
Rik
Rik 2021년 8월 9일
@Bjorn True, in which case v would have to be set at a*t.

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by