作业帮 > 数学 > 作业

关于matlab从有复数和实数的矩阵中选择自己需要的数

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/07 11:51:02
关于matlab从有复数和实数的矩阵中选择自己需要的数
我计算了很多一元三次方程,得到的部分解如下:
0.7400 0.4806 + 1.3074i 0.4806 - 1.3074i (第1组解)
0.5358 1.4326 + 0.7076i 1.4326 - 0.7076i (第2组解)
2.5722 0.6966 -2.5518 (第3组解)
0.3270 1.2179 + 1.4783i 1.2179 - 1.4783i (第4组解)
0.9994 -0.4271 + 1.0026i -0.4271 - 1.0026i (第5组解)
1.5386 + 0.0230i 0.4425 - 0.0000i -3.4101 + 1.0230i (第6组解)
1.3494 - 0.9220i 0.6044 + 0.0000i -0.4721 + 0.0000i (第7组解)
0.7031 3.7628 +12.0888i 3.7628 -12.0888i (第n组解)
现在需要从这些组解里面找每一组解位于[0,1]内的解(假设每一组解都存在且仅存在一个这样的解),则n组解有n个这样的数.请问如何得到这n个数?注意:有的解里面虚部为0,如第6和第7组.
请大侠指教!尽量使用计算量小的方法,不要逐个数值进行判断!
这个问题我没给你答案吗,记得做了的,但有个问题,如果不逐个判断
好像不是很好弄,反正你参考吧,只做了第6和7组:
clear all;clc;
a1=[1.5386 + 0.0230i,0.4425 - 0.0000i,-3.4101 + 1.0230i];
a2=[1.3494 - 0.9220i,0.6044 + 0.0000i,-0.4721 + 0.0000i];
a=[a1;a2];
for ii=1:2
for jj=1:3
rej(ii,jj)=isreal(a(ii,jj));
end
end
rej=a.*rej;
for kk=1:2
id(kk,1)=find(rej(kk,:)>0&rej(kk,:)