Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-11-22, 17:42   #1
zhan
初级会员
 
注册日期: 2008-11-22
年龄: 40
帖子: 10
声望力: 17
zhan 正向着好的方向发展
默认 [求助]matlab求本征值问题的一个奇特现象

最近我在求一个含有连续参数的本征值问题,发现利用eig或eigs命令都出现同样的一个奇怪的现象,具体的m文件如下:
%%%%%%%%以下为m文件
w0=-40.0; %参数的起始位置
w1=20.0;
dw=0.4;
w=w0:dw:w1;
K=(w1-w0)/dw;
V=-2.6e3*(-2+w)./((-2+w)*(7i+10)-49).^2-1.1;
N=10;
Ninterest=5;
Lambda=2.2+4.4*(0:N);
y=zeros(Ninterest,K+1);
trilambda=1:N;
for n=1:K+1
v=V(n);
trilambda1=trilambda*v;
MatrixEig=diag(Lambda+lambda*v)+diag(trilambda1,1)+diag(trilambda1,-1);
y(:,n)=eigs(MatrixEig,Ninterest,'SM');
end
y=-y*1.2e-2;
%%%%以下是画图,可以不看
figure1 = figure('PaperSize',[20.98 29.68]);
axes1 = axes('Parent',figure1,'FontWeight','bold','FontSize',16,...
'FontAngle','oblique');
xlim([-30 20]); % 由dw的数值可以知道,这个窗口里的参数对于w0=-40和-80是一样的
box on;
grid on;
hold on;
%%%%
plot1 = plot(w,real(y),'Parent',axes1,'LineWidth',3);
%%%%%%%
set(plot1(1),'Color',[1 0 1],'DisplayName','n=0');
set(plot1(2),'Color',[1 1 0],'DisplayName','n=1');
set(plot1(3),'Color',[0 0 0],'DisplayName','n=2');
set(plot1(4),'Color',[0 1 0],'DisplayName','n=3');
set(plot1(5),'Color',[0 0 1],'DisplayName','n=4');
%%%%%%
xlabel('\lambda','FontSize',20,'FontWeight','bold');
ylabel('K_n','FontSize',16,'FontWeight','bold');
legend1 = legend(axes1,'show');
set(legend1,'Position',[0.7389 0.5497 0.1613 0.3685],'FontSize',14);
hold off
%%%%% m文件结束%%%%%
我将w0由-40改成-80,发现这两个图相差极大(见附件).大家可以自行运行一下程序.附件里图可能看不清楚.不知道这里边具体是什么原因.怎么样才能使它们输出一致.谢谢各位!
上传的图像
文件类型: jpg 1.jpg (8.2 KB, 20 次查看)
文件类型: jpg 2.jpg (8.1 KB, 19 次查看)
zhan 当前离线   回复时引用此帖
旧 2008-11-23, 20:24   #2
zhan
初级会员
 
注册日期: 2008-11-22
年龄: 40
帖子: 10
声望力: 17
zhan 正向着好的方向发展
难过 回复: matlab求本征值问题的一个奇特现象

没人愿意帮忙么?
zhan 当前离线   回复时引用此帖
旧 2008-11-24, 16:12   #3
zhan
初级会员
 
注册日期: 2008-11-22
年龄: 40
帖子: 10
声望力: 17
zhan 正向着好的方向发展
默认 回复: matlab求本征值问题的一个奇特现象

我已经知道原因了.
zhan 当前离线   回复时引用此帖
旧 2008-11-24, 23:35   #4
meteora1005
高级会员
 
注册日期: 2008-05-31
年龄: 38
帖子: 104
声望力: 19
meteora1005 正向着好的方向发展
默认 回复: matlab求本征值问题的一个奇特现象

你贴这么大一堆代码上来,没有几个人会仔细看的。那最后到底是什么原因呢?
meteora1005 当前离线   回复时引用此帖
旧 2008-11-25, 12:27   #5
zhan
初级会员
 
注册日期: 2008-11-22
年龄: 40
帖子: 10
声望力: 17
zhan 正向着好的方向发展
默认 回复: matlab求本征值问题的一个奇特现象

做大循环时,尽量避免用复杂的匿名函数。应该是内存变量的原因。这可能要取决于计算机的性能了。
zhan 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
正弦信号谐波失真系数的测试程序 ywf MATLAB论坛 2 2009-05-14 13:13
[分享][讨论]C++ 快速FFT(rlft3)用于2D处理 149700017 MATLAB论坛 0 2009-02-25 22:47
[分享]给新手的建议 guofeng0108 MATLAB论坛 0 2008-12-16 09:51
AVL/CRUISE学习群 yangwenhui 学术科研 0 2008-12-12 20:50
[讨论]blank GUI上面加新的控件,运行后没有显示 kmkeke MATLAB论坛 1 2008-11-27 14:54


所有时间均为北京时间。现在的时间是 13:55


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.