Group Abstract Group Abstract

Message Boards Message Boards

0
|
7.4K Views
|
2 Replies
|
3 Total Likes
View groups...
Share
Share this post:

[?] Solve this Calculus time factor problem? - 29th May 2017

Posted 9 years ago

Hi All,

I would be grateful for some advice / help on how to solve this Calculus - time factor problem. My Goal here - I am trying to find the TIME factor within the 1st derivative that will yield the same results as the original data shown below. I was able to find the derivative with D[ f, t] And tried to extract Coefficients from original function f[t] And then apply the coefficients to the form - a t^2+b t +c & then use the correct coefficients in this form within the derivative to find each value in the dataset at each time {1,2,3,4,etc} I am not sure this is even the correct approach.

Please could someone review & advise how I should do this.

Many thanks for your help & attention. Best regards, Lea...

Given the the following data set:-

data = {{1, 4.008668526800082`}, {2, 13.840674130266803`}, {3, 
        29.80944537853352`}, {4, 51.91498227160025`}, {5, 80.15728480946696`}, {6,
         114.53635299213369`}, {7, 155.0521868196004`}, {8, 
        201.70478629186715`}, {9, 254.49415140893387`}, {10, 
        313.4202821708005`}, {11, 378.48317857746724`}, {12, 
        449.682840628934`}, {13, 527.0192683252008`}, {14, 
        610.4924616662674`}, {15, 700.1024206521342`}, {16, 795.849145282801`}};

which yields the following function f(t) & plots line & data points :-

    f[time_] := 0.3134285681335234` + 0.6268571362666725` time + 3.` time^2

    functionf = 0.3134285681335234` + 0.6268571362666725` time + 3.` time^2;

 Show[ListPlot[data, PlotStyle -> Red], ListLinePlot[data]]

derivativeOfF = D[f[time], time]

CoefficientList[functionf /. {x -> a t^2 + b t + c}, t]

I don't know what to do after this point to find the accurate time factor. Many thanks for you help.

Attachments:
POSTED BY: Lea Rebanks
2 Replies
Posted 9 years ago

Hello Lea, you could do it in the following way: starting from your data

data = {{1, 4.008668526800082`}, {2, 13.840674130266803`}, {3, 
    29.80944537853352`}, {4, 51.91498227160025`}, {5, 
    80.15728480946696`}, {6, 114.53635299213369`}, {7, 
    155.0521868196004`}, {8, 201.70478629186715`}, {9, 
    254.49415140893387`}, {10, 313.4202821708005`}, {11, 
    378.48317857746724`}, {12, 449.682840628934`}, {13, 
    527.0192683252008`}, {14, 610.4924616662674`}, {15, 
    700.1024206521342`}, {16, 795.849145282801`}};

you can derive the optimal 2nd order function

nlm = NonlinearModelFit[data, c + b t + a t^2, {a, b, c}, t];
ffit = nlm["BestFit"]

which gives ffit close to yout result:

0.313429 + 0.626857 t + 3.06838 t^2

Next you do a series expansion up to 1st order for every data point resultin in a list of linear functions:

lst = Map[Simplify[Normal[Series[ffit, {t, #, 1}]]] &, data[[All, 1]]]
{-2.75495 + 6.76362 t, -11.9601 + 12.9004 t, -27.302 + 
  19.0372 t, -48.7807 + 25.1739 t, -76.3961 + 31.3107 t, -110.148 + 
  37.4475 t, -150.037 + 43.5842 t, -196.063 + 49.721 t, -248.226 + 
  55.8577 t, -306.525 + 61.9945 t, -370.961 + 68.1313 t, -441.534 + 
  74.268 t, -518.243 + 80.4048 t, -601.09 + 86.5416 t, -690.073 + 
  92.6783 t, -785.193 + 98.8151 t}

In order to visualize the results you can create a table of plots

plt = Table[
   ListPlot[
    Table[{t, lst[[n]]}, {t, n, n + 1}],
     PlotRange -> {{0, 16}, {0, 900}}, Joined -> True, 
    PlotStyle -> {{{Thin, Red}, {Thin, Green}}[[Mod[n, 2] + 1]]}],
   {n, 1, 16}];

which look like show full range

The linear functions match quite closely, to see the differences you need to zoom in:enter image description here

POSTED BY: Michael Helmle
Posted 9 years ago

Many thanks for your reply. Very interesting.

POSTED BY: Lea Rebanks
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard