मैं एक समारोह getSlope जो 4 युगल मानकों और रिटर्न के रूप में लगता है विभाजित एक और डबल निम्नलिखित तरीके से इस दिए गए मापदंडों का उपयोग कर की गणना:अप्रत्याशित नुकसान जब युगल
double QSweep::getSlope(double a, double b, double c, double d){
double slope;
slope=(d-b)/(c-a);
return slope;
}
समस्या यह है कि जब इस कार्यप्रणाली को कॉल है उदाहरण के लिए तर्क के साथ:
getSlope(2.71156, -1.64161, 2.70413, -1.72219);
लौटे परिणाम है:
10.8557
और यह मेरे कंप्यूटेशंस के लिए एक अच्छा परिणाम नहीं है। मैं ढलान समान पैरामीटर के लिए ढाल के लिए मेथेमेटिका और परिणाम का उपयोग कर की गणना की है:
10.8452
या परिशुद्धता के लिए और अधिक अंकों के साथ:
10.845222072678331.
परिणाम मेरा कार्यक्रम द्वारा लौटाए अच्छा नहीं है मेरे आगे की गणना में। इसके अलावा, मुझे समझ में नहीं आता कि प्रोग्राम 10.8552220678331 से शुरू होने वाले 10.8557 को कैसे लौटाता है (मान लीजिए कि यह विभाजन के लिए अनुमानित परिणाम है)? मैं अपने विभाजन के लिए अच्छा परिणाम कैसे प्राप्त कर सकता हूं?
अग्रिम धन्यवाद, Madalina
मैं कमांड लाइन का उपयोग कर परिणाम मुद्रित:
std::cout<<slope<<endl;
हो सकता है कि मेरी मापदंडों शायद, अच्छा नहीं कर रहे हैं के रूप में मैं उन लोगों से पढ़ एक और प्रोग्राम (जो एक ग्राफ की गणना करता है; जब मैं अपने ग्राफ से इस पैरामीटर को पढ़ता हूं तो मैंने उन्हें अपने मूल्य को देखने के लिए प्रदर्शित किया है, लेकिन शायद प्रदर्शित वैक्टरों की गणना की गई गणना के लिए समान आंतरिक परिशुद्धता नहीं है .. मुझे नहीं पता कि यह वास्तव में अजीब है कुछ संख्यात्मक अल त्रुटियां प्रकट होती हैं ..)
जब ग्राफ से मैं अपने पैरामीटर पढ़ रहा हूं तो गणना की जाती है, सी ++ (टेम्पलेट्स के साथ) में लिखी गई कुछ संख्यात्मक पुस्तकालयों का उपयोग किया जाता है। इस गणना के लिए कोई ओपनजीएल का उपयोग नहीं किया जाता है।
धन्यवाद, Madalina
जांचें कि विधि को एएसएम में कैसे संकलित किया गया था। आप डीबगर में ऐसा कर सकते हैं मेरा मानना है (कम से कम दृश्य स्टूडियो में)। –
मेरी विंडोज़ कैल्क गणित के रूप में अच्छा परिणाम देता है: डी – klew
कौन सा कंपाइलर, कौन सा मंच? – peterchen