এজ এ ডেরাইভেটিভ


9

আনুমানিক ডেরিভেটিভের জন্য আমার পছন্দের উপায়টি হ'ল কেন্দ্রীয় পার্থক্য, এটি সামনের দিকের পার্থক্য বা পশ্চাৎ পার্থক্যের চেয়ে আরও সঠিক এবং আমি উচ্চতর ক্রমে যেতে খুব অলস। তবে কেন্দ্রীয় পার্থক্যটির জন্য আপনি মূল্যায়ন করছেন এমন উভয় পক্ষের একটি ডেটা পয়েন্ট প্রয়োজন। সাধারণত এর অর্থ আপনি উভয় প্রান্তে ডেরিভেটিভ না পেয়ে শেষ করেন। এটির সমাধানের জন্য, আমি চাই আপনি প্রান্তগুলিতে সামনের দিকে এবং পিছনের পার্থক্যটিতে স্যুইচ করুন:

বিশেষত, আমি চাই আপনি প্রথম পয়েন্টের জন্য একটি অগ্রণী পার্থক্য, শেষ পয়েন্টের জন্য একটি পশ্চাদপদ পার্থক্য এবং মাঝখানে সমস্ত পয়েন্টের জন্য একটি কেন্দ্রীয় পার্থক্য ব্যবহার করুন। এছাড়াও, আপনি ধরে নিতে পারেন যে x মানগুলি সমানভাবে ব্যবধানযুক্ত এবং কেবল y এর উপর ফোকাস করবে। এই সূত্রগুলি ব্যবহার করুন:

এখানে চিত্র বর্ণনা লিখুন

শুভ কামনা রইলাম, আমি দেখার অপেক্ষায় রয়েছি যে কেউ যদি একটি সাধারণ নিয়ম নিয়ে আসে যা সঠিক জায়গায় সমস্ত 3 ডেরিভেটিভকে পুনরুত্পাদন করে!

প্রাক্তন ইনপুট:

0.034  9.62    8.885   3.477   2.38

কোন স্পটটিতে কোন অ্যালগরিদম ব্যবহার করতে হবে তা বোঝাতে আমি এফডি, সিডি এবং বিডি ব্যবহার করব, সুতরাং উপরে 5 পয়েন্টগুলি ব্যবহার করে আনুমানিক ডেরিভেটিভস ব্যবহার করে

FD     CD      CD      CD     BD

এবং তারপরে গণনা করা মানগুলি হ'ল:

9.586  4.4255 -3.0715 -3.2525 -1.097 

আপনি ধরে নিতে পারেন যে সর্বদা কমপক্ষে 3 টি ইনপুট পয়েন্ট থাকবে এবং আপনি একক বা দ্বিগুণ নির্ভুলতা ব্যবহার করে গণনা করতে পারেন।

এবং সর্বদা হিসাবে, সংক্ষিপ্ত উত্তর জিতেছে।


3
কেবলমাত্র একটি নটপিক, কেন্দ্রীয় / সামনের / পিছিয়ে থাকা পার্থক্যগুলি কেবলমাত্র একটি সময়ে ডেরাইভেটিভগুলির কাছাকাছি, ডেরাইভেটিভগুলি নিজেরাই নয়।
লিয়াম

প্রতিটি ইনপুট এবং আউটপুট নম্বর কীসের সাথে মিলে যায় তা আমি বুঝতে পারি না।
xnor

@ এক্সনর, আমি ইনপুট এবং আউটপুটটির মধ্যে একটি সংক্ষিপ্ত বিবরণ দিয়েছি যা ব্যাখ্যা করে যে কোন আলগরিদমটি কোন ডেটা পয়েন্টের জন্য ব্যবহার করতে হবে। এটা কি এখন বোঝা যায়?
টনি রুথ

হ্যাঁ, আমি এটি বোধগম্য মনে করি। 5 ইনপুটগুলির জন্য, আপনি করতেন [a,b,c,d,e] -> [b-a,(c-a)/2,(d-b)/2,(e-c)/2,e-d]। যে 3 ইনপুট পয়েন্ট কম হতে পারে?
xnor

@ এক্সনর, ঠিক আছে এবং, আমি আপডেট করেছি যাতে আপনি কমপক্ষে 3 ইনপুট পয়েন্ট ধরে নিতে পারেন।
টনি রুথ

উত্তর:


4

জেলি , 13 10 বাইট

I.ịṚjI+2\H

এটি অনলাইন চেষ্টা করুন!

কিভাবে এটা কাজ করে

I.ịṚjI+2\H  Main link. Argument: A (array)

I           Increments; compute the deltas of consecutive values.
            For [a, b, c, d, e], this yields [b-a, c-b, d-c, e-d].
 .ị         At-index 0.5; get the the last and first element.
            This yields [e-d, b-a].
   Ṛ        Reverse the pair.
            This yields [b-a, e-d].
    jI      Join, separating by the increments.
            This yields [b-a, b-a, c-b, d-c, e-d, e-d].
      +2\   Add the values of all overlapping pairs.
            This yields [2(b-a), c-a, d-b, e-c, 2(e-d)].
         H  Halve all resulting numbers.
            This yields [b-a, (c-a)/2, (d-b)/2, (e-c)/2, e-d]. 

