كيف يمكنني كتابة الكود الصحيح لحل المعادلة في لغة C


Help me write a program in C that will fit the values of k into the equation.

الصيغة = 5/1+ك + 9/2+ك + 13/3+ك + 17/4+ك -16

The value of k can be negative and an integer; in the case of the above selection method, the result should come out to 0.250000000.

ما حاولت:

I tried giving k an initially negative value, and using a loop to add 0.000001 at a time, but for some reason I don’t get the correct value when k is negative or not an integer

الحل 1

لا أعتقد أنك تكتب ذلك بشكل صحيح. ألا ينبغي أن تكون 5/(1+k) + 9/(2+k)… مع وجود قوسين حول كل حد مقام؟ هذه التفاصيل مهمة جدًا جدًا. أود أن أضيف قوسين حول كل مصطلح تم تلخيصه حتى لا تضطر إلى الاعتماد على تفسير قائمة الأسبقية.

سأجرب أولاً طريقة نيوتن-رافسون كما هو موضح في: أدوات البحث عن جذر كثيرات الحدود السريعة والمستقرة – الجزء الثاني[^] على الرغم من أنني لست متأكدا من أنها ستعمل على هذه المعادلة.

إذا لم ينجح ذلك، يمكنك تجربة أسلوب البحث الثنائي. حاول أولاً تجربة سلسلة من القيم للعثور على رقمين حيث تعطي إجابة واحدة نتيجة أعلى من الصفر والإجابة التالية تعطي نتيجة أقل من الصفر، أو العكس. ثم تحاول الحصول على نتيجة في منتصف هذين الاثنين ثم تستمر بعد ذلك في تجربة القيمة الوسطى بين اثنين آخرين حتى تحصل على إجابة في حدود احتمالك، كما هو موضح في ردي السابق. في سؤالك السابق، قمت بتجربة قيم متتالية بين -10000 و10000، إذا كنت أتذكر بشكل صحيح. يمكنك تجربة هذه الطريقة مع التخمينين الأوليين. إذا أعطوا نتائج بإشارات معاكسة، فهذه تخمينات أولية معقولة. ثم استمر في تجربة القيمة الوسطى بين التخمينات.

مفتاح هذا النهج هو اختيار القيمة الصحيحة للتحقق منها بعد ذلك. ما أعنيه هو أنه إذا تمت تجربة -10000 و10000 أولاً وكانت النتائج ذات علامات متعاكسة، فجرب 0 بعد ذلك. ستحدد نتيجة التحقق من 0 القيمة التي ستحاولها بعد ذلك. على سبيل المثال، لنفترض أن نتيجة التحقق -10000 سلبية ونتيجة 10000 إيجابية ثم التحقق من 0 بعد ذلك. إذا كانت القيمة عند الصفر سالبة، فجرب +5000 بعد ذلك. إذا كانت القيمة عند الصفر موجبة، فجرّب -5000 بعد ذلك، واستمر في تقسيم الفرق بهذه الطريقة حتى تحصل على النتيجة.

コメント

タイトルとURLをコピーしました