# Block for plotting a function using different parameters

I want to plot height[time] function for different values of M and g. This function contains a[2] which needs to be found. I had two-coupled algebraic equation for a[2] and t[2]. I used Solve to solve that system and it worked. However the issue starts at that point, when I execute below code, it does not produce a graph. I did something wrong, but the question is "where". Please see below;

p01[x_] := Integrate[2*a[2]/k*1/(x - c) + t[2]/k , {x, 0, x},Assumptions -> 0 < x < c] + 1/2

p02[x_] := Integrate[2*a[2]/k*1/(x - c) + t[2]/k , {x, 1, x},Assumptions -> c < x < 1]

first[x_] := Integrate[p01[x], {x, 0, c}, Assumptions -> 0 < c < 1]

second[x_] := Integrate[p02[x], {x, c, 1}, Assumptions -> 0 < c < 1]

third[x_] := Integrate[(x - c)*p01[x], {x, 0, c}, Assumptions -> 0 < c < 1]

fourth[x_] := Integrate[(x - c)*p02[x], {x, c, 1}, Assumptions -> 0 < c < 1]

Solve[2*M*a[2] == first[x]+second[x] - M*g && 2*M*i*t[2] ==third[x]+fourth[x], {a[2], t[2]}]

c = 0.4; k = 1; i = 0.2;

a[0] = k*c*(1 - c);
t[0] = k*(1 - 2*c);

height[time_] := a[0] + time^2*a[2]

plot4 = Block[{M = {0, 0.1, 1, 10}, g = {0, 0.1, 1, 10}},
Plot[Evaluate@height[time], {time, 0, 1}, AxesOrigin -> {0, 0},
PlotStyle -> {Red, Green, Blue, Black}]]
• These is no question in this post. If there's a problem with your code and you want it solved, please state it clearly, and construct a complete but minimal example. Post no more code than what is needed to reproduce the problem. That will certainly be less than what's here. See sscce.org for guidance. – Szabolcs Oct 15 '16 at 16:07
• Thanks @Szabolcs, I have edited the post. The issue is plotting in this above code. It does not give me a graph. Might be because of the definition of parameters. I cannot figure it out! – Meva Oct 15 '16 at 16:25
• it seem, that $b$ in third[] and fourth[] is not defined. furthermore: in the definition of heigth[] a[2] has to be replaced by the solution a[2] from Solve[]: (sol = Solve[ 2*Ma[2] == first[x] + second[x] - Mg && 2*Mit[2] == third[x] + fourth[x], {a[2], t[2]}] and height[time_] := a[0] + time^2*a[2] /. sol[[1, 1]]) – Armin Oct 15 '16 at 16:30
• @Armin, thanks to your comment, I changed b to c. It was a typo. Anyway it still does not work. Also a big thank you for the second part of your comment about dividing sol[[1,1]] . So is sol[[2,1]] for t[2] then?? – Meva Oct 15 '16 at 16:35

Look, there are several issues with your code which is why it is important that you tear the pieces apart before posting a question. I'm sure you could have solved this yourself.

1. You don't use the solution for a[2] and t[2]. You call Solve correctly, but you don't store the solution and use it in Plot.
2. You have a mystical b in your code-block that never gets a value.

Want to know how you easily find all this issues? One easy way is always to not use Plot because then you only see an empty graph. What I usually do is to type Plott which is a function that is not defined and therefore, nothing happens except that you really see the parameters. So after evaluating your code-block do (see the Plott!):

Now you see that there is an unevaluated a[2] in there. So the first thing you do is to store the solution of Solve

sol =
Flatten@Solve[
2*M*a[2] == first[x] + second[x] - M*g &&
2*M*i*t[2] == third[x] + fourth[x], {a[2], t[2]}]

and use it

Now, you see that your formula contains the b which needs a value. I'll set it to b=1 in the Block and replace Plott with Plot again and there you have it

• this is great answer, thanks so much. As you posted I did sol = Flatten@Solve[ 2*Ma[2] == first[x] + second[x] - Mg && 2*Mit[2] == third[x] + fourth[x], {a[2], t[2]}] but a[2] is still not recognised. Then I used height[time_] := a[0] + time^2*a[2] /. sol[[1, 1]] but the outcome for height[time] is 0.24+t^2a[2] a[2]. I started kernel then evaluated again all, but it did not revealed. – Meva Oct 15 '16 at 16:53
• Here is the exact code that I used: Import["http://goo.gl/NaH6rM"]["http://i.stack.imgur.com/ZrHmp.png"] Please copy and evaluate the complete import statement. – halirutan Oct 15 '16 at 16:57
• I am so thankful @halirutan, but I guess the content of those links are not so relevant e.g it says the png file is no longer available, so I cannot see what is inside. But again, thanks.. – Meva Oct 15 '16 at 17:17
• That is very weird. It is the first time that imgur deleted an image. Please try this one Import["http://goo.gl/NaH6rM"]["http://i.stack.imgur.com/1DsxV.png"] At this moment the image is available. I don't know for how long.. – halirutan Oct 15 '16 at 17:20
• Unfortunately not @halirutan. So, should I try this : height[time_] := a[0] + time^2*a[2] /. sol[[1, 1]] , but as I say, it still does not give a[2] . I understand Mathematica can't assign the results of a Solve to the unknowns because there may be more than 1 solution. – Meva Oct 15 '16 at 17:25