Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-11-22
年龄: 40
帖子: 10
声望力: 17 ![]() |
![]()
最近我在求一个含有连续参数的本征值问题,发现利用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,发现这两个图相差极大(见附件).大家可以自行运行一下程序.附件里图可能看不清楚.不知道这里边具体是什么原因.怎么样才能使它们输出一致.谢谢各位! |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2008-11-22
年龄: 40
帖子: 10
声望力: 17 ![]() |
![]()
没人愿意帮忙么?
|
![]() |
![]() |
![]() |
#3 |
初级会员
注册日期: 2008-11-22
年龄: 40
帖子: 10
声望力: 17 ![]() |
![]()
我已经知道原因了.
|
![]() |
![]() |
![]() |
#4 |
高级会员
注册日期: 2008-05-31
年龄: 38
帖子: 104
声望力: 19 ![]() |
![]()
你贴这么大一堆代码上来,没有几个人会仔细看的。那最后到底是什么原因呢?
|
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2008-11-22
年龄: 40
帖子: 10
声望力: 17 ![]() |
![]()
做大循环时,尽量避免用复杂的匿名函数。应该是内存变量的原因。这可能要取决于计算机的性能了。
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
正弦信号谐波失真系数的测试程序 | 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 |