Matlab Pde Toolbox: พล็อตโซลูชันในบรรทัดหรือบน submanifold


9

ฉันกำลังใช้กล่องเครื่องมือ Matlab pde เพื่อแก้สมการรูปไข่ใน 2D

การแก้ปัญหานั้นใช้ได้แม้ว่าฉันจะต้องพล็อตมันตามเส้นที่กำหนดนั่นก็คือการตัดชิ้นส่วนภาพถ่ายจากตาข่าย 3D แทนการแก้ปัญหา

ฉันไม่สามารถหาวิธีที่เกี่ยวข้องกับฟังก์ชั่นกล่องเครื่องมืออย่างชาญฉลาด (เช่นไม่เกี่ยวข้องกับการแก้ไขระดับต่ำในตาข่ายสามเหลี่ยม)

ความช่วยเหลือใด ๆ ชื่นชม

คำตอบ:


3

ผมโพสต์คำถามเดียวกันในMATLAB กลางและบิลกรีนให้ความกรุณาคำตอบ

ฉันรายงานสั้น ๆ และขยายเพื่อให้ผู้อื่นได้รับประโยชน์

โซลูชันโดย Bill:

นี่เป็นวิธีหนึ่งในการสร้างพล็อตดังกล่าว สมมติว่าคุณมีเมทริกซ์จุดที่สร้างโดย PDE Toolbox mesher, p และเวกเตอร์โซลูชัน, u ฟังก์ชั่นด้านล่างจะสร้างพล็อตของโซลูชันนั้นตามบรรทัดที่กำหนดโดยตำแหน่ง x และ y ของจุดปลายทั้งสอง ตัวอย่างของฉันสำหรับวิธีแก้ปัญหาในหน่วยสี่เหลี่ยมและฉันต้องการพล็อตตามเส้น (0, .5) ถึง (1, .5) ฉันต้องการที่จะรวม 25 คะแนนในพล็อต อย่างที่คุณเห็นการทำงานจริงของTriScatteredInterpฟังก์ชั่นนั้นเกิดจากการทำงานของคอร์ MATLAB

plotAlongLine(p, u, [0,.5], [1,.5], 25);

function plotAlongLine(p, u, xy1, xy2, numpts)
    x = linspace(xy1(1),xy2(1),numpts);
    y = linspace(xy1(2),xy2(2),numpts);
    F = TriScatteredInterp(p(1,:)', p(2,:)', u);
    uxy = F(x,y);
    figure; plot(x, uxy);  //REM: x is chosen here as a curvilinear coordinate
end

ฉันต้องการที่จะกล่าวเพิ่มเติมว่าฟังก์ชั่นก่อนหน้านี้ช่วยให้หนึ่งในการวางแผนการแก้ปัญหาuหรือฟังก์ชั่นที่f(u)ให้uไว้จะถูกกำหนดบนโหนดโหนด (ตามปกติจะเกิดขึ้นสำหรับการแก้ปัญหาโดยประมาณ FEM)

หากหนึ่งในความต้องการส่วนพล็อตของฟังก์ชั่นกำหนดไว้ในศูนย์ตาข่าย (ฟังก์ชั่นเช่นของgrad u) เธออาจจะใช้ล่วงหน้าฟังก์ชั่นpdeprtniซึ่งเป็นผู้ผลิตโหนดมูลค่าฟังก์ชั่นออกมาจากศูนย์มูลค่าฟังก์ชั่น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.