【问题标题】:Matrix element plot by for-loop用for循环绘制矩阵元素图
【发布时间】:2013-12-31 00:45:52
【问题描述】:

我非常怀疑我的代码对于我的这项任务是否正确。下面是使用一些 matlab 语法对手头任务的简短描述,但不要将其解释为代码。我的代码可以在此消息的末尾找到。

M = [100 0;0 10]

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

k=8950000m=10oa 在 for 循环中变化。

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

矩阵元素A11A12 将绘制在区间30pi<=oa<=150pi 中。然后我应该找到A11=0 的位置。

我对我的代码持怀疑态度的原因(见下文)是因为该图不与 x 轴相交,但具有更多的渐近字符 (y=0)。没有“干净”A11=0oa=~69.46pi 也发生了一些有趣的事情。任何人都可以找到错误吗?谢谢!

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)

【问题讨论】:

    标签: matlab for-loop matrix plot


    【解决方案1】:

    A11 如果放大到足够大,会过零:

    >> min(A11)
    ans = -0.0079732
    

    69.46 < 30*pi 所以oa=~69.46 甚至不在您定义的范围内...

    【讨论】:

    • 我的意思是 69.46pi。但是,我在看 A12(面掌)。谢谢!