লগ-লগ স্পেসে ইন্টিগ্রাল


10

লগ-লগ স্পেসে আমি সাধারণভাবে অনেক বেশি মসৃণ এবং ভাল আচরণ করে এমন ফাংশনগুলির সাথে আমি কাজ করছি --- তাই আমি এখানে অন্তরঙ্গকরণ / এক্সট্রাপোলেশন ইত্যাদি সম্পাদন করি এবং এটি খুব ভালভাবে কাজ করে। লগ-লগ স্পেসে এই সংখ্যাসূচক কার্যগুলি সংহত করার কোনও উপায় আছে?

অর্থাত আমি সহজ trapezoidal নিয়ম কিছু বাছাই ব্যবহার করার জন্য একটি ক্রমবর্ধমান অবিচ্ছেদ্য সম্পাদন করতে আশা করছি (যেমন পাইথন, ব্যবহারে scipy.integrate.cumtrapz), কিছু খুঁজে StF(r)

F(r)=0ry(x)dx

তবে আমি এবং (যখন সম্ভব) এর পরিবর্তে মান এবং ব্যবহার করার প্রত্যাশা করছি ।log(y)log(x)yx


আমি এই লিঙ্কটি পেয়েছি ( my.originlab.com/forum/topic.asp?TOPIC_ID=1251 ) যা মনে হয় যেভাবে আমি সাধারণত যাব ঠিক তেমনভাবে: প্রধান গণনা opeাল এবং লগ-লগ স্পেসে বিরতি। তারপরে লিন-লিন স্পেসে রূপান্তর করুন, সংহত করুন এবং মূল্যায়ন করুন।
মিঃমাস

উত্তর:


6

আপনি কেবল পরিবর্তনশীল পরিবর্তন করতে পারেন। বিন্যাসa=log(x), b(a)=log(y(x))। অবিচ্ছেদ্য হয়ে ওঠে

F(r)=log(r)exp(a+b)da

আপনি সামান্য যত্নবান হতে হবে কারণ আপনি থেকে সংহত করছেন । আপনাকে যা করতে হবে তা নির্ভর করবে কোনটির উপরy(x) দেখতে.


আপনার প্রতিক্রিয়ার জন্য ধন্যবাদ! তবে আমি মনে করি এটি কার্যকরভাবে লিনিয়ার স্পেসে অবিচ্ছেদ্য সম্পাদন করছে। সম্ভবত আমি তবে অসম্ভব কিছু চাইছি ...
ডিলিথিয়ামম্যাট্রিক্স

2
না, এটি লগ স্পেসে অবিচ্ছেদ্য কাজ করে। বিচক্ষণ যখন,daলিনিয়ার স্পেসে নয়, লগ স্পেসে সমান আকারের।
দামেস্ক স্টিল 4

1
@ ডিলিথিয়ামম্যাট্রিক্স সঠিক: এর বিযুক্তি x মানগুলি লগ-স্পেসে থাকে, তবে এর ইন্টারপোলেশন yলিনিয়ার স্পেসে মানগুলি হয়। সুতরাং, আপনি যদি ট্র্যাপিজয়েডাল নিয়মটি ব্যবহার করতে চান তবে কার্যকরভাবে সংহত হওয়া ফাংশনটি লোগারিথমিক এক্স-অক্ষ এবং লিনিয়ার ওয়াই-অক্ষের সাথে একটি প্লটে লম্বালম্বি রৈখিক।
বার্নপ্যাঙ্ক

3

আমি অজগর ব্যবহার করি না, তবে যদি আমি সঠিকভাবে বুঝতে পারি তবে বাই দ্বারা

F(r)=0ry(x)dx
তুমি এমন কিছু ভাবছো
F=integrate(y,x)
কোথায় F=[F1,...,Fn] গ্রিডের উপর অবিচ্ছেদ্য নমুনা দিচ্ছেন একটি ভেক্টর x

তবে আপনার নমুনা নেই x এবং yবরং আপনার কাছে নমুনা রয়েছে x^=log(x) এবং y^=log(y)

অবশ্যই সহজ পদ্ধতির হবে

F=integrate(exp(y^),exp(x^)),
তবে এটি ত্রুটি-প্রবণ হবে, কারণ y(x) মসৃণ নয়, যদিও y^(x^) হয়।

এখন ট্র্যাপিজয়েডাল নিয়মটি আপনার ইনপুটটিকে মূলত ধরে নেয়y(x)অংশবিশেষ রৈখিক হয়। সুতরাং সাধারণ জেনারেলাইজেশনটি আপনার এটি ধরে নেওয়া উচিতy^(x^) অংশবিশেষ রৈখিক হয়।

এই ক্ষেত্রে, সংজ্ঞায়িত ΔFk=Fk+1Fk, তোমার আছে

