點聲源疊加模擬無限大障板活塞輻射 求指向型
圓形活塞所以使用極座標進行計算 只是為求指向型 可以忽略常係數
周長2*pi*r隨r擴充套件 所以針對不同半徑 點聲源個數與r成線性關係
數值求解與解析公式作圖對比
將平面指向型轉化為空間指向型
據我所知 matlab中無之間繪製球座標函式 於是轉化為直角座標後畫出
歡迎指正
clear all;close all;
f=20000;
w=f*2*pi; %頻率
k=w/343; %波數
a=0.05; %活塞半徑
r=10; %遠場距離
theta=(-90:0.5:90)*pi/180; %方向性
r=a/20:a/20:a ;%半徑
sum=zeros(1,length(theta));
sum1=zeros(1,length(theta));
for i=1:length(theta)
h=r;
sum(i)=sum(i)+w/h*exp(-1j*k*h);%中心位置
sum1(i)=sum(i);
for j=1:length(r)
l=j*80;
for n=1:l %迴圈個數 一圈內的個數
%不近似
h=sqrt(r*r+r(j)*r(j)-2*r*r(j)*sin(theta(i))*cos(n*2*pi/l));
sum(i)=sum(i)+w/h*exp(-1j*k*h);
%近似h1=r-r(j)*sin(theta(i))*cos(n*2*pi/l);
sum1(i)=sum(i)+w/r*exp(-1j*k*h);
endend
endsum=abs(sum);
sum=sum/max(sum);%歸一化
sum1=abs(sum1);
sum1=sum1/max(sum1);
figure
plot(theta,sum,'b');title('不近似')
plot(theta,sum1,'r');title('近似')
legend('不近似','近似');
figure
% subplot(1,2,1)
plot(theta,sum,'b');
hold on
d=zeros(1,length(theta));
for i=1:length(theta) %公式求解
d(i)=abs(2*besselj(1,k*a*sin(theta(i)))/(k*a*sin(theta(i))));
end% subplot(1,2,2)
plot(theta,d,'r');title('對比')
hold off
legend('疊加模擬','公式計算');
figure
% subplot(1,2,1)
polar(theta,sum,'b');
hold on
% subplot(1,2,2)
polar(theta,d,'r');title('極座標對比')
hold off
legend('疊加模擬','公式計算');
x=cos(theta)'*theta;%為2維旋轉成3維 生成座標
y=sin(theta)'*theta;
% figure %公式的二維旋轉
% surf(x,y,repmat(d,length(t),1));
% shading interp
figure
surf(x,y,repmat(sum,length(theta),1));
shading interp
% plot(cos(theta).*sum,sin(theta).*sum);%直角座標轉為極座標
figure%旋轉極座標圖 畫出
模擬 無限序列
題目描述 我們按以下方式產生序列 1 開始時序列是 1 2 每一次變化把序列中的 1 變成 10 0 變成 1 經過無限次變化,我們得到序列 1011010110110101101 總共有 q 個詢問,每次詢問為 在區間a和b之間有多少個1。任務 寫乙個程式回答q個詢問 輸入 第一行為乙個整數q,後...
CCF模擬 無線網路
無線網路 時間限制 1.0s 記憶體限制 256.0mb 問題描述 目前在乙個很大的平面房間裡有 n 個無線路由器,每個無線路由器都固定在某個點上。任何兩個無線路由器只要距離不超過 r 就能互相建立網路連線。除此以外,另有 m 個可以擺放無線路由器的位置。你可以在這些位置中選擇至多 k 個增設新的路...
2018 3 17 模擬賽 1 無限序列
我們按以下方式產生序列 1 開始時序列是 1 2 每一次變化把序列中的 1 變成 10 0 變成 1 經過無限次變化,我們得到序列 1011010110110101101 然後詢問q次,求a到b之間1的個數 首先,觀察一波 序列的變化為 1 10 101 10110 10110101 然後,我們發現...