/ / MATLAB और WolframAlpha में स्वयं के साथ किसी फ़ंक्शन के रूपांतरण की गणना कैसे करें? - matlab, wolfram-mathematica, wolframalpha

MATLAB और WolframAlpha में स्वयं के साथ फ़ंक्शन के रूपांतरण की गणना कैसे करें? - matlab, wolfram-mathematica, wolframalpha

मैं संकल्प की गणना करने की कोशिश कर रहा हूं

x(t) = 1, -1<=t<=1
x(t) = 0, outside

परिभाषा का उपयोग कर खुद के साथ।

http://en.wikipedia.org/wiki/Convolution

मुझे पता है कि Matlab फ़ंक्शन रूपांतरण का उपयोग कैसे करें, लेकिन मैं अभिन्न परिभाषा का उपयोग करना चाहता हूं। Matlab और WolframAlpha का मेरा ज्ञान बहुत सीमित है।

उत्तर:

जवाब के लिए 8 № 1

मैं अभी भी गणित खुद को सीख रहा हूं, लेकिन यहां मैं यही आया हूं ..

सबसे पहले हम टुकड़े टुकड़े समारोह को परिभाषित करते हैं (मैं विकिपीडिया पेज से उदाहरण का उपयोग कर रहा हूं)

f[x_] := Piecewise[{{1, -0.5 <= x <= 0.5}}, 0]

piecewise_function

समारोह को साजिश दें:

Plot[f[x], {x, -2, 2}, PlotStyle -> Thick, Exclusions -> None]

function_plot

फिर हम उस समारोह को लिखते हैं जो दृढ़ संकल्प को परिभाषित करता है f खुद के साथ:

g[t_] = Integrate[f[x]*f[t - x], {x, -Infinity, Infinity}]

convolution_integral

और साजिश:

Plot[g[t], {t, -2, 2}, PlotStyle -> Thick]

convolution_plot


संपादित करें

मैंने MATLAB / MuPad में ऐसा करने की कोशिश की, मैं सफल नहीं था:

f := x -> piecewise([x < -0.5 or x > 0.5, 0], [x >= -0.5 and x <= 0.5, 1])

func_def

plot(f, x = -2..2)

func_plot

हालांकि जब मैं अभिन्न गणना करने की कोशिश करता हूं, तो इसे वापस करने में लगभग एक मिनट लग गया:

g := t -> int(f(x)*f(t-x), x = -infinity..infinity)

घुमाव

साजिश (भी बहुत लंबा लिया)

plot(g, t = -2..2)

convolution_plot

ध्यान दें कि सिंटैक्स के साथ MATLAB के अंदर से किया जा सकता था:

evalin(symengine,"<MUPAD EXPRESSIONS HERE>")

उत्तर № 2 के लिए 1

गणित वास्तव में एक ठोस समारोह है। इस पर प्रलेखन में कई अलग-अलग उदाहरण हैं:

http://reference.wolfram.com/mathematica/ref/Convolve.html?q=Convolve&lang=en


जवाब के लिए 0 № 3

मैं गणित के बारे में ज्यादा नहीं जानता, इसलिए मैं केवल मैटलैब भाग के बारे में आपकी मदद कर सकता हूं (आंशिक रूप से)।

Matlab conv के साथ दृढ़ संकल्प करने के लिएकार्यों का मतलब है कि आप इसे संख्यात्मक रूप से करते हैं। अभिन्न परिभाषा के साथ आपका क्या मतलब है कि आप इसे प्रतीकात्मक रूप से करना चाहते हैं। इसके लिए आपको मैटलैब सिंबलिक टूलबॉक्स की आवश्यकता है। यह अनिवार्य रूप से Matlab के लिए एक मेपल प्लगइन है। तो आप क्या जानना चाहते हैं कि यह मेपल में कैसे काम करता है।

आपको यह लिंक उपयोगी लगेगा (Wikibooks) Matlab में MuPad पर एक परिचय के लिए।

मैंने आपके बॉक्स फ़ंक्शन को मैटलैब में फ़ंक्शन के रूप में कार्यान्वित करने का प्रयास किया

t = sym("t")
f =  (t > -1) + (t < 1) - 1

हालांकि यह काम नहीं करता है जब टी ओबी प्रतीकात्मक प्रकार है Function "gt" is not implemented for MuPAD symbolic objects.

आप घोषित कर सकते हैं f यह एक टुकड़े टुकड़े समारोह के रूप में देखते हैं (matlab ऑनलाइन सहायता), हालांकि यह मेरे Matlab में काम नहीं किया था। उदाहरण सभी मेपल वाक्यविन्यास हैं, इसलिए वे सीधे मेपल में काम करेंगे।

इसे रोकने के लिए, मैंने इस्तेमाल किया

t = sym("t")
s = sym("s")
f = @(t) heaviside(t + 1) - heaviside(t - 1)

दुर्भाग्य से यह सफल नहीं है

I = int(f(s)*f(t-s),s, 0, t)

देता है

Warning: Explicit integral could not be found.

और एक स्पष्ट परिणाम प्रदान नहीं करता है। आप अभी भी इस अभिव्यक्ति का मूल्यांकन कर सकते हैं, उदा।

>> subs(I, t, 1.5)

ans =
1/2

लेकिन Matlab / MuPad टी के संदर्भ में आपको और स्पष्ट अभिव्यक्ति देने में विफल रहा। यह वास्तव में समारोह के रूप में अप्रत्याशित नहीं है f असंतुलित है प्रतीकात्मक गणना के लिए यह इतना आसान नहीं है।

अब मैं कंप्यूटर से मदद करता हूं, सौभाग्य से उदाहरण के लिए कि आपने जवाब पूछा है कि यह बहुत आसान है। आपके उदाहरण में दृढ़ संकल्प बस है int_0^t BoxFunction(s) * BoxFunction(t - s) ds। एकीकृत BoxFunction(s) * BoxFunction(t - s) फिर एक बॉक्स फ़ंक्शन है, केवल एक नहीं जो [-1,1] से जाता है लेकिन एक छोटे अंतराल (जो टी पर निर्भर करता है) तक जाता है। फिर आपको केवल फ़ंक्शन को एकीकृत करने की आवश्यकता है f(x)=1 इस छोटे अंतराल पर।

उन चरणों में से कुछ आपको पहले हाथ से करना होगा, फिर आप उन्हें Matlab में पुनः दर्ज करने का प्रयास कर सकते हैं। जवाब देने के लिए आपको कंप्यूटर बीजगणित कार्यक्रम की भी आवश्यकता नहीं है।

शायद मेटामैटिका या मेपल वास्तव में हल कर सकता हैइस समस्या को याद रखें कि मटकाब के साथ भेजे गए म्यूपैड केवल मेपल का एक अलग संस्करण है। हो सकता है कि उपर्युक्त अभी भी आपकी मदद कर सके, आपको यह विचार देना चाहिए कि चीजें कैसे काम करती हैं। एफ के लिए एक अच्छा फ़ंक्शन डालने का प्रयास करें, उदा। एक बहुपद और आपको इसे काम करना चाहिए।