3

এমএটিএল, 21 15 বাইট

2/d1)6Mh8Mt0)h+

TryItOnline

অর্ধেক ইনপুট ভেক্টর, এবং ধারাবাহিক পার্থক্য লাগে, দিতে d=[i(2)-i(1) i(3)-i(2) ... i(end)-i(end-1)]/2এবং তারপর দুই পরিবর্তিত ভেক্টর করে তোলে, [d(1) d]এবং [d d(end)], এবং তাদের যোগ করা হয়েছে।

পুরানো সংস্করণটি ভাল ছিল (কারণ কনভোলশন) তবে 21 বাইট

d1j)6M1)6MTT2/H3$Y+bv

1
দেখলাম, বেশ চালাক। সুতরাং আপনি সামনের পার্থক্যের একটি তালিকা এবং পিছনের পার্থক্যের একটি তালিকা নিয়ে যান এবং কেন্দ্রীয় পার্থক্যটি পেতে এটিকে গড় করেন। তারপরে শেষ পয়েন্টগুলি পরিবর্তে 2 ফরোয়ার্ড পার্থক্য বা 2 পশ্চাদপদ পার্থক্যগুলি (একই স্পটে) গড় দিয়ে স্থির করা হয়। যেহেতু সম্মুখ এবং পশ্চাৎ পার্থক্য কেবল একে অপরের থেকে এক স্পট দ্বারা স্থানান্তরিত হয়েছে, তাই আপনাকে প্রচুর কাঠামো পুনরায় ব্যবহার করতে হবে।
টনি রুথ

ঠিক সামনের পার্থক্য, অন্যথায় হ্যাঁ। এরকম (y(i)-y(i-1))+(y(i+1)-y(i))দেয় y(i+1)-y(i-1), যা দুইবার কেন্দ্রিক পার্থক্য নেই।
ডেভিড


1

05 এ বি 1 , 20 19 17 14 বাইট

¥Ð¦øO;s¤s0èŠ)˜

ব্যাখ্যা

¥Ð              # triplicate deltas of list
                  [9.585999999999999, -0.7349999999999994, -5.4079999999999995, -1.097]
  ¦øO;          # get central difference (fold addition over deltas and divide by 2)
                  [4.4254999999999995, -3.0714999999999995, -3.2524999999999995]
      s¤        # get backwards difference
                  -1.097
        s0è     # get forwards difference
                  9.585999999999999
           Š)˜  # reorder differences, merge to list and flatten
                  [9.585999999999999, 4.4254999999999995, -3.0714999999999995, -3.2524999999999995, -1.097]

এটি অনলাইনে চেষ্টা করুন

@ আদনানকে 2 বাইট সংরক্ষণ করা হয়েছে



1

পাইথ, 14 বাইট

.OM>L2._seB-Vt

অনলাইনে চেষ্টা করুন: বিক্ষোভ

ব্যাখ্যা:

.OM>L2._seB-VtQQ   implicitly add two Qs (input arrays) at the end
           -VtQQ   get all neighbored differences
        seB        get the last element of ^ and append it to ^
      ._           compute all prefixes
   >L2             reduce all prefixes to the last two elements
.OM                compute the average of each ^

1

জে, 21 বাইট

[:((,{:)+{.,])2-~/\-:

@ ডেভিডের সমাধানে ব্যবহৃত পদ্ধতির অনুরূপ ।

ব্যবহার

   f =: [:((,{:)+{.,])2-~/\-:
   f 0.034 9.62 8.885 3.477 2.38
9.586 4.4255 _3.0715 _3.2525 _1.097

ব্যাখ্যা

[:((,{:)+{.,])2-~/\-:  Input: list A
                   -:  Halve each value in A
              2   \    Select each overlapping sublist of size 2 in A
               -~/     Reduce it using subtraction to get the difference
[:(          )         Operate on the list of differences, call it D
            ]          Identity function, returns D
         {.            Get the head of D
           ,           Join them to get [head(D), D]
   ( {:)               Get the tail of D
    ,                  Join them to get [D, tail(D)]
        +              Add them together elementwise to get the derivatives and return


0

জাভাস্ক্রিপ্ট (ES6), 62 বাইট

a=>a.map((_,i)=>i&&i--<a.length-2?(a[i+2]-a[i])/2:a[i+1]-a[i])

0

পাইথ, 27 24 23 21 বাইট

.bcF_-VNYK ++] এইচজে, VUQQJ] eJttK 
.bcF-VYN +] এইচজে, ভিকিউকিউজে + টিজে] ইজে 
++ এইচজে-ভি + টিকিউকিউ + এইচকিউসিআর 2 পিটিজেজে 
* ভি ++ 1 *]। 5 টিটিএলকিউ 1-ভি + টিকিউকিউ + এইচ
* ভী ++, 1m.5ttQ1-ভি + + tQeQ + H

এটি অনলাইন চেষ্টা করুন!

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.