ΔFk=xkxk+1y(x)dx=x^kx^k+1ey^(x^)ex^dx^=x^kx^k+1y~(x^)dx^

তারপরে, সংজ্ঞায়িত করা হচ্ছে t=(x^x^k)/Δx^k, তোমার আছে

y^k+ty^k+tΔy^k
এবং y~(t)aebt, সঙ্গে a=ey^k+x^k এবং b=Δy^k+Δx^k

সুতরাং অবিচ্ছেদ্য হয়

ΔFkaΔx^01ebtdt=aΔx^eb1b

মতলব এ দেখতে এরকম কিছু লাগবে

dlogx=diff(logx); dlogy=diff(logy); k=1:length(logx)-1;  
b=dlogx+dlogy; a=exp(logx+logy);  
dF=a(k).*dlogx.*(exp(b)-1)./b;  
F=cumsum([0,dF]);

আশাকরি এটা সাহায্য করবে!

(সম্পাদনা করুন: আমার উত্তরটি মূলত অনেক বেশি সংক্ষিপ্ত জবাবের সাথে একই রকম যে আমি টাইপ করার সময় দামেস্ক স্টিল দিয়েছিল। পার্থক্য কেবলমাত্র সেই ক্ষেত্রেই আমি একটি বিশেষ সমাধান দেওয়ার চেষ্টা করেছি যেখানে "নির্দিষ্ট y(x)"একটি বিভক্ত-লিনিয়ার y^(x^) একটি বিযুক্তির উপর বিচক্ষণ x^ জাল, সাথে F(x^1)=0।)


আপনার (খুব স্পষ্ট) প্রতিক্রিয়াটির জন্য ধন্যবাদ, তবে আমি যেমন @ দামেস্কস স্টিলের প্রতিক্রিয়াতে বলেছি --- আমার মনে হয় এটি কেবলমাত্র লিনিয়ার-লিনিয়ার স্পেসে অবিচ্ছেদ্য রূপান্তর করছে এবং লগ-স্পেসের সুবিধা হারাতে চাইছে।
ডিলিথিয়ামম্যাট্রিক্স

1
@ ডিলিথিয়ামম্যাট্রিক্স: এটি দামেস্ক স্টিলের মত উত্তর নয়। নোট করুন যে দামেস্ক স্টিলের উত্তরে ট্র্যাপিজয়েড-বিধি প্রয়োগ করলে তা পাওয়া যায় নাexp(b)1bফ্যাক্টর।
বার্নপ্যাঙ্ক

3

লগ-লগ প্লটের মধ্যে যদি ফাংশনটি মসৃণ দেখায়, আপনি প্রতিটি বিরতিতে একটি পাওয়ার আইন ব্যবহার করে গলা ফেলা করতে পারেন (পাওয়ার আইনগুলি অবশ্যই লগ-লগে লিনিয়ার থাকে)। সুতরাং, পয়েন্ট মধ্যে(xi,yi) এবং (xi+1,yi+1) অনুমানের অধীনে যে y=Cixni বিরতি মধ্যে i, আপনি প্রাপ্ত ni=ln(yi/yi+1)/ln(xi/xi+1) এবং Ci=ln(yi)niln(xi)। অন্তর থেকে অবিচ্ছেদ্য অবদানi তারপর

