lassen Sie uns einen zweidimensionalen fonction f betrachten (x, y)
und Baum Punkte A, B, C mit ABC ein Dreieck
und ich möchte die Funktion f über das Dreieck ABC integrieren,
gibt es eine Möglichkeit, das in Matlab zu tun?
danke.Wie integriert man ein Dreieck in MATLAB?
Antwort
Sie können eine neue Funktion h(x,y)
erstellen, die f(x,y)
zurückgibt, wenn sich (x,y)
innerhalb des Polygons befindet und andernfalls 0
.
Zum Beispiel:
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')
Ausgänge (die für Sie nah genug sein kann):
q =
12.500070877352647
Und eine weitere Funktion:
f = @(x,y) (x .* y);
q = integral2(@foo, min(triangleX), max(triangleX), min(triangleY), max(triangleY),
'Method', 'iterated')
q =
26.042038561947592
Beachten Sie, dass die integral2 documentation Zustände:
Wenn nonrectangular Regionen Integration über, die beste Leistung und Genauigkeit tritt auf, wenn ymin, ymax, (oder beides) sind Funktion behandelt. Vermeiden Sie , um Integrandfunktionswerte auf Null zu setzen, um sie über eine nicht-rechteckige Region zu integrieren. Wenn Sie dies tun müssen, geben Sie die Methode 'iterated' an.
So wird es besser sein, wenn stattdessen die obige Lösung verwenden, können Sie zwei Funktionen schreiben, die eine x
Koordinate gegeben, geben Sie die minimalen und maximalen y
Koordinaten des Polygons (Dreieck).
Vielen Dank für Sie Vorschlag + Itay, Ich bin die Integration über ein Dreieck, um die Elemente eines Vektors zu berechnen. Wenn ich Ihren Code verwendet, ist das Ergebnis langsam – user3870075
und für A = [0,7265 1,9468], B = [0,6930 2,0000] und C = [0,6617 1,9468] gibt es mir diese Warnung: Warnung: Minimale Schrittweite erreicht in der Nähe von x = 1,94678. Es kann eine Singularität geben, oder die Toleranzen können zu eng für dieses Problem sein. Warnung: Die Integration war nicht erfolgreich. – user3870075
fand ich die richtige Antwort, dank dieser 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. wie man diese Funktion in Matlab integriert
- 2. Verwandle ein Dreieck in ein anderes Dreieck
- 3. Wie man ein gezacktes Dreieck-Array umkehrt?
- 4. Zeichnen Sie ein Dreieck im 3D-Raum von Matlab
- 5. Wie zeichnet man ein Dreieck mit Path in Android?
- 6. Wie integriert man Webpack in ein Legacy-Struktur-Projekt?
- 7. Matlab: Wie definiert man ein dynamisches Zellen-Array in Matlab?
- 8. wie man hohle Dreieck in css
- 9. Wie integriert man HTML-Seiten in WordPress?
- 10. Wie integriert man JButtons in Grafiken?
- 11. Wie man Google Map integriert?
- 12. Wie man Swiftmailer in Angular2 integriert
- 13. Wie integriert man AsMock in AsUnit 4?
- 14. Wie man ACL in Symfony 3.0 integriert?
- 15. Wie integriert man jsplumb in vuejs?
- 16. Wie integriert man SIRI in iPhone App?
- 17. Wie integriert man Sikuli-Skripte in Selen?
- 18. Wie integriert man "flow" in webstorm?
- 19. Wie integriert man Skrill in CodeIgniter?
- 20. Wie integriert man OAuth2.0 Login in Elektron
- 21. Wie integriert man Barcodescanner in eine Website?
- 22. wie man Materialikonen in Opencart integriert
- 23. Wie man Text auf ein CSS-Dreieck setzt
- 24. CSS-Dreieck in einem Dreieck?
- 25. In Matlab, wie man ein Raster über ein Bild zeichnet
- 26. MATLAB: wie man ein Bild in ein anderes Bild umwandelt
- 27. Matlab: Wie man ein CDF-Array erstellt
- 28. Wie man Jenkins mit Selen integriert?
- 29. Wie integriert man SCORM 2.4 mit AS3?
- 30. Wie man RFID mit ERP integriert
die Antwort, die ich möchte, dass die Lautstärke der Funktion f (x, y) im Dreieck ABC, mit A = (a_x, a_y), B = (B_x, B_y) und C = (C_x, C_y). – user3870075
und auch die Funktion f (x, y) ist nicht immer gleich 1 – user3870075
Bitte zeigen Sie den Code, den Sie haben. – thewaywewalk