Re: Getting scipy.interpolate.pchip_interpolate to return the first derivative of a pchip interpolation
Samuel Dupree <[email protected]> Mon, 23 Jan 2023 18:07:57 -0500
| Newsgroups | gmane.comp.python.scientific.user |
|---|---|
| Organization | XayDeltaOne |
| Message-ID | <[email protected]> |
VGhhbmsgeW91IGZvciBhbGwgdGhlIHJlc3BvbnNlcywgaG93ZXZlciBteSBxdWVzdGlvbiBzdGls bCByZW1haW5zOiBob3cgDQpkb2VzIHBjaGlwX2ludGVycG9sYXRlIGtub3cgdGhlIGlkZW50aXR5 IG9mIHRoZSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlZCANCnRoZSBkYXRhIGFuZCB0aGUgZmlyc3Qg ZGVyaXZhdGl2ZSB0byBiZSBpbnRlcnBvbGF0ZWQ/IEl0IGNhbid0IGJlY2F1c2UgDQphbGwgcGNo aXBfaW50ZXJwb2xhdGUgZ2V0cyBpcyBhIGxpc3Qgb2YgbnVtYmVycy4gVGhlIGlkZW50aXR5IG9m IHRoZSANCmZ1bmN0aW9ucyBhcmUgbm90IHBhc3NlZCB0byBpdCB1bmxlc3MgdGhlcmUgaXMgYSB3 YXkgcGNoaXBfaW50ZXJwb2xhdGUgDQprbm93cy4NCg0KU2FtIER1cHJlZS4NCg0KDQpPbiAxLzIz LzIzIDE0OjM1LCBzY2lweS11c2VyLXJlcXVlc3RAcHl0aG9uLm9yZyB3cm90ZToNCj4gU2VuZCBT Y2lQeS1Vc2VyIG1haWxpbmcgbGlzdCBzdWJtaXNzaW9ucyB0bw0KPiAJc2NpcHktdXNlckBweXRo b24ub3JnDQo+DQo+IFRvIHN1YnNjcmliZSBvciB1bnN1YnNjcmliZSB2aWEgdGhlIFdvcmxkIFdp ZGUgV2ViLCB2aXNpdA0KPiAJaHR0cHM6Ly9tYWlsLnB5dGhvbi5vcmcvbWFpbG1hbjMvbGlzdHMv c2NpcHktdXNlci5weXRob24ub3JnLw0KPiBvciwgdmlhIGVtYWlsLCBzZW5kIGEgbWVzc2FnZSB3 aXRoIHN1YmplY3Qgb3IgYm9keSAnaGVscCcgdG8NCj4gCXNjaXB5LXVzZXItcmVxdWVzdEBweXRo b24ub3JnDQo+DQo+IFlvdSBjYW4gcmVhY2ggdGhlIHBlcnNvbiBtYW5hZ2luZyB0aGUgbGlzdCBh dA0KPiAJc2NpcHktdXNlci1vd25lckBweXRob24ub3JnDQo+DQo+IFdoZW4gcmVwbHlpbmcsIHBs ZWFzZSBlZGl0IHlvdXIgU3ViamVjdCBsaW5lIHNvIGl0IGlzIG1vcmUgc3BlY2lmaWMNCj4gdGhh biAiUmU6IENvbnRlbnRzIG9mIFNjaVB5LVVzZXIgZGlnZXN0Li4uIg0KPg0KPiBUb2RheSdzIFRv cGljczoNCj4NCj4gICAgIDEuIFJlOiBTY2lQeS1Vc2VyIERpZ2VzdCwgVm9sIDIzMSwgSXNzdWUg MSAoU2FtdWVsIER1cHJlZSkNCj4gICAgIDIuIFJlOiBTY2lQeS1Vc2VyIERpZ2VzdCwgVm9sIDIz MSwgSXNzdWUgMSAoRXZnZW5pIEJ1cm92c2tpKQ0KPiAgICAgMy4gUmU6IFNjaVB5LVVzZXIgRGln ZXN0LCBWb2wgMjMxLCBJc3N1ZSAxIChSdXN0eSBHZW50aWxlKQ0KPg0KPg0KPiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tDQo+DQo+IE1lc3NhZ2U6IDENCj4gRGF0ZTogTW9uLCAyMyBKYW4gMjAyMyAxMzoyNTo1MCAt MDUwMA0KPiBGcm9tOiBTYW11ZWwgRHVwcmVlIDxzZHVwcmVlQHNwZWFrZWFzeS5uZXQ+DQo+IFN1 YmplY3Q6IFtTY2lQeS1Vc2VyXSBSZTogU2NpUHktVXNlciBEaWdlc3QsIFZvbCAyMzEsIElzc3Vl IDENCj4gVG86IHNjaXB5LXVzZXJAcHl0aG9uLm9yZywgc2NpcHktdXNlci1yZXF1ZXN0QHB5dGhv bi5vcmcNCj4gTWVzc2FnZS1JRDogPGVmYmYzNzUwLWY3ZDMtNTQ2OS0xOTc4LTgxODhiZWZhZTE1 MEBzcGVha2Vhc3kubmV0Pg0KPiBDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRG LTg7IGZvcm1hdD1mbG93ZWQNCj4NCj4gVGhlIHByb2JsZW0gSSBoYXZlIGlzIGlmIHRoZSBpbnRl cnBvbGF0b3Igb25seSBzZWVzIG51bWJlcnMuIFVubGVzcw0KPiB0aGVyZSBpcyBzb21lIHVuZGVy Y292ZXIgbWVhbnMgYnkgd2hpY2ggdGhlIGludGVycG9sYXRvciBzZWVzIHRoZQ0KPiBmdW5jdGlv biB1c2VkIHRvIGdlbmVyYXRlIHRoZSBudW1iZXJzIHBhc3NlZCB0byBpdCwgaG93IGRvZXMgaXQg a25vdyB0aGUNCj4gY29udmVyc2lvbiBmYWN0b3IgaXMgdXNlZCBhcmd1bWVudCB0byB0aGUgc2lu ZSBmdW5jdGlvbj8gRnVydGhlcm1vcmUsIElmDQo+IEkgd2VyZSB0byByZXdyaXRlIHRoZSBwcm9n cmFtIGFzIGZvbGxvd3MsIEkgc3RpbGwgZ2V0IHRoZSBzYW1lIHJlc3VsdHMuDQo+DQo+DQo+DQo+ IGltcG9ydCBudW1weSBhcyBucA0KPiBpbXBvcnQgbWF0cGxvdGxpYi5weXBsb3QgYXMgcGx0DQo+ IGZyb20gc2NpcHkuaW50ZXJwb2xhdGUgaW1wb3J0IHBjaGlwX2ludGVycG9sYXRlDQo+DQo+IHhf b2JzZXJ2ZWTCoMKgwqAgPSBucC5saW5zcGFjZSgwLjAsIDM2MC4wLCAxMDApDQo+IHh4X29ic2Vy dmVkwqDCoCA9IG5wLnBpKnhfb2JzZXJ2ZWQvMTgwDQo+DQo+IHlfb2JzZXJ2ZWTCoMKgwqAgPSBu cC5zaW4oeHhfb2JzZXJ2ZWQpDQo+IGR5ZHhfb2JzZXJ2ZWQgPSBucC5jb3MoeHhfb2JzZXJ2ZWQp DQo+DQo+IHjCoMKgwqAgPSBucC5saW5zcGFjZShtaW4oeF9vYnNlcnZlZCksIG1heCh4X29ic2Vy dmVkKSwgbnVtPTEwMCkNCj4gecKgwqDCoCA9IHBjaGlwX2ludGVycG9sYXRlKHhfb2JzZXJ2ZWQs IHlfb2JzZXJ2ZWQsIHgsIGRlcj0wLCBheGlzPTApDQo+IGR5ZHggPSBwY2hpcF9pbnRlcnBvbGF0 ZSh4X29ic2VydmVkLCB5X29ic2VydmVkLCB4LCBkZXI9MSwgYXhpcz0wKQ0KPg0KPg0KPiBuZGlt ID0gbGVuKCBkeWR4ICkNCj4gcHJpbnQoKQ0KPiBmb3IgaSBpbiByYW5nZSgwLG5kaW0pOg0KPiAg IMKgwqDCoMKgIHByaW50KCBkeWR4X29ic2VydmVkW2ldLCAiwqAgIiwgZHlkeFtpXSApDQo+DQo+ DQo+IHBsdC5wbG90KHhfb2JzZXJ2ZWQswqDCoMKgIHlfb2JzZXJ2ZWQsICJibyIgLCBsYWJlbD0i b2JzZXJ2YXRpb24gZnVuY3QiKQ0KPiBwbHQucGxvdCh4X29ic2VydmVkLCBkeWR4X29ic2VydmVk LCAicngiICwgbGFiZWw9Im9ic2VydmF0aW9uIGRlcml2IikNCj4NCj4gcGx0LnBsb3QoeMKgwqDC oMKgwqDCoMKgwqAgLCB5wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAsICJjLSIsIGxhYmVsPSJwY2hp cCBpbnRlcnBvbGF0aW9uIGZ1bmN0IikNCj4gcGx0LnBsb3QoeMKgwqDCoMKgwqDCoMKgwqAgLCBk eWR4wqDCoMKgwqDCoMKgwqDCoCAsICJrLSIsIGxhYmVsPSJwY2hpcCBpbnRlcnBvbGF0aW9uIGRl cml2IikNCj4gcGx0LmxlZ2VuZCgpDQo+IHBsdC5ncmlkKCkNCj4gcGx0LnNhdmVmaWcoInBjaGlw X2V4YW1wbGVfMDEucG5nIikNCj4gcGx0LnNob3coKQ0KPg0KPg0KPiBBbnkgdGhvdWdodHM/DQo+ DQo+IFNhbSBEdXByZWUuDQo+DQo+DQp7c25pcF0NCj4NCj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gU2NpUHktVXNlciBtYWlsaW5nIGxpc3QgLS0g c2NpcHktdXNlckBweXRob24ub3JnDQo+IFRvIHVuc3Vic2NyaWJlIHNlbmQgYW4gZW1haWwgdG8g c2NpcHktdXNlci1sZWF2ZUBweXRob24ub3JnDQo+IGh0dHBzOi8vbWFpbC5weXRob24ub3JnL21h aWxtYW4zL2xpc3RzL3NjaXB5LXVzZXIucHl0aG9uLm9yZy8NCj4NCj4NCj4gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tDQo+DQo+IEVuZCBvZiBTY2lQeS1Vc2VyIERpZ2VzdCwgVm9sIDIz MSwgSXNzdWUgMg0KPiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioN Cj4NCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KU2Np UHktVXNlciBtYWlsaW5nIGxpc3QgLS0gc2NpcHktdXNlckBweXRob24ub3JnClRvIHVuc3Vic2Ny aWJlIHNlbmQgYW4gZW1haWwgdG8gc2NpcHktdXNlci1sZWF2ZUBweXRob24ub3JnCmh0dHBzOi8v bWFpbC5weXRob24ub3JnL21haWxtYW4zL2xpc3RzL3NjaXB5LXVzZXIucHl0aG9uLm9yZy8KTWVt YmVyIGFkZHJlc3M6IGdjcHN1LXNjaXB5LXVzZXJAbS5nbWFuZS1teC5vcmcK