声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1360|回复: 4

[综合讨论] 怪呀,参数的命名影响计算结果吗?

[复制链接]
发表于 2008-10-14 10:27 | 显示全部楼层 |阅读模式

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

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

x
改变一个参数Tn的名字就导致Error:@@ ,是不是我的Matlab坏了?
function test4
Tn=1.5;
a=0.7;
m=dsolve('Dm=a*x+Tn','m(0)=-2','x')
m=subs(m)
结果都正常,test4回车
m =
1/2*a*x^2+Tn*x-2
m =
7/20*x^2+3/2*x-2,        但是把“Tn”改成“T_n”就出错了,

function test4
T_n=1.5;
a=0.7;
m=dsolve('Dm=a*x+T_n','m(0)=-2','x')
m=subs(m)

test4回车
m =
1/2*a*x^2+Tn*x-2
??? Undefined function or variable 'a'.
Error in ==> D:\Matlab\toolbox\symbolic\@sym\subs.m
On line 89  ==>          NEWexpr{k} = evalin('base',char(VaR{j(k)}));
Error in ==> D:\Matlab\work\test4.m
On line 5  ==> m=subs(m)
我再改!!!把“T_n”改成“Tm”,错误又不一样了?
function test4
Tm=1.5;
a=0.7;
m=dsolve('Dm=a*x+Tm','m(0)=-2','x')
m=subs(m)

test4回车
??? Error using ==> dsolve
Error, (in dsolve/IC) The 'implicit' option is not available when giving Initial Conditions.
Error in ==> D:\Matlab\work\test4.m
On line 4  ==> m=dsolve('Dm=a*x+Tm','m(0)=-2','x')

折腾了半天也不明白,这到底是怎么一回事???Matlab坏了吗:@o
回复
分享到:

使用道具 举报

发表于 2008-10-14 11:14 | 显示全部楼层
你的三段程序在我这里执行的结果是一样的,不过我没有用函数文件。

  1. >> Tn=1.5;
  2. a=0.7;
  3. m=dsolve('Dm=a*x+Tn','m(0)=-2','x')
  4. m=subs(m)
  5. m =
  6. 1/2*a*x^2+Tn*x-2
  7. m =
  8. 7/20*x^2+3/2*x-2
  9. >> clear
  10. >> T_n=1.5;
  11. a=0.7;
  12. m=dsolve('Dm=a*x+T_n','m(0)=-2','x')
  13. m=subs(m)
  14. m =
  15. 1/2*a*x^2+T_n*x-2
  16. m =
  17. 7/20*x^2+3/2*x-2
  18. >> clear
  19. >> Tm=1.5;
  20. a=0.7;
  21. m=dsolve('Dm=a*x+Tm','m(0)=-2','x')
  22. m=subs(m)
  23. m =
  24. 1/2*a*x^2+Tm*x-2
  25. m =
  26. 7/20*x^2+3/2*x-2
复制代码

评分

1

查看全部评分

 楼主| 发表于 2008-10-14 11:58 | 显示全部楼层
问题确实存在,难道软件问题?
我的版本是6.5.1.199709 release 13(service pack 1)

看来是用了一个残废的版本,还用了这么久,浪费青春啊

[ 本帖最后由 ChaChing 于 2010-6-15 15:35 编辑 ]
123.jpg
发表于 2008-10-14 22:43 | 显示全部楼层

回复 地板 rfj123 的帖子

不一定是版本问题,可能你用的前期对该变量都赋过值,你重新赋值看看
发表于 2008-10-15 01:03 | 显示全部楼层
我用了v5.3 R11.1及v8.5.0 R13.0.1两版本试过, sogooda主任用的可能是较新版本
前两个都未报错, 第三个才报错, 我猜这是旧版的bug吧, 刚开始程式发展未考虑到那麽多可能性的输入

个人看法, 不管新旧版matlab都只是个工具罢了, 本来使用者就需有能力判断结果的对错
要吗使用较新版, 或小心使用输入方式, 控制结果的对错
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-3 04:46 , Processed in 0.068446 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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