Ben örneğin, bazı integraller hesaplamak çalışıyorum bir çift sembolik ayrılmaz:Matlab
a = 1/sqrt(2);
b = -5;
c = 62;
d = 1;
f = exp(-x^2-y^2)*(erfc((sym(a) + 1/(x^2+y^2)*(sym(b)*x+sym(d)*y))*sqrt((x^2+y^2)*sym(10.^(c/10))))...
+ erfc((sym(a) - 1/(x^2+y^2)*(sym(b)*x+sym(d)*y))*sqrt((x^2+y^2)*sym(10.^(c/10)))));
h = int(int(f,x,-Inf,Inf),y,-Inf,Inf);
Böyle hatayı ortaya çıkar:
Uyarı: Açık ayrılmaz bulunamadı.
Sonra ben
vpa(int(int(f,x,-Inf,Inf),y,-Inf,Inf),5)
numeric::int(numeric::int(exp(- x^2 - y^2)*(erfc(((6807064429273519*x^2)/4294967296 + (6807064429273519*y^2)/4294967296)^(1/2)*(2^(1/2)/2 + (5*x - y)/(x^2 + y^2))) + erfc(((6807064429273519*x^2)/4294967296 + (6807064429273519*y^2)/4294967296)^(1/2)*(2^(1/2)/2 - (5*x - y)/(x^2 + y^2)))), x == -Inf..Inf), y == -Inf..Inf)
Zaten [-Inf,Inf]
[-100,100]
için sıklığını değiştirmek ve aynı yukarıdaki sonuca ulaşmaya çalıştığından ayrılmaz hesaplamak için vpa
kullanın ve böyle bir sonuç elde etmeye çalışmak:
numeric::int(numeric::int(exp(- x^2 - y^2)*(erfc(((6807064429273519*x^2)/4294967296 + (6807064429273519*y^2)/4294967296)^(1/2)*(2^(1/2)/2 + (5*x - y)/(x^2 + y^2))) + erfc(((6807064429273519*x^2)/4294967296 + (6807064429273519*y^2)/4294967296)^(1/2)*(2^(1/2)/2 - (5*x - y)/(x^2 + y^2)))), x == -100..100), y == -100..100)
Sorum şu anda bu durumda vpa
gerçek bir değere dönüşülemiyor? Matlab kodunun üstünde bir sorun var mı? (Ben, bugüne kadar bugünü bulamadık) Yardımlarınız için şimdiden teşekkür ederiz.
Yardımlarınız için çok teşekkür ederim. Ancak, daha fazla cevabınızı "Daha doğru değerler elde etmek için integral2 için daha küçük mutlak ve nispi toleranslar belirtebilirsiniz" cevabını açıklayabilir misiniz? Buradaki noktanı anlamadım. Sadece bir şey, örneğin, örneğin, c vektördür, yani, c = [50 52 54 56 58 60 62] (veya uzun bir vektör). "Integral2" yi nasıl kullanabiliriz? Çünkü zaten bir c vektörü için "integral2" yi arıyorum ve deneyin, ancak "integral2" nin bir vektörle çalışmadığı anlaşılıyor. –
Toleranslar gittikçe, "integral2" belgelerine bakın. Örneğin, örneğin, integral2 (f, -Inf, Inf, -Inf, Inf, 'AbsTol', 1e-10, 'RelTol', 1e-10) 'seçeneklerini belirtebilirsiniz. 'C' vektörünün neyi temsil ettiğini bilmiyorum. Sadece c 'deki her eleman için integrali çözmek ister misiniz? Öyleyse, o zaman sadece bir 'for' döngüsü kullanın. – horchler
Yardımlarınız için teşekkür ederiz. Yine de "for döngüsüne" bir çözüm getirdim. –