ΔFi=xixi+1Cixnidx={Cini+1(xi+1ni+1xini+1),ni1Ci(lnxi+1lnxi),ni=1,
যেখানে বিশেষ ক্ষেত্রে চিহ্নিত করার জন্য আপনার অবশ্যই কিছুটা সহনশীলতা দরকার ni=1 আপনার বাস্তবায়নে

3

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

ইতিমধ্যে, @ স্টিফান এর সমাধানটি লগ-লগ স্পেসে কোনও ক্রিয়াকলাপকে একীভূত করার উপায়। শুরুর দিকটি হ'ল আপনি যে ফাংশনটি নিয়ে কাজ করছেন তা হ'ল পর্যাপ্ত পরিমাণে লগ-লগ স্পেসে রৈখিক।

এর পরে বিভাগের শেষ বিন্দুতে লাইনটির সমীকরণটি লিখতে পারেন: এখানে চিত্র বর্ণনা লিখুন

log(y1)=m1log(x1)+n1
log(y2)=m1log(x1)+n1

কোথায় m1 লাইন theাল এবং n1 এটি এর ওয়াই-ইন্টারসেপ্ট।

দুটিকে বিয়োগ করে একজন খুঁজে পেতে পারেন:

m1=log(y1)log(y2)log(x1)log(x2)

এবং প্রতিস্থাপন থেকে:

n1=log(y1)m1log(x1)

লগ-লগ স্পেসে যদি সেগমেন্টের সমীকরণ একটি লাইনের কাছাকাছি থাকে তবে সাধারণ (লিনিয়ার) স্পেসে বিভাগের সমীকরণটি ঘনিষ্ঠভাবে ঘনিষ্ঠ হয়:

y(x)xmen

এই বিভাগটির জন্য যদি আমাদের বিশ্লেষণাত্মক সূত্র থাকে তবে এটি সংহত করা সহজ is

x1x2y(x)dx=en1m1+1(x2m1+1x1m1+1),for m1

এবং

x1x2y(x)dx=en1logx2x1,for m=1

এটি কিছুটা প্রতারণার মতো অনুভব করে, তবে এটি লগ-লগ স্পেসে নমুনা দিচ্ছে যাতে আমরা লিনিয়ার স্পেসে লং-লগ স্পেস থেকে প্রাপ্ত প্যারামিটারগুলির সাহায্যে এক ঘনিষ্ঠে ফাংশনটি অনুমান করতে পারি।


এটি বিস্ময়কর @ এলেনাপাস্কাল, এটি এখন 3 বছরেরও বেশি সময় ধরে আমাকে বিরক্ত করে চলেছে এবং আমি মনে করি এটি সমাধান (বা খুব কাছেই)। আমি আপনার শেষ সম্পর্কের বিষয়টি পুরোপুরি অনুসরণ করছি না, আমি লগের সমান y এর চেয়ে বেশি অবিচ্ছেদ্য বলে মনে করি না (x2 / x1)
ডিলিথিয়ামম্যাট্রিক্স

বিশেষত, আমি যদি বাম-হাতের অংশে অবিচ্ছেদ্য লগটি গ্রহণ করি, তবে আমি ডান হাতের মতো একটি অনুরূপ শব্দ পেয়েছি, তবে সাথে log([x_2/x_1]^{m_1+1} + 1), অর্থাৎ লগের যুক্তিতে একটি অতিরিক্ত +1 রয়েছে
ডিলিথিয়ামম্যাট্রিক্স

এটি আমাকে আজও অনেক বিরক্ত করেছিল, আমি এটি লেখার পরেই বুঝতে পারি @ স্টেফান একই উত্তর পোস্ট করেছে posted মি = -1 এর জন্য আপনি কেবলমাত্র y: y (x) = e ^ n / x এর সংজ্ঞা অনুসারে এটি প্রতিস্থাপন করুন। যে লগ দেয়। আমি নিশ্চিত নই যে আমি আপনার দ্বিতীয় পোস্টটি অনুসরণ করছি
এলেনা পাস্কাল

আমি ঠিক একই জিনিসটি উপলব্ধি করেছি, তবে আপনার ব্যাখ্যাটি না পড়া পর্যন্ত আমি পুরোপুরি বুঝতে পারি নি
ডিলিথিয়ামম্যাট্রিক্স

1

আমি যে সমাধানটি ব্যবহার করি তা হ'ল ট্র্যাপিজিয়াম নিয়মের একটি বাস্তবায়ন এবং scipy.misc.logsumexpনির্ভুলতা বজায় রাখার জন্য ফাংশনটি ব্যবহার করে । আপনার যদি কিছু ফাংশন থাকে lnyযা এর লগারিদম ফিরিয়ে দেয় yতবে আপনি এটি করতে পারেন, যেমন:

scipy.misc আমদানি লগসুম এক্সপেক্স থেকে
এনপি হিসাবে নাম্বার আমদানি করুন

xmin = 1e-15
xmax = 1e-5

# ব্যবধানযুক্ত লোগারিথ্মিকভাবে এক্স এর মান পান
xvs = এনপি.লগস্পেস (এনপি.লগ 10 (এক্সমিন), এনপি.লগ 10 (এক্সম্যাক্স), 10000)

# xvs এ আপনার ফাংশনটি মূল্যায়ন করুন
lys = lny (xvs)

# ট্র্যাপিজিয়াম বিধি সংহতকরণ সম্পাদন করুন
ডেল্টাস = এনপি.লগ (এনপি.ডিফ (এক্সভিএস))
লগআই = -এনপি.লগ (২)

মানটি logIআপনি চাইলে নিখরচায় লগ হয়।

অবশ্যই আপনার সেট করার প্রয়োজন হলে এটি কাজ করবে না xmin = 0। তবে, অবিচ্ছেদ্যতার যদি আপনার কিছু অ-শূন্য ধনাত্মক নিম্ন সীমা থাকে তবে আপনি কেবলমাত্র পয়েন্টের সংখ্যার সাথে খেলতে পারবেন xvsযেখানে সংখ্যার অবিচ্ছেদ্য স্থানান্তরিত হয় find

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