讓我們考慮一個二維fonction F(X,Y)
和樹分A,B,C與ABC三角形
,我想給函數˚F在三角形ABC,
整合 有沒有辦法在matlab中做到這一點?
謝謝。如何在MATLAB中對三角形進行集成?
回答
您可以創建一個新函數h(x,y)
,如果(x,y)
位於多邊形內,則返回f(x,y)
,否則返回0
。
例如:
A = [0, 0];
B = [0, 5];
C = [5, 0];
triangleX = [A(1) B(1) C(1)];
triangleY = [A(2) B(2) C(2)];
f = @(x,y) (1);
h = @(x,y) (inpolygon(x, y, triangleX, triangleY) .* f(x,y));
q = integral2(h, min(triangleX), max(triangleX), min(triangleY), max(triangleY)
'Method', 'iterated')
輸出(這可能是足夠接近你):
q =
12.500070877352647
而另一功能:
f = @(x,y) (x .* y);
q = integral2(@foo, min(triangleX), max(triangleX), min(triangleY), max(triangleY),
'Method', 'iterated')
q =
26.042038561947592
當對非矩形區域進行積分時,當ymin,ymax(或兩者)都是函數句柄時,會出現最佳性能和精度。避免 將被積函數值設置爲零,以整合非矩形區域。如果您必須這樣做,請指定「迭代」方法。
所以如果不是使用上述解決方案,你寫的給定的x
協調兩個功能,讓你的多邊形(三角形)的最小和最大y
座標它會更好。
謝謝你的建議+ Itay, 我正在使用三角形上的積分來計算矢量的元素。 當我用您的代碼的結果是緩慢 – user3870075
以及A = [0.7265 1.9468],B = [0.6930 2.0000]和C = [0.6617 1.9468] 它給我這樣的警告: 警告:最小步長大小 x附近達到= 1.94678。 可能有一個 奇點,或者對於這個問題公差可能太 。 警告:集成 不成功。 – user3870075
我發現了正確的答案, 由於這種https://math.stackexchange.com/questions/954409/double-integral-over-an-arbitrary-triangle
function r = intm2(f, t)
% f: function
% t: three points of a triangle
% r: integration of f over t
a = t(1,:);
b = t(2,:);
c = t(3,:);
jg = abs((b(1)-a(1))*(c(2)-a(2))-(c(1)-a(1))*(b(2)-a(2)));
ftilda = @(u,v) f(a(1)+u*(b(1)-a(1))+v*(c(1)-a(1)), a(2)+u*(b(2)-a(2))+v*(c(2)- a(2)));
fy = @(x) 1-x;
r = jg * integral2(ftilda, 0,1, 0,fy);
end
- 1. 在Matlab中生成三角形分佈
- 2. 如何在MATLAB中找到三角形的角度
- 3. 在MATLAB中對上三角矩陣進行一般導入
- 4. 在Matlab中獲取上三角形
- 5. 在圖像中旋轉三角形 - MATLAB
- 6. Java如何對Path2D進行三角化?
- 7. 在三角形的三角形中繪製三角形
- 8. 如何在MATLAB中的圖像中繪製三角形?
- 9. 如何在MATLAB中進行三維數據集的三維輪廓繪圖?
- 10. 如何將點變成三角形?
- 11. 如何從凹形Delaunay三角剖分中切出三角形?
- 12. 檢查點集三角形細分是一個三角形
- 13. 如何在MATLAB中創建三對角矩陣?
- 14. 如何在java中繪製三角形?
- 15. 如何在三角形中打印*?
- 16. 如何在QOpenGLWidget中渲染三角形?
- 17. 如何在asm中反轉三角形
- 18. 如何在XNA中選擇三角形?
- 19. Matlab中3D對象的三角剖分
- 20. 如何在C中打印二進制數字的三角形#
- 21. 使用matplotlib對多邊形進行三角剖分
- 22. Delaunay使用孔對二維多邊形進行三角剖分
- 23. 如何檢索三角形
- 24. 如何爲動態三維網格生成三角形數據
- 25. java中的鏡像三角形生成
- 26. 在程序集中打印星形三角形
- 27. 如何製作一個三角形漸變的Matlab矩陣?
- 28. 如何從一對立體圖像對三維點進行三角測量?
- 29. 中心三角形
- 30. 如何反轉直角三角形(JAVA)
我想要的答案是函數f(x,y)的 在三角形ABC的體積,用A =(A_X,A_y ),B =(B_x,B_y)和C =(C_x,C_y)。 – user3870075
並且函數f(x,y)並不總是等於1 – user3870075
請顯示您的代碼。 – thewaywewalk