我正在尝试学习matlab。 我正在尝试制作一个绘制这些虚数的程序:("," =十进制数)
确定最接近实轴的500个数字。 我需要一点指导。
我需要做些什么才能解决这个问题? 我正在考虑制作一个所有"值和#34;存储在数组中:
[code]
n= 1
while n < 500
value=1+0.1^n;
disp(value)
n=n+1[/code]
(似乎值是打印错误的值?以及如何存储在数组中?) 然后以某种方式确定最接近实轴的数字,然后显示该值。
如果有人可以帮助我,我将非常感激。提前感谢。
答案 0 :(得分:3)
MATLAB通过在数字上附加i
或j
项来创建虚数。例如,如果您想创建一个虚数,使实数组件为1而虚构组件为1,则只需执行以下操作:
>> A = 1 + i
A =
1.0000 + 1.0000i
您可以看到有一个独特的真实组件和一个虚构组件,并存储在A
中。同样,如果要使虚构组件具有除1之外的任何值,则需要在i
(或j
)前面添加常量。类似的东西:
>> A = 3 + 6i
A =
3.0000 + 6.0000i
因此,对于您的任务,您只需在n
到1
之间创建500
的向量,将其输入上面的等式,然后绘制得到的虚数。在这种情况下,您可以绘制x
轴上的实部和y
轴上的虚部。类似的东西:
>> n = 1 : 500;
>> A = (1 + 0.1i).^n;
>> plot(real(A), imag(A));
real
和imag
是MATLAB中的函数,用于访问存储在数组,矩阵或单个值中的复数的实部和虚部。正如knedlsepp所指出的,您可以简单地绘制数组本身,因为plot
可以处理复数值数组:
>> plot(A);
好看的照片顺便说一下!请注意附加.
运算符的^
运算符。 .
表示按元素操作。这意味着我们希望对n
的{{1}}的每个值应用幂功能,1
为500
,1 + 0.1i
为基数。结果将是500元素数组,其结果为计算结果。如果我们自己^
,我们就会期望执行矩阵幂运算,但事实并非如此。
您要为帖子中的等式应用的n
的每个值分析的值都存储在A
中。然后,我们在图表上绘制实部和虚部。现在,如果要查找哪些数字最接近实轴,您只需要找到A
中存储的数字的最小绝对虚部,然后搜索所有共享该数字的数字。
>> min_dist = min(abs(imag(A)));
>> vals = A(abs(imag(A)) == min_dist)
vals =
1.3681 - 0.0056i
这意味着1.3681 - 0.0056i
的值最接近实轴。