2017-02-06 9 views
6

पर तो मैं निम्नलिखित कोड का इस्तेमाल कियाअंतर्निहित फ़ंक्शन को प्लॉट x + y - लॉग इन करें (x) - मैं मैटलैब पर ऊपर समारोह साजिश करना चाहता था लॉग इन करें (y) -2 = 0 MATLAB

ezplot('-log(x)-log(y)+x+y-2',[-10 10 -10 10]); 

हालांकि मैं मैं बस एक खाली स्क्रीन मिल रहा हूँ। लेकिन स्पष्ट रूप से कम से कम बिंदु (1,1) है जो समीकरण को संतुष्ट करता है। मुझे नहीं लगता कि प्लॉटर सेटिंग में एक समस्या है, जैसा कि मैंने कार्यों के लिए रेखांकन हो रही है

ezplot('-log(y)+x+y-2',[-10 10 -10 10]); 

जैसे मैं चित्रों :)

उत्तर

3

यह वह जगह है का स्थान निर्धारित करने क्योंकि x = y = 1 दिया समीकरण का एकमात्र समाधान है।

ध्यान दें कि minimum value of x - log(x) is 1 and that happens when x = 1। जाहिर है, यह y - log(y) के लिए भी सच है। तो, -log(x)-log(y)+x+yx = y = 1 को छोड़कर हमेशा 2 से अधिक है, जहां यह 2 के बराबर है।

जैसा कि आपके समीकरण में केवल एक समाधान है, साजिश पर कोई लाइन नहीं है।

इस कल्पना करने के लिए, के C के विभिन्न मूल्यों के लिए समीकरण

ezplot('-log(x)-log(y)+x+y-C',[-10 10 -10 10]); 

साजिश करते हैं।

% choose a set of values between 5 and 2 
C = logspace(log10(5), log10(2), 20); 

% plot the equation with various values of C 
figure 
for ic=1:length(C) 
    ezplot(sprintf('-log(x)-log(y)+x+y-%f', C(ic)),[0 10 0 10]); 
    hold on 
end 
title('-log(x)-log(y)+x+y-C = 0, for 5 < C < 2'); 

enter image description here

ध्यान दें कि सबसे बड़ा वक्र C = 5 के लिए प्राप्त की है।चूंकि C का मान कम हो गया है, वक्र भी छोटा हो जाता है, जब तक C = 2 पर यह पूरी तरह से गायब हो जाता है।

6

अगर हम का उपयोग एम्बेड करने के लिए पर्याप्त प्रतिनिधि नहीं है है solve आपके फ़ंक्शन पर, हम देख सकते हैं कि दो अंक हैं जहां आपका कार्य शून्य के बराबर है। ये अंक, (1, 1) और (0.3203 + 1.3354i, pi)

syms x y 
result = solve(-log(x)-log(y)+x+y-2, x, y); 

result.x 
% -wrightOmega(log(1/pi) - 2 + pi*(1 - 1i)) 
%           1 

result.y 
% pi 
% 1 

पर हैं, तो हम आपकी समारोह को बारीकी से देखें हम चाहते हैं कि मान वास्तव में जटिल हैं देख सकते हैं

[x,y] = meshgrid(-10:0.01:10, -10:0.01:10); 
values = -log(x)-log(y)+x+y-2; 

whos values 
% Name   Size     Bytes Class  Attributes 
% values  2001x2001   64064016 double complex 

ऐसा लगता है MATLAB के पुराने संस्करणों में के रूप में यद्यपि, ezplot संभाला डेटा के घटक वास्तविक पर विचार करके जटिल कार्य। जैसे, इस निम्नलिखित साजिश

enter image description here

हालांकि प्राप्त होते हैं, नए संस्करणों के आंकड़ों के परिमाण पर विचार करने और शून्य केवल तब होगा जब दोनों वास्तविक और काल्पनिक घटक शून्य कर रहे हैं। दो बिंदुओं में से जहां यह सच है, इन बिंदुओं में से केवल एक वास्तविक है और इसे प्लॉट करने में सक्षम है; हालांकि, ezplot का अपेक्षाकृत मोटे नमूना उस बिंदु को प्रदर्शित करने में सक्षम नहीं है।

आप contourc इस्तेमाल कर सकते हैं इस बिंदु

imagesc(abs(values), 'XData', [-10 10], 'YData', [-10 10]); 
axis equal 
hold on 

cmat = contourc(abs(values), [0 0]); 
xvalues = xx(1, cmat(1,2:end)); 
yvalues = yy(cmat(2,2:end), 1); 

plot(xvalues, yvalues, 'r*') 

enter image description here

संबंधित मुद्दे