2013-12-12 40 views
0

我非常懷疑我的代碼對於我的這個任務是正確的。下面簡要介紹一些matlab語法的任務,但不要將其解釋爲代碼。我的代碼可以在這封郵件的末尾找到。矩陣元素由for-loop繪圖

M = [100 0;0 10] 

K = [k+oa^2m -oa^2m;-oa^2m oa^2m] 

k=8950000其中,m=10oa在for循環而變化。

A = inv([-(100pi)^2*M+K]) 

矩陣元素A11A12在區間30pi<=oa<=150pi要繪製。那麼我應該找到A11=0

我對我的代碼持懷疑態度的原因(見下文)是因爲圖不與x軸相交,但有更多的漸近字符(y = 0)。沒有「乾淨的」A11=0。有趣的事情也發生在oa=~69.46pi。任何人都可以找到錯誤(s)?謝謝!

M = [100 0;0 10]; 
A11 = []; 
A12 = []; 
oav = linspace(0.3*100*pi,1.5*100*pi,10000); 
for oa=oav; 
A = inv(-(100*pi)^2*M+[8950000+oa^2*10 -oa^2*10; -oa^2*10 oa^2*10]); 
A11 = [A11 A(1,1)]; 
A12 = [A12 A(1,2)]; 
end 
plot(oav,A11,oav,A12) 

回答

0

A11確實越過零,如果你將截圖放大:

>> min(A11) 
ans = -0.0079732 

69.46 < 30*pi所以oa=~69.46甚至不是在你所定義的範圍...

+0

我的意思69.46pi。但是,我正在看A12(facepalm)。謝謝! – Christian