nnpc.net
当前位置:首页 >> 求高手用mAtlAB编程计算下面一个三重积分 >>

求高手用mAtlAB编程计算下面一个三重积分

我不清楚你说的简单的三次积分指的是什么方法,matlab进行三次积分的话常用的应该有符号积分和数值积分两种方式.数值积分的话用triplequad函数就好了,符号积分的话用嵌套int函数也可以实现.

format longR=27.9749e-3;fun=@(r,alpha)r.*(R-r.*cos(alpha)./(R^2+R^2-2*R*r.*cos(alpha)).^(3/2));a=quad2d(fun,16.129e-3,16.51e-3,0,2*pi)format short

mu=0.8;R=5;L=50;H=10;G=@(v,r,z)(4/pi*R^2*H)*exp((-mu*sqrt(r^2+L^2-2*r*L*cos(v)+z^2)/(r^2+L^2-2*r*L*cos(v)))*(r^2-r*L*cos(v)+sqrt((r*L*cos(v))^2-2*R^2*r*L*cos(v)-(L^2-R^2)*r^2+(L*R)^2))); Q = triplequad(G,0,pi,0,R,0,H/2);三重积分是应该用triplequad命令,不过你的函数可能解不出来.

符号积分>> syms x y z>> int(int(int(x+y+z,y,0,1-x-z),x,0,1-z),z,0,1)ans =1/8数值积分>> triplequad(@(x,y,z)(x+y+z).*(x+y+z<=1),0,1,0,1,0,1)ans = 0.1250

syms z p oint(int(int(p*z,z,p^2,4),p,0,2),o,0,2*pi)ans = (64*pi)/3

function jifen(a,b)%a b 为区间边界;syms x f=2*x+2;%设函数 n=(b-a)/0.01;%间距设为0.001;lie=linspace(a,b,n);%横坐标数列 s=1; for i=1:n-1 h=(subs(f,x,lie(i))+subs(f,x,lie(i+1)))/2; area(s)=0.001*h; s=s+1; end s sum(area) 这是本人编的积分程序,间距可调控制精度,不过有个缺点,如果区间太大,电脑慢的要死!!这是用分解梯形在求和的简单思想做的程序,思想肯定没错.

请给出题目,这是matlab的自带的例子 % Integrate over the region 0 <= x <= pi, 0 <= y <= 1, -1 <= z <= 1:integrnd = @(x,y,z) y.*six(x)+z.*cos(x);Q = triplequad(integrnd, 0, pi, 0, 1, -1, 1)

syms x y zf = y * sin(x) + z * cos(x);int1 = int(f,z, z_1, z_2); % z_1, z_2 分别为z的上下限int2 = int(int1, y, y_1, y_2); % y_1, y_2 分别为y的上下限int_f = int(int2, x, x_1, x_2); % x_1, x_2 分别为x的上下限

syms x y z F2=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2); VF2=vpa(F2) VF2 =224.92153573331143159790710032805 迈特莱博

syms x y zint(int(int(' y*sin(x)+z*cos(x)',x,0,pi),y,0,1),z,-1,1)结果:ans =2

网站首页 | 网站地图
All rights reserved Powered by www.nnpc.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com