سؤال

ما هي الطريقة المعتادة أو الخوارزمية المستخدمة لرسم المعادلات الضمنية من 2 متغيرات؟

أنا أتحدث عن المعادلات مثل،

SIN (X * Y) * Y = 20

X * X - Y * Y = 1

إلخ.

لا أحد يعرف كيف القيقب أو ماتلاب يفعل هذا؟ لغتي الهدف هي C #.

تشكرات!

هل كانت مفيدة؟

المحلول

طريقة واحدة للقيام بذلك هي عينة الوظيفة على شبكة منتظمة ثنائية الأبعاد. ثم يمكنك تشغيل خوارزمية مثل الساحات المسيرة على الشبكة 2D الناتجة لرسم ملامح ISO.

في سؤال ذي صلة، يرتبط شخص ما أيضا برمز المصدر GNUPLOT. إنه معقد إلى حد ما، ولكن قد يكون يستحق المرور. يمكنك العثور عليها هنا: http://www.gnuplot.info/

نصائح أخرى

تكرار قيمة x عبر النطاق الذي تريد مؤامرة. لكل قيمة ثابتة من X، حل المعادلة عدديا باستخدام طريقة مثل التوقعات الفاصلة أو ال طريقة نيوتن رافسون (التي يمكنك حساب المشتقات باستخدام التمايز الضمني، أو ربما تميز عدديا). هذا سوف يمنحك القيمة المقابلة لل y لاجل منحه x. وبعد في معظم الحالات، لن تحتاج إلى الكثير من التكرارات للحصول على جدا نتيجة دقيقة، وهي فعالة للغاية على أي حال.

لاحظ أنك ستحتاج إلى تحويل المعادلة إلى النموذج f(x) = 0, ، على الرغم من أن هذا هو دائما تافهة. الشيء الجميل في هذه الطريقة هو أنه يعمل تماما وكذلك في الاتجاه الآخر (أي أخذ مجموعة ثابتة من y والحوسبة x لكل قيمة).

هناك طرق متعددة. وكلت أسهل الخوارزمية التي يمكنني العثور عليها هنا:https://homepages.warwick.ac.ac.uk/staff/stavid.tall/pdfs/dot1986b-implicit-fns.pdf. ويصف ما وصفه Noldorin.

الأكثر تعقيدا، ويبدو أنه الشخص الذي يمكن أن يحل فيه بالفعل الكثير من الحالات الخاصة الموصوفة هنا:https://academic.up.com/comjnl/article/33/5/402/480353.

أظن،

في matlab كنت تعطي مجموعة كمدخلات ل x.

ثم لكل X، فإنه يحسب ذ.

ثم توجه خط من x0، y0 إلى x1، y1

ثم توجه خط من x1، y1 إلى x2، y2

...

...

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top