matlab符号积分计算很慢,三重积分使用定义用数值计算,for循环太多速度太慢,怎......

对一个函数进行三重积分,函数在附件中。

在球坐标系中对这个式子积分,按照剖分定义不断叠加for循环,因剖分次数太多,所以电脑一直出不来结果。想利用矩阵化代替for,写了以后出现了问题。贴出原程序和矩阵化以后的程序,想请大家帮我看看下一步要怎么进行。clear

clc

bx=0;by=0;

b_x=0.05;b_y=0.05;

Nx=49;Ny=49;

f1=1200;

lamda1=340/f1;

k1=2*pi/lamda1;

f2=1e9;

lamda2=3e8/f2;

k2=2*pi/lamda2;

Pt=1000;%w

Pt0=10*log(Pt);

thetav=0.75*pi/180;%天线波束宽度

ge=40;%dB,增益

A0=1;

Z0=A0^2/(4*pi*Pt*ge);%阻抗

%%%%%%%%%%%%%%%环境因子

T=288.15;  %K

e=10.02;   %hpa

P=1013.25;  %hpa

W=10000;      % w   功率

rho_0=1.29; % Kg/m^3   空气密度

c_0=331.6+0.6*15.15;    % 声音速度  温度15.15摄氏度

r_0=5*10^(-3);          % 单个声源半径

A=5*10^(-4);            % 声波传播路径上的衰减

%%%%%%%%%%%%%%%%

theta2=linspace(2*pi/180,179*pi/180,300);%散射角

% theta2=[179*pi/180,119*pi/180,59*pi/180,9*pi/180];

H0=10;%不均匀体内参考点高度

distance=2*H0./tan(theta2/2);%距离

R0=(distance/2)./cos(theta2/2);%波传播“标准路径”

gama=(distance/2)/(2*R0);

radius=R0*thetav/(4*sin(2*gama));%球域的半径

H=H0+radius;%球中心与坐标原点的距离

Z=radius./H;

fei1=linspace(0,2*pi,200);

%%%%%%%%%%%%%%%%

h=2*pi/200;

F=zeros(1,300);

E01=zeros(1,300);

Q1=[];

Q2=[];

Q3=[];

Q4=[];

G=[];

for m=1:length(theta2)

theta1=linspace(0,asin(Z(m)),200);

g=asin(Z(m))/20

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值