声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4260|回复: 6

[编程技巧] 定义实数符号变量,求符号运算结果,结果是实部+虚步的形式,请高手帮忙!

[复制链接]
发表于 2009-11-20 13:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
符号运算,a b是两个实数,求(a+b*j)*(a+b*j)的结果,
要运算结果是:(a*a-b*b)+2*a*b*j的形式。即实部+虚部的形式。
求高手们帮忙解决一下,谢谢! 最好把matlab程序写出来!

syms a b real
d=(a+i*b)*(a+i*b), d=simplify(d)

d =
(a+i*b)^2

d =
(a+i*b)^2

这个是我编的程序,高手们看看怎么改才能得出实部+虚部的形式。 谢谢

[ 本帖最后由 ChaChing 于 2009-11-20 14:07 编辑 ]
回复
分享到:

使用道具 举报

发表于 2009-11-20 13:59 | 显示全部楼层
试不出LZ要的, 但可以取出实部及虚部
syms a b
d=(a+i*b)*(a+i*b), dd=expand(d); real(dd),imag(dd)

[ 本帖最后由 ChaChing 于 2009-11-20 14:02 编辑 ]
发表于 2009-11-21 01:39 | 显示全部楼层
可以通过sym2str函数(可以在官网下载:http://www.mathworks.com/matlabcentral/fileexchange/19217-sym2str)实现:
clc
clear
syms a b real
d=(a+i*b)*(a+i*b);
d=expand(d);
disp([sym2str(real(d)),'+i*',sym2str(imag(d))])
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-b.^2+a.^2+i*2.*a.*b
呵呵,有点复杂。感觉分别显示实部和虚部也挺好

评分

1

查看全部评分

发表于 2009-11-21 16:59 | 显示全部楼层
奇怪! 昨天明明试过 dd=expand(d); real(dd)
记得可以跑出a^2 - b^2
怎今天试都是
ans =
a^2/2 + i*a*b - b^2/2 + conj(a)^2/2 - i*conj(a)*conj(b) - conj(b)^2/2
 楼主| 发表于 2009-11-30 09:28 | 显示全部楼层

回复 板凳 friendchj 的帖子

谢谢你的指点!
 楼主| 发表于 2009-11-30 09:35 | 显示全部楼层

回复 地板 ChaChing 的帖子

谢谢你的指点!
发表于 2009-11-30 13:52 | 显示全部楼层
原帖由 ChaChing 于 2009-11-21 16:59 发表
奇怪! 昨天明明试过 dd=expand(d); real(dd)
记得可以跑出a^2 - b^2
怎今天试都是
ans =
a^2/2 + i*a*b - b^2/2 + conj(a)^2/2 - i*conj(a)*conj(b) - conj(b)^2/2

刚又看了下, 原来是复制少个real!
syms a b real
d=(a+i*b)*(a+i*b), dd=expand(d); real(dd),imag(dd)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 21:54 , Processed in 0.058267 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表