用solve解了MATLAB方程组后,如何剔除那些复数解保留实数解啊?

用solve解了MATLAB方程组后,如何剔除那些复数解保留实数解啊?,第1张

设你的解是[x,y](x,y都是向量),那么可以:
A = x == real(x);
x(A)
x(A)就是所有实数根。第一行是在进行逻辑判断,如果是实数就取1,不是就取0,第二行matlab在调用向量x的元素的时候,遇到A=1就取,=0就不取。同理对y你也可以这么做。最后令x=x(A),y=y(B)即可。

将数据写入dat文件我们一般用的fwrite函数。

fwrite函数写入数据的类型precision没有明确的支持复数,要将复数保存到一个文件中,将复数的实部和虚部分开,分别保存到文件中。

上一段是对的第一段的翻译。看来只有分开保存了。。

假如要处理的数组名为a,程序为:
n=0;
for i=1:length(a)
if ( imag(a(i))~=0)
break;
end
n=n+1;
b(i)=a(i);
end
if (n~=0)
a=b;
else
disp('No real number in array a');
end
已在matlab上运行验证,可用于所有情况(即使a数组第一个元素就是复数),运行后的a数组就是除去复数后的数组。

这是最简单的求复数模和相角的程序。

> x=1+1i

x =
10000 + 10000i

>> abs(x)
ans =
14142

>> angle(x)
ans =
07854

matlab作用:

是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。

使用 MATLAB,可以使用传统的编程语言(如 C、C 和 Fortran)更快地解决技术计算问题。

MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。

按照复数形式输入。matlab中用i或j来表示虚部,创建复数时,可以直接按照复数形式输入。复数是指把形如a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,i称为虚数单位。

可以用abs()函数来求一个复数的模。即

abs(X)  等于  sqrt(real(X)^2 + imag(X)^2)

例如:计算  3+4i 的模

>>abs(3+4i)

ans =     5



欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/12807842.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存