查看: 336|回复: 12|关注: 0

[已解决] 【求助】【绝对值】小白请教一下大家,如何求任意复数的绝对值?

[复制链接]

新手

17 麦片

财富积分


050


4

主题

22

帖子

0

最佳答案
如题,我想求任意复数,如z=a+i*b,的绝对值,那我要怎么编写程序呢?(我直接输入abs(a+i*b)算不出来呢,有错误。)
回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

4

主题

1422

帖子

180

最佳答案
  • 关注者: 90
发表于 2020-7-13 23:00:10 | 显示全部楼层
abs(a+b*1i)
用1i来试试
回复此楼 已获打赏: 0 积分

举报

新手

17 麦片

财富积分


050


4

主题

22

帖子

0

最佳答案
 楼主| 发表于 2020-7-13 23:04:22 | 显示全部楼层
coolchen302 发表于 2020-7-13 23:00
abs(a+b*1i)
用1i来试试

您好,这个好像不能直接输入a和b吧,matlab识别不了,会提示错误的。我不知道要怎么对这种变量进行定义呢。
回复此楼 已获打赏: 0 积分

举报

论坛优秀回答者

4

主题

1422

帖子

180

最佳答案
  • 关注者: 90
发表于 2020-7-14 00:00:27 | 显示全部楼层
jiujiuwan 发表于 2020-7-13 23:04
您好,这个好像不能直接输入a和b吧,matlab识别不了,会提示错误的。我不知道要怎么对这种变量进行定义呢 ...

你是想要实现什么样的功能?
a和b不是已知数值变量,是符号变量?
回复此楼 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

中级

610 麦片

财富积分


5001500


24

主题

324

帖子

71

最佳答案
  • 关注者: 11
发表于 2020-7-14 11:41:40 | 显示全部楼层 |此回复为最佳答案
coolchen302 发表于 2020-7-14 00:00
你是想要实现什么样的功能?
a和b不是已知数值变量,是符号变量?

估计是个真小白;肯定不知道是数值变量还是符号变量;

数值变量这样搞,能运行。
  1. a=1;
  2. b=1;
  3. % 负数求绝对值
  4. c=abs(a+b*1i);
  5. %也相当于复数求模
  6. c1=norm(a+b*1i);
复制代码
回复此楼 已获打赏: 0 积分

举报

新手

17 麦片

财富积分


050


4

主题

22

帖子

0

最佳答案
 楼主| 发表于 2020-7-15 17:54:32 | 显示全部楼层
15631202458 发表于 2020-7-14 11:41
估计是个真小白;肯定不知道是数值变量还是符号变量;

数值变量这样搞,能运行。

您好,感谢指点。
我的意思是,想求出来对于任意复数z=a+bi的模的解析解,就是最终的输出结果是sqrt(a^2+b^2)这种形式。
但是直接输入这样的复数z,求不出来解呢,提示我未识别的a和b。
相当于公式推导。
不知道您能明白我的意思吗?
回复此楼 已获打赏: 0 积分

举报

新手

17 麦片

财富积分


050


4

主题

22

帖子

0

最佳答案
 楼主| 发表于 2020-7-15 17:57:32 | 显示全部楼层
coolchen302 发表于 2020-7-14 00:00
你是想要实现什么样的功能?
a和b不是已知数值变量,是符号变量?

您好,我刚看到。
我的目的是,想得到,最终的输出结果是sqrt(a^2+b^2)这种形式,不知道要怎么弄呢。
回复此楼 已获打赏: 0 积分

举报

新手

17 麦片

财富积分


050


4

主题

22

帖子

0

最佳答案
 楼主| 发表于 2020-7-17 00:27:19 | 显示全部楼层
15631202458 发表于 2020-7-14 11:41
估计是个真小白;肯定不知道是数值变量还是符号变量;

数值变量这样搞,能运行。

前辈,您可否进一步指点一下呀?
如何编代码才能输出,这样的结果:sqrt(a^2+b^2)
回复此楼 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

中级

610 麦片

财富积分


5001500


24

主题

324

帖子

71

最佳答案
  • 关注者: 11
发表于 2020-7-17 12:30:56 | 显示全部楼层
jiujiuwan 发表于 2020-7-17 00:27
前辈,您可否进一步指点一下呀?
如何编代码才能输出,这样的结果:sqrt(a^2+b^2) ...

你说的是符号运算吗?
  1. syms a b
  2. c=abs(a+b*1i)
  3. c1=norm([a,b])
复制代码


从结果来看c没有给出你想要的结果,直接是abs(a + b*1i),其实也就是sqrt(a^2+b^2),虽然显示不一样但我觉得你后续做运算不会影响结果,可能人家认为这两者没区别,只是更愿意用abs这样表示。
当把复数看成矩阵的时候,可以求其长度即模,即可看到c1的表达式为(abs(a)^2 + abs(b)^2)^(1/2);里面ab就没必要取abs,但是结果是取了,可能这都是符号函数本身的特点或者不足吧。

另外说些题外话,没必要纠结它是不是sqrt(a^2+b^2);你用数值计算的话,可以自己计算或者调用现成函数,用符号积分的话,写好表达式就好了,最终应该是不影响结果的计算的。不要纠结这个。
回复此楼 已获打赏: 0 积分

举报

新手

17 麦片

财富积分


050


4

主题

22

帖子

0

最佳答案
 楼主| 发表于 2020-7-18 12:39:43 | 显示全部楼层
15631202458 发表于 2020-7-17 12:30
你说的是符号运算吗?

特别感谢您,我其实就想用matlab做一个符号运算,验证一下数学中的复数的模的公式的推导。
可能我之前没有表达清楚,让大家误解了。
话说,我直接用mathematica的话,直接输入公式而不用定义变量a和b就可以得到想要的结果。(就是想验证一下公式而已,但是matlab上我却无法实现)

                               
登录/注册后可看大图

(另外这次回复,我进行了十多次人机验证,实在搞不懂为啥要弄这么麻烦的验证呀?)
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

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