Re: question
- To: mathgroup at smc.vnet.net
- Subject: [mg105685] Re: [mg105655] question
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Tue, 15 Dec 2009 07:27:40 -0500 (EST)
- References: <200912140505.AAA16909@smc.vnet.net>
- Reply-to: drmajorbob at yahoo.com
data = A; fn = BSplineFunction[data, SplineDegree -> 3]; Here's the data and the spline: Show[Graphics[{Red, Point[data], Green, Line[data]}, Axes -> True], ParametricPlot[fn[t], {t, 0, 1}], AspectRatio -> .25] and here, I believe, is the derivative: Plot[Divide @@ Reverse[fn'[t]], {t, 0, 1}, AspectRatio -> .5, PlotRange -> All] That's a function of t, not x, and maybe that's what you want. (Or maybe fn'[t] is all you need. It's up to you.) To get y'[x], we first need t as a function of x. The smaller you make "mesh", the more accurate this will be (I think): mesh = .0001; tAtX = Interpolation@Table[{First@fn[t], t}, {t, 0, 1, mesh}]; limits = Sequence @@ data[[{1, -1}, 1]]; Plot[tAtX@x, Evaluate@{x, limits}, PlotRange -> All] and finally: fnD[x_] := Divide @@ Reverse[fn'[tAtX@x]] Plot[fnD@x, Evaluate@{x, limits}] Bobby On Sun, 13 Dec 2009 23:05:21 -0600, Piotr Munik <piotr.munik at gmail.com> wrote: > I have a problem with BSpline Function. > I want to know how can I make derivative of BSplineFunction. > Example > I have date: > A = {{35460.`, 3679.0872`}, {35460.69264747737`, > 3687.7503846982163`}, {35461.28773994215`, > 3692.3961023958045`}, {35461.806871210974`, > 3694.2412898524603`}, {35462.26724874828`, > 3694.153846663659`}, {35462.68278354234`, > 3692.751661338148`}, {35463.064844684086`, > 3690.4735944025206`}, {35463.42275907352`, > 3687.6306750451413`}, {35463.764140416955`, > 3684.443207780651`}, {35464.09511694083`, > 3681.06769769011`}, {35464.42050735041`, > 3677.616304426622`}, {35464.74397598101`, > 3674.1707494759285`}, {35465.06818332038`, > 3670.7920866860404`}, {35465.39493765232`, > 3667.5274013715157`}, {35465.725347137995`, > 3664.414261219639`}, {35466.05996825088`, > 3661.483561387575`}, {35466.3989453914`, > 3658.761262965816`}, {35466.74213684692`, > 3656.2694059318`}, {35467.089223399555`, > 3654.026678876124`}, {35467.43979743582`, > 3652.0487455457387`}, {35467.793431899845`, > 3650.3484613388064`}, {35468.149729802935`, > 3648.936060393955`}, {35468.508356050195`, > 3647.8193546780835`}, {35468.86905403582`, > 3647.003958999106`}, {35469.231649893`, > 3646.493538377201`}, {35469.59604735504`, > 3646.2900647088964`}, {35469.962216097105`, > 3646.3940662134573`}, {35470.33017615164`, > 3646.8048539002734`}, {35470.699980580255`, > 3647.5207126272817`}, {35471.071698196596`, > 3648.5390489346887`}, {35471.44539764735`, > 3649.8564926946046`}, {35471.8211337682`, > 3651.468954045882`}, {35472.19893675605`, > 3653.3716406325216`}, {35472.57880436523`, > 3655.5590426339295`}, {35472.96069710453`, > 3658.024894452097`}, {35473.34453622771`, > 3660.7621222927396`}, {35473.73020415663`, > 3663.7627864213086`}, {35474.11754694328`, > 3667.018025827071`}, {35474.506378305014`, > 3670.51801158167`}, {35474.89648479548`, > 3674.251913569262`}, {35475.2876317024`, > 3678.2078836490937`}, {35475.67956928002`, > 3682.3730568207175`}, {35476.07203902216`, > 3686.7335707090747`}, {35476.46477969639`, > 3691.274602688824`}, {35476.857532946524`, > 3695.9804232725514`}, {35477.25004832435`, > 3700.834463961712`}, {35477.64208764039`, > 3705.8193975690688`}, {35478.03342858835`, > 3710.9172290329852`}, {35478.42386763393`, > 3716.1093948886532`}, {35478.81322216143`, > 3721.3768697843334`}, {35479.201331936965`, 3726.7002787009123`}}; > and I have a BSplineFunction: > In[1] fn = BSplineFunction[A, SplineDegree -> 3] > Out[1] BSplineFunction[{{0.,1.}},<>] > I need derivative of function from Out[1] > Thank You > Piotr > > -- DrMajorBob at yahoo.com
- References:
- question
- From: Piotr Munik <piotr.munik@gmail.com>
- question