| 查看: 3138 | 回复: 2 | ||
[求助]
matlab编程中关于for语句中[V,D]=eig(A)的用法已有1人参与
|
|
我在编程中有一段语句如下 for J=0:Jmax hsym=zeros(2*J+1); %%规定零矩阵大小,其大小随每次循环的J改变而改变 for Kp=-J:J m=m+1; n=0; for K=-J:J n=n+1; if Kp==K hsym(n,m)=F*(J*(J+1)-K^2)+G*K^2; elseif Kp==K+2 hsym(n,m)=H*(0.25*(J*(J+1)-K*(K+1))*(J*(J+1)-(K+1)*(K+2)))^(0.5); elseif Kp==K-2 hsym(n,m)=H*(0.25*(J*(J+1)-K*(K-1))*(J*(J+1)-(K-1)*(K-2)))^(0.5); end end end %%以上是给矩阵hsym的某些矩阵元赋值。没有问题 [evrp,evlp]=eig(hsym); %%我需要矩阵的本证矢量,所以需要用到[V,D]=eig(A)的形式。 for e=1 2*J+1)evl(J^2+e,J^2+e)=0.5*(A+C)*J*(J+1)+0.5*(A-C)*evlp(e,e); for ee=1 2*J+1)evr(J^2+e,ee)=evrp(e,ee); end end %%以上是将hsym所得的本征值和本证矢量转移到新矩阵中 end 但是这里运行的时候一直有问题,如果把最前面第一个for去掉的话只计算一个矩阵的本征值和本证矢量,这段程序是没有问题的。但是加上第一个for语句就出问题了。第一个for我的用意是将循环里的所有矩阵的本征值和本证矢量求出,最后分别整合到两个大矩阵中,一个矩阵装本征值,一个矩阵装本证矢量。如果将第一个for语句去掉单独算一个矩阵,没有问题,而且本征值和本证矢量都可以原封不动的转移到大矩阵中,位置也是我想要的位置没有问题。但是加上第一个for语句就不行了。 我觉得应该是 [evrp,evlp]=eig(hsym) 这里有问题,但是我不知道如何解决。菜鸟请大神们帮忙解决一下。含泪感谢。 |
» 猜你喜欢
Bioresource Technology期刊,第一次返修的时候被退回好几次了
已经有6人回复
2025冷门绝学什么时候出结果
已经有4人回复
真诚求助:手里的省社科项目结项要求主持人一篇中文核心,有什么渠道能发核心吗
已经有8人回复
寻求一种能扛住强氧化性腐蚀性的容器密封件
已经有5人回复
论文投稿,期刊推荐
已经有6人回复
请问哪里可以有青B申请的本子可以借鉴一下。
已经有4人回复
孩子确诊有中度注意力缺陷
已经有14人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
» 本主题相关价值贴推荐,对您同样有帮助:
求助Matlab批处理for语句循环
已经有5人回复
matlab中如何通过for语句得到已有矩阵的部分数据
已经有3人回复
跪求matlab的for循环语句的编写
已经有20人回复
2楼2014-04-24 08:56:38
3楼2014-04-24 10:41:28













2*J+1)
回复此楼