الاستيفاء ثلاثي الخطوط

الاستيفاء الثلاثي الخطي هو استيفاء ثنائي الخطية متبوع باستيفاء خطي.

الاستيفاء ثلاثي الخطوط هو طريقة للاستيفاء متعدد المتغيرات على شبكة منتظمة ثلاثية الأبعاد . وهو يُقارب قيمة دالة عند نقطة وسيطة(x،y،z){\displaystyle (x,y,z)}يتم حساب الاستيفاء الخطي الثلاثي داخل الموشور المستطيل المحوري المحلي باستخدام بيانات الدالة على نقاط الشبكة. ويُستخدم هذا النوع من الاستيفاء بكثرة في التحليل العددي ، وتحليل البيانات ، ورسومات الحاسوب .

الاستيفاء ثلاثي الخطوط هو امتداد للاستيفاء الخطي ، والذي يعمل في فضاءات ذات أبعادد=1{\displaystyle D=1}والاستيفاء الثنائي الخطي ، الذي يعمل مع بُعدد=2{\displaystyle D=2}، لتحديد الأبعادد=3{\displaystyle D=3}تستخدم جميع مخططات الاستيفاء هذه كثيرات حدود من الدرجة الأولى، مما يعطي دقة من الدرجة الثانية، ويتطلب ذلك2د=8{\displaystyle 2^{D}=8}القيم المجاورة المحددة مسبقًا المحيطة بنقطة الاستيفاء. توجد عدة طرق للوصول إلى الاستيفاء ثلاثي الخطوط، وهو مكافئ لاستيفاء B-spline ثلاثي الأبعاد من الدرجة الأولى، كما أن عامل الاستيفاء ثلاثي الخطوط هو أيضًا حاصل ضرب موتر لثلاثة عوامل استيفاء خطي.

بالنسبة للشبكة العشوائية غير المنظمة (كما هو مستخدم في تحليل العناصر المحدودة )، يجب استخدام طرق أخرى للاستيفاء؛ إذا كانت جميع عناصر الشبكة عبارة عن رباعيات الأوجه ( مجسمات ثلاثية الأبعاد )، فإن الإحداثيات المركزية توفر إجراءً مباشرًا.

التركيبة

ثماني نقاط زاوية على مكعب يحيط بنقطة الاستيفاء C

في شبكة دورية ومكعبة، نريد القيمة عندx{\displaystyle x}،y{\displaystyle y}،z{\displaystyle z}في الحالة العامة، كل إحداثية (على سبيل المثال،x{\displaystyle x}) لا يقع بالضبط عند نقطة شبكية، بل على مسافة ما بين نقطة شبكية وأخرى.x0{\displaystyle x_{\text{0}}}ثم التالي،x1{\displaystyle x_{\text{1}}}. يتركxد{\displaystyle x_{\text{d}}}لتكن تلك المسافة الجزئية بعيدًا عن نقطة الشبكة السفلية: x-x0x1-x0{\displaystyle {\frac {x-x_{0}}{x_{1}-x_{0}}}}اتبع نهجًا مشابهًا للإحداثيات الأخرى:

xد=x-x0x1-x0yد=y-y0y1-y0zد=z-z0z1-z0{\displaystyle {\begin{aligned}x_{\text{d}}={\frac {x-x_{0}}{x_{1}-x_{0}}}\\y_{\text{d}}={\frac {y-y_{0}}{y_{1}-y_{0}}}\\z_{\text{d}}={\frac {z-z_{0}}{z_{1}-z_{0}}}\end{aligned}}}

يقوم الأول بالاستيفاء على طولx{\displaystyle x}(تخيل أن المرء "يدفع" وجه المكعب المحدد بواسطةج0جك{\displaystyle C_{0jk}}للوجه المقابل، المحدد بواسطةج1جك{\displaystyle C_{1jk}}), مما يعطي:

