खोज…


वाक्य - विन्यास

  1. zy = interp1 (x, y);
  2. zy = interp1 (x, y, 'विधि');
  3. zy = interp1 (x, y, 'method', 'extrapolation');
  4. zy = interp1 (x, y, zx);
  5. zy = interp1 (x, y, zx, 'विधि');
  6. zy = interp1 (x, y, zx, 'method', 'extrapolation');

टुकड़े का प्रक्षेप 2 आयामी

हम डेटा को इनिशियलाइज़ करते हैं:

[X,Y] = meshgrid(1:2:10);
Z = X.*cos(Y) - Y.*sin(X);

सतह निम्नलिखित की तरह दिखती है। interp2-डेटा

अब हम उन बिंदुओं को निर्धारित करते हैं जहाँ हम प्रक्षेप करना चाहते हैं:

[Vx,Vy] = meshgrid(1:0.25:10); 

अब हम निकटतम प्रक्षेप कर सकते हैं,

Vz = interp2(X,Y,Z,Vx,Vy,'nearest');

interp2-पास

रैखिक सेपक,

Vz = interp2(X,Y,Z,Vx,Vy,'linear');

interp2 रेखीय

घन प्रक्षेप

Vz = interp2(X,Y,Z,Vx,Vy,'cubic');

या तख़्ता प्रक्षेप:

Vz = interp2(X,Y,Z,Vx,Vy,'spline');

interp2-पट्टी

टुकड़े का प्रक्षेप 1 आयामी

हम निम्नलिखित डेटा का उपयोग करेंगे:

x = 1:5:50;
y = randi([-10 10],1,10);

interp1-डेटा

इसके द्वारा x और y डेटा बिंदुओं के निर्देशांक हैं और z ऐसे बिंदु हैं z बारे में हमें जानकारी चाहिए।

z = 0:0.25:50;

Z के y-मानों को खोजने का एक तरीका है टुकड़े-टुकड़े रैखिक प्रक्षेप।

z_y = interp1(x,y,z,'linear');

interp1 रेखीय

इसके द्वारा एक दो आसन्न बिंदुओं के बीच की रेखा की गणना करता है और यह मानकर z_y हो जाता है कि बिंदु उन रेखाओं का एक तत्व होगा।

interp1 अन्य विकल्प भी प्रदान करता है जैसे निकटतम प्रक्षेप,

z_y = interp1(x,y,z, 'nearest');

interp1-nearst

अगले प्रक्षेप,

z_y = interp1(x,y,z, 'next');

interp1-अगले

पिछला प्रक्षेप,

z_y = interp1(x,y,z, 'previous');

interp1-पिछले

आकार-संरक्षण टुकड़ा करने योग्य घन प्रक्षेप,

z_y = interp1(x,y,z, 'pchip');

interp1-pchip

क्यूबिक कनवल्शन, z_y = interp1 (x, y, z, 'v5cubic');

interp1-v5cubic

और प्रक्षेप प्रक्षेप

z_y = interp1(x,y,z, 'spline');

interp1-पट्टी

इसके निकट, अगले और पिछले प्रक्षेप टुकड़े के निरंतर प्रक्षेप हैं।

बहुपद प्रक्षेप

हम उस डेटा को इनिशियलाइज़ करते हैं जिसे हम इंटरपोल करना चाहते हैं:

x = 0:0.5:10;
y = sin(x/2);

इसका अर्थ है कि अंतराल में डेटा के लिए अंतर्निहित कार्य [0,10] साइनसोइडल है। अब सन्निकट बहुपद के गुणांक की गणना की जा रही है:

p1 = polyfit(x,y,1);
p2 = polyfit(x,y,2);
p3 = polyfit(x,y,3);
p5 = polyfit(x,y,5);
p10 = polyfit(x,y,10);

इसके द्वारा है x एक्स-मूल्य और y और हमारे डेटा बिंदुओं का y- मान तीसरे नंबर बहुपद के आदेश / डिग्री है। अब हम उस ग्रिड को सेट करते हैं जिसे हम अपने प्रक्षेपित कार्य की गणना करना चाहते हैं:

zx = 0:0.1:10;

और y- मानों की गणना करें:

zy1 = polyval(p1,zx);
zy2 = polyval(p2,zx);
zy3 = polyval(p3,zx);
zy5 = polyval(p5,zx);
zy10 = polyval(p10,zx);

एक यह देख सकता है कि जब बहुपद की डिग्री बढ़ जाती है तो नमूने के लिए सन्निकटन त्रुटि छोटी हो जाती है।

poly1-3

जबकि इस उदाहरण में सीधी रेखा के सन्निकटन में बड़ी त्रुटियां हैं, 3 बहुपद क्रम इस इंटरवेल में साइनस फ़ंक्शन को अपेक्षाकृत अच्छा बनाता है।

poly5 + 10

आदेश 5 और क्रम 10 बहुपद के साथ प्रक्षेप में लगभग कोई त्रुटि नहीं है।

हालाँकि अगर हम नमूना प्रदर्शन से बाहर मानते हैं तो कोई यह देखता है कि बहुत अधिक ऑर्डर ओवरफिट हो जाते हैं और इसलिए नमूने से बाहर खराब प्रदर्शन करते हैं। हम ने ठीक किया

zx = -10:0.1:40;
p10 = polyfit(X,Y,10);
p20 = polyfit(X,Y,20);

तथा

zy10 = polyval(p10,zx);
zy20 = polyval(p20,zx);

यदि हम उस कथानक पर एक नज़र डालते हैं जो हम देखते हैं कि नमूना प्रदर्शन का क्रम क्रम 1 के लिए सबसे अच्छा है

outOfSample1-3

और बढ़ती डिग्री के साथ खराब होता रहता है।

यहाँ छवि विवरण दर्ज करें



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow