24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1615  |  回复: 9

亮亮1283

新虫 (小有名气)

[交流] 【求助】请教Mathematica程序问题 已有5人参与

为什么我的程序对一个是函数求导后,得到的函数带入数值后竟然是复数!
以下是程序的一部分,M是一个2*2矩阵,矩阵中每一项均是Omega的函数,而S1,S2是关于omega的复函数

S1 = M[[1, 1]];
S2 = M[[2, 1]];
\[Phi]1 = Arg[S1];
\[Phi]2 = Arg[S2];
\[Tau]1 = D[\[Phi]1, \[Omega]];
得到的Tau代入数值后却是复数!不知道怎么回事!请好心人帮忙!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

resonant

木虫 (正式写手)

独自为政

不明白,难道是没有延迟赋值的问题?
交朋识友,猛搞科研。两手抓,两手都要硬。
2楼2010-05-21 17:31:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mshwangg

至尊木虫 (正式写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
resonant(金币+2):感谢回帖交流:-) 2010-05-21 21:42:53
给个例子,自己看吧
In[17]:= D[Arg[-x^3 + 8 I], x]
N[% /. x -> 3 + 4 I]

Out[17]=-3 x^2
\!\(\*SuperscriptBox["Arg", "\[Prime]",
MultilineFunction->None]\)[8 I - x^3]

Out[18]= 0.0504505 - 0.172973 I
3楼2010-05-21 21:21:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mshwangg

至尊木虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
resonant(金币+1):感谢回帖交流:-) 2010-05-21 21:42:59
然后是这个
不同的是x的赋值顺序
In[23]:= x = 3 + 4 I
N[
\!\(\*SuperscriptBox["Arg", "\[Prime]",
MultilineFunction->None]\)[-x^3 + 8 I]]

Out[23]= 3 + 4 I

Out[24]= 0.0024024
4楼2010-05-21 21:25:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

亮亮1283

新虫 (小有名气)

引用回帖:
Originally posted by mshwangg at 2010-05-21 21:21:58:
给个例子,自己看吧
In[17]:= D[Arg[-x^3 + 8 I], x]
N[% /. x -> 3 + 4 I]

Out[17]=-3 x^2
\!\(\*SuperscriptBox["Arg", "\[Prime]",
MultilineFunction->None]\)[8 I - x^3] ...

我不是很懂你说的两者的区别,难道复制顺序不一样会造成这种差别吗?那要是我所付的值全是实数呢?怎么也会是复数!
5楼2010-05-25 14:45:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yhj70

铜虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
余泽成(金币+1):欢迎常来程序软件版! 2010-05-25 18:50:22
检查一下,在适当的语句行设置Clear命令清除所涉变量的中间值。有可能运行过程中用到一部分前面的变量的值
6楼2010-05-25 18:12:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mshwangg

至尊木虫 (正式写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
resonant(金币+2):多谢解答。 2010-05-25 23:00:54
我的意思是说,先对Arg求导再代入数值,和,先对变量赋值再去求Arg的导数,两个结果是不一样的
估计这是mathematica不分数据类型导致的(没有经过验证)
你可以看看后一种计算方法是否违背你的本意,若否,那么问题也就解决了
引用回帖:
Originally posted by 亮亮1283 at 2010-05-25 14:45:53:





我不是很懂你说的两者的区别,难道复制顺序不一样会造成这种差别吗?那要是我所付的值全是实数呢?怎么也会是复数!

7楼2010-05-25 22:13:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

RongShe

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
jjdg(金币+1):辛苦了 2010-05-26 04:53:02
引用回帖:
Originally posted by mshwangg at 2010-05-25 22:13:52:
我的意思是说,先对Arg求导再代入数值,和,先对变量赋值再去求Arg的导数,两个结果是不一样的
估计这是mathematica不分数据类型导致的(没有经过验证)
你可以看看后一种计算方法是否违背你的本意,若否,那么 ...

其实先赋值和后赋值结果是一样的,你给的例子4楼里面少了前面的-3 (x^2) ,加上这一项结果就相同了
D[Arg[-x^3 + 8 I], x]
N[% /. x -> 3 + 4 I]
x = 3 + 4 I;
N[-3 x^2*
\!\(\*SuperscriptBox["Arg", "\[Prime]",
MultilineFunction->None]\)[-x^3 + 8 I]]
Clear[x];
8楼2010-05-26 00:40:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

RongShe


小木虫(金币+0.5):给个红包,谢谢回帖交流
引用回帖:
Originally posted by 亮亮1283 at 2010-05-21 14:27:31:
为什么我的程序对一个是函数求导后,得到的函数带入数值后竟然是复数!
以下是程序的一部分,M是一个2*2矩阵,矩阵中每一项均是Omega的函数,而S1,S2是关于omega的复函数

S1 = M[[1, 1]];
S2 = M[[2, 1]];
...

没有具体公式,别人很难判断
9楼2010-05-26 00:43:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mshwangg

至尊木虫 (正式写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
resonant(金币+3):辛苦。 2010-05-26 23:01:22
好吧,我再解释一下这个问题
第一个程序(后赋值的)是按照楼主的程序思想做的。先对Arg函数求导,结果前面有了一项-3 (x^2)。所以当x是复数时,最终结果当然就是复数。
第二个程序(先赋值的)就不用多解释了,自然是先带入x的数值然后求导,所以看起来是Arg‘[-x^3+8I],因此-3 (x^2) 这一项不是随便加上的。最终结果当然是实数了。不过我没有考虑到的是mathematica对Arg‘[-x^3+8I]的计算结果等同于Arg[-x^3+8I],失策失策!见笑了。

那么对楼主的问题再说几句。1、Arg[]给出结果应当是实数,起码我没有想出来什么情况这个函数会给出复数结果。2、对Arg求导会多出来一些表达式,建议楼主仔细看看这些表达式的结果是否是复数。3、如果楼主珍惜大家的唾沫星子和脑细胞并且不违反保密的话,还是把S1等的表达式贴出来更好一些。
引用回帖:
Originally posted by RongShe at 2010-05-26 00:40:50:

其实先赋值和后赋值结果是一样的,你给的例子4楼里面少了前面的-3 (x^2) ,加上这一项结果就相同了
D[Arg[-x^3 + 8 I], x]
N[% /. x -> 3 + 4 I]
x = 3 + 4 I;
N[-3 x^2*
\!\(\*SuperscriptBox["A ...

10楼2010-05-26 22:49:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 亮亮1283 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 285求调剂 +8 AZMK 2026-04-05 13/650 2026-04-07 08:14 by xihu1109
[考研] 302分求调剂 一志愿安徽大学085601 +12 zyx上岸! 2026-04-04 12/600 2026-04-07 02:09 by BruceLiu320
[考研] 277求调剂 数一104分 +9 瓶子PZ 2026-04-05 13/650 2026-04-06 23:48 by 蓝云思雨
[考研] 288求调剂 +9 没有答案_ 2026-04-05 9/450 2026-04-06 22:45 by chenzhimin
[考研] 071000生物学调剂 +7 拉提桃 2026-04-06 7/350 2026-04-06 18:55 by 52305043001
[考研] 301求调剂 +6 细胞相关蛋白 2026-04-02 10/500 2026-04-06 08:34 by jp9609
[考研] 材料与化工371求调剂 +14 陪琳看海 2026-04-04 15/750 2026-04-06 06:59 by houyaoxu
[考研] 080200学硕,277分,数一104,求带走! +7 瓶子PZ 2026-03-31 7/350 2026-04-05 17:49 by liucky
[考研] 能动调剂326专硕 +4 wan112233 2026-04-04 4/200 2026-04-04 22:47 by yu221
[考研] 286求调剂 +3 草木不言 2026-04-04 3/150 2026-04-04 22:40 by lbsjt
[考研] 325求调剂 +4 春风不借意 2026-04-04 4/200 2026-04-04 22:08 by 啵啵啵0119
[考研] 求调剂:085600材料与化工,考材科基,总分319 +21 678lucky 2026-03-31 26/1300 2026-04-04 16:22 by dongzh2009
[考研] 305求调剂 +3 77Qi 2026-04-03 3/150 2026-04-03 23:01 by qzxyhcsy
[考研] 求调剂,一志愿北京中医药大学 +3 小小达不溜 2026-04-02 3/150 2026-04-03 22:55 by 冲矢昴星团
[考研] 化工求调剂 +11 荔香芝士椰奶 2026-04-03 11/550 2026-04-03 22:06 by 啵啵啵0119
[考研] 282求调剂 +5 呼吸都是减肥 2026-03-31 5/250 2026-04-03 12:03 by 1753564080
[考研] 296求调剂 +4 sdhu 2026-04-02 4/200 2026-04-02 21:29 by baoball
[考研] 285求调剂 +8 AZMK 2026-04-02 11/550 2026-04-02 20:16 by yulian1987
[考研] 【求调剂】新能源材料本科,一志愿211,初试321 +6 求调剂学校, 2026-04-02 6/300 2026-04-02 09:41 by 晴空210210
[考研] 279求调剂 +6 学而思兮知 2026-04-01 6/300 2026-04-02 09:16 by vgtyfty
信息提示
请填处理意见