ج٠٠=ج٠٠٠(1-xد)+ج100xدج01=ج001(1-xد)+ج101xدج10=ج010(1-xد)+ج110xدج11=ج011(1-xد)+ج111xد\begin{aligned}c_{00}=c_{000}(1-x_{\text{d}})+c_{100}x_{\text{d}}\\c_{01}=c_{001}(1-x_{\text{d}})+c_{101}x_{\text{d}}\\c_{10}=c_{010}(1-x_{\text{d}})+c_{110}x_{\text{d}}\\c_{11}=c_{011}(1-x_{\text{d}})+c_{111}x_{\text{d}}\end{aligned}}}

أينج٠٠٠{\displaystyle c_{000}}يعني قيمة الدالة لـ(x0،y0،z0).{\displaystyle (x_{0},y_{0},z_{0}).}ثم يتم استكمال هذه القيم (على طولy{\displaystyle y}، "الدفع" منجأنا0ك{\displaystyle C_{i0k}}لجأنا1ك{\displaystyle C_{i1k}}), مما يعطي:

ج0=ج٠٠(1-yد)+ج10yدج1=ج01(1-yد)+ج11yد{\displaystyle {\begin{aligned}c_{0}&=c_{00}(1-y_{\text{d}})+c_{10}y_{\text{d}}\\c_{1}&=c_{01}(1-y_{\text{d}})+c_{11}y_{\text{d}}\end{aligned}}}

وأخيرًا، يتم استكمال هذه القيم على طولz{\displaystyle z}(السير عبر صف):

ج=ج0(1-zد)+ج1zد.{\displaystyle c=c_{0}(1-z_{\text{d}})+c_{1}z_{\text{d}}.}

وهذا يعطي قيمة متوقعة للنقطة، والتي يمكن كتابتها أيضًا على النحو التالي:ج=ج٠٠٠(1-xد)(1-yد)(1-zد)+ج100xد(1-yد)(1-zد)+ج010(1-xد)yد(1-zد)+ج110xدyد(1-zد)+ج001(1-xد)(1-yد)zد+ج101xد(1-yد)zد+ج011(1-xد)yدzد+ج111xدyدzد{\displaystyle {\begin{aligned}c&=c_{000}(1-x_{d})(1-y_{d})(1-z_{d})\\&\quad +c_{100}\,x_{d}(1-y_{d})(1-z_{d})\\&\quad +c_{010}(1-x_{d})\,y_{d}(1-z_{d})\\&\quad +c_{110}\,x_{d}\,y_{d}(1-z_{d})\\&\quad +c_{001}(1-x_{d})(1-y_{d})\,z_{d}\\&\quad +c_{101}\,x_{d}(1-y_{d})\,z_{d}\\&\quad +c_{011}(1-x_{d})\,y_{d}\,z_{d}\\&\quad +c_{111}\,x_{d}\,y_{d}\,z_{d}\end{aligned}}}

وهذا يوضح أن نتيجة الاستيفاء ثلاثي الخطوط مستقلة عن ترتيب خطوات الاستيفاء على طول المحاور الثلاثة: أي ترتيب آخر، على سبيل المثال على طولy{\displaystyle y}ثم على طولz{\displaystyle z}وأخيراً على طولx{\displaystyle x}، ينتج نفس القيمة.

تصور الخوارزمية

تمثيل هندسي للاستيفاء ثلاثي الخطوط. حاصل ضرب القيمة عند النقطة المطلوبة في الحجم الكلي يساوي مجموع حاصل ضرب القيمة عند كل زاوية في الحجم الجزئي المقابل قطريًا لتلك الزاوية.

يمكن تصور العمليات المذكورة أعلاه على النحو التالي: أولاً، نجد الزوايا الثمانية لمكعب يحيط بنقطة اهتمامنا. هذه الزوايا لها القيم التالية:ج٠٠٠{\displaystyle c_{000}}،ج100{\displaystyle c_{100}}،ج010{\displaystyle c_{010}}،ج110{\displaystyle c_{110}}،ج001{\displaystyle c_{001}}،ج101{\displaystyle c_{101}}،ج011{\displaystyle c_{011}}،ج111{\displaystyle c_{111}}.

بعد ذلك، نقوم بإجراء استيفاء خطي بينج٠٠٠{\displaystyle c_{000}}وج100{\displaystyle c_{100}}للعثورج٠٠{\displaystyle c_{00}}،ج001{\displaystyle c_{001}}وج101{\displaystyle c_{101}}للعثورج01{\displaystyle c_{01}}،ج011{\displaystyle c_{011}}وج111{\displaystyle c_{111}}للعثورج11{\displaystyle c_{11}}،ج010{\displaystyle c_{010}}وج110{\displaystyle c_{110}}للعثورج10{\displaystyle c_{10}}.

والآن نقوم بعملية الاستيفاء بينج٠٠{\displaystyle c_{00}}وج10{\displaystyle c_{10}}للعثورج0{\displaystyle c_{0}}،ج01{\displaystyle c_{01}}وج11{\displaystyle c_{11}}للعثورج1{\displaystyle c_{1}}وأخيرًا، نحسب القيمةج{\displaystyle c}عن طريق الاستيفاء الخطي لـج0{\displaystyle c_{0}}وج1{\displaystyle c_{1}}

من الناحية العملية، فإن الاستيفاء الثلاثي الخطي هو نفسه الاستيفاء الثنائي الخطي المزدوج مع الاستيفاء الخطي:

جل(ب(ج٠٠٠،ج010،ج100،ج110)،ب(ج001،ج011،ج101،ج111)){\displaystyle c\approx l\left(b(c_{000},c_{010},c_{100},c_{110}),\,b(c_{001},c_{011},c_{101},c_{111})\right)}

خوارزمية بديلة

هناك طريقة بديلة لكتابة حل مسألة الاستيفاء وهي

و(x،y،z)أ0+أ1x+أ2y+أ3z+أ4xy+أ5xz+أ6yz+أ7xyz{\displaystyle f(x,y,z)\approx a_{0}+a_{1}x+a_{2}y+a_{3}z+a_{4}xy+a_{5}xz+a_{6}yz+a_{7}xyz}

حيث يتم إيجاد المعاملات عن طريق حل النظام الخطي

[1x0y0z0x0y0x0z0y0z0x0y0z01x1y0z0x1y0x1z0y0z0x1y0z01x0y1z0x0y1x0z0y1z0x0y1z01x1y1z0x1y1x1z0y1z0x1y1z01x0y0z1x0y0x0z1y0z1x0y0z11x1y0z1x1y0x1z1y0z1x1y0z11x0y1z1x0y1x0z1y1z1x0y1z11x1y1z1x1y1x1z1y1z1x1y1z1][أ0أ1أ2أ3أ4أ5أ6أ7]=[ج٠٠٠ج100ج010ج110ج001ج101ج011ج111]،{\displaystyle {\begin{aligned}{\begin{bmatrix}1&x_{0}&y_{0}&z_{0}&x_{0}y_{0}&x_{0}z_{0}&y_{0}z_{0}&x_{0}y_{0}z_{0}\\1&x_{1}&y_{0}&z_{0}&x_{1}y_{0}&x_{1}z_{0}&y_{0}z_{0}&x_{1}y_{0}z_{0}\\1&x_{0}&y_{1}&z_{0}&x_{0}y_{1}&x_{0}z_{0}&y_{1}z_{0}&x_{0}y_{1}z_{0}\\1&x_{1}&y_{1}&z_{0}&x_{1}y_{1}&x_{1}z_{0}&y_{1}z_{0}&x_{1}y_{1}z_{0}\\1&x_{0}&y_{0}&z_{1}&x_{0}y_{0}&x_{0}z_{1}&y_{0}z_{1}&x_{0}y_{0}z_{1}\\1&x_{1}&y_{0}&z_{1}&x_{1}y_{0}&x_{1}z_{1}&y_{0}z_{1}&x_{1}y_{0}z_{1}\\1&x_{0}&y_{1}&z_{1}&x_{0}y_{1}&x_{0}z_{1}&y_{1}z_{1}&x_{0}y_{1}z_{1}\\1&x_{1}&y_{1}&z_{1}&x_{1}y_{1}&x_{1}z_{1}&y_{1}z_{1}&x_{1}y_{1}z_{1}\end{bmatrix}}{\begin{bmatrix}a_{0}\\a_{1}\\a_{2}\\a_{3}\\a_{4}\\a_{5}\\a_{6}\\a_{7}\end{bmatrix}}={\begin{bmatrix}c_{000}\\c_{100}\\c_{010}\\c_{110}\\c_{001}\\c_{101}\\c_{011}\\c_{111}\end{bmatrix}},\end{aligned}}}

مما يؤدي إلى النتيجة

أ0=-ج٠٠٠x1y1z1+ج001x1y1z0+ج010x1y0z1-ج011x1y0z0(x0-x1)(y0-y1)(z0-z1)+ج100x0y1z1-ج101x0y1z0-ج110x0y0z1+ج111x0y0z0(x0-x1)(y0-y1)(z0-z1)،أ1=ج٠٠٠y1z1-ج001y1z0-ج010y0z1+ج011y0z0(x0-x1)(y0-y1)(z0-z1)+-ج100y1z1+ج101y1z0+ج110y0z1-ج111y0z0(x0-x1)(y0-y1)(z0-z1)،أ2=ج٠٠٠x1z1-ج001x1z0-ج010x1z1+ج011x1z0(x0-x1)(y0-y1)(z0-z1)+-ج100x0z1+ج101x0z0+ج110x0z1-ج111x0z0(x0-x1)(y0-y1)(z0-z1)،أ3=ج٠٠٠x1y1-ج001x1y1-ج010x1y0+ج011x1y0(x0-x1)(y0-y1)(z0-z1)+-ج100x0y1+ج101x0y1+ج110x0y0-ج111x0y0(x0-x1)(y0-y1)(z0-z1)،أ4=-ج٠٠٠z1+ج001z0+ج010z1-ج011z0+ج100z1-ج101z0-ج110z1+ج111z0(x0-x1)(y0-y1)(z0-z1)،أ5=-ج٠٠٠y1+ج001y1+ج010y0-ج011y0+ج100y1-ج101y1-ج110y0+ج111y0(x0-x1)(y0-y1)(z0-z1)،أ6=-ج٠٠٠x1+ج001x1+ج010x1-ج011x1+ج100x0-ج101x0-ج110x0+ج111x0(x0-x1)(y0-y1)(z0-z1)،أ7=ج٠٠٠-ج001-ج010+ج011-ج100+ج101+ج110-ج111(x0-x1)(y0-y1)(z0-z1).{\displaystyle {\begin{aligned}a_{0}={}&{\frac {-c_{000}x_{1}y_{1}z_{1}+c_{001}x_{1}y_{1}z_{0}+c_{010}x_{1}y_{0}z_{1}-c_{011}x_{1}y_{0}z_{0}}{(x_{0}-x_{1})(y_{0}-y_{1})(z_{0}-z_{1})}}+{}\\&{\frac {c_{100}x_{0}y_{1}z_{1}-c_{101}x_{0}y_{1}z_{0}-c_{110}x_{0}y_{0}z_{1}+c_{111}x_{0}y_{0}z_{0}}{(x_{0}-x_{1})(y_{0}-y_{1})(z_{0}-z_{1})}},\\[4pt]a_{1}={}&{\frac {c_{000}y_{1}z_{1}-c_{001}y_{1}z_{0}-c_{010}y_{0}z_{1}+c_{011}y_{0}z_{0}}{(x_{0}-x_{1})(y_{0}-y_{1})(z_{0}-z_{1})}}+{}\\&{\frac {-c_{100}y_{1}z_{1}+c_{101}y_{1}z_{0}+c_{110}y_{0}z_{1}-c_{111}y_{0}z_{0}}{(x_{0}-x_{1})(y_{0}-y_{1})(z_{0}-z_{1})}},\\[4pt]a_{2}={}&{\frac {c_{000}x_{1}z_{1}-c_{001}x_{1}z_{0}-c_{010}x_{1}z_{1}+c_{011}x_{1}z_{0}}{(x_{0}-x_{1})(y_{0}-y_{1})(z_{0}-z_{1})}}+{}\\&{\frac {-c_{100}x_{0}z_{1}+c_{101}x_{0}z_{0}+c_{110}x_{0}z_{1}-c_{111}x_{0}z_{0}}{(x_{0}-x_{1})(y_{0}-y_{1})(z_{0}-z_{1})}},\\[4pt]a_{3}={}&{\frac {c_{000}x_{1}y_{1}-c_{001}x_{1}y_{1}-c_{010}x_{1}y_{0}+c_{011}x_{1}y_{0}}{(x_{0}-x_{1})(y_{0}-y_{1})(z_{0}-z_{1})}}+{}\\&{\frac {-c_{100}x_{0}y_{1}+c_{101}x_{0}y_{1}+c_{110}x_{0}y_{0}-c_{111}x_{0}y_{0}}{(x_{0}-x_{1})(y_{0}-y_{1})(z_{0}-z_{1})}},\\[4pt]a_{4}={}&{\frac {-c_{000}z_{1}+c_{001}z_{0}+c_{010}z_{1}-c_{011}z_{0}+c_{100}z_{1}-c_{101}z_{0}-c_{110}z_{1}+c_{111}z_{0}}{(x_{0}-x_{1})(y_{0}-y_{1})(z_{0}-z_{1})}},\\[4pt]a_{5}=&{\frac {-c_{000}y_{1}+c_{001}y_{1}+c_{010}y_{0}-c_{011}y_{0}+c_{100}y_{1}-c_{101}y_{1}-c_{110}y_{0}+c_{111}y_{0}}{(x_{0}-x_{1})(y_{0}-y_{1})(z_{0}-z_{1})}},\\[4pt]a_{6}={}&{\frac {-c_{000}x_{1}+c_{001}x_{1}+c_{010}x_{1}-c_{011}x_{1}+c_{100}x_{0}-c_{101}x_{0}-c_{110}x_{0}+c_{111}x_{0}}{(x_{0}-x_{1})(y_{0}-y_{1})(z_{0}-z_{1})}},\\[4pt]a_{7}={}&{\frac {c_{000}-c_{001}-c_{010}+c_{011}-c_{100}+c_{101}+c_{110}-c_{111}}{(x_{0}-x_{1})(y_{0}-y_{1})(z_{0}-z_{1})}}.\end{aligned}}}

انظر أيضاً

  • يصف الكود الزائف من وكالة ناسا عملية استيفاء ثلاثي الخطوط عكسي تكراري (بإعطاء الرؤوس وقيمة C، أوجد Xd و Yd و Zd).
  • بول بورك، طرق الاستيفاء ، 1999. يحتوي على طريقة ذكية وبسيطة للغاية لإيجاد الاستيفاء ثلاثي الخطوط الذي يعتمد على المنطق الثنائي ويمكن توسيعه إلى أي بُعد (رباعي الخطوط، خماسي الخطوط، ...).
  • كينرايت، تشوه رباعي الأوجه ذو الشكل الحر. الندوة الدولية للحوسبة المرئية. دار نشر سبرينغر الدولية، 2015.