找回密码
 注册
Simdroid-非首页
查看: 228|回复: 15

求助:用符号运算时syms定义了一个符号变量

[复制链接]
发表于 2007-11-29 15:42:34 | 显示全部楼层 |阅读模式 来自 北京
计算时出现如下问题
Conversion to double from sym is not possible

各路大虾看看是什么意思?
 楼主| 发表于 2007-11-29 21:41:40 | 显示全部楼层 来自 北京
Simdroid开发平台
上面的意思是符号型不能转换成double型吧

但我程序没有要转型啊

而且用符号运算时 可不可以用小数表示  矩阵维数和元素比较大时,分数很长很难看

求救啊!!!
回复 不支持

使用道具 举报

发表于 2007-11-29 21:59:48 | 显示全部楼层 来自 新疆乌鲁木齐
hoho...
你的程序代码涉及国家机密吗?
回复 不支持

使用道具 举报

 楼主| 发表于 2007-11-29 23:18:27 | 显示全部楼层 来自 北京海淀
原帖由 bainhome 于 2007-11-29 21:59 发表
hoho...
你的程序代码涉及国家机密吗?


你能搞

说真的呢

给支个招吧
回复 不支持

使用道具 举报

发表于 2007-11-29 23:28:45 | 显示全部楼层 来自 新疆乌鲁木齐
我要在路上遇到拦路抢劫,拨打110匪警,只告诉警察快救命!但是我就不说地点,然后挂电话,你猜我的结局是什么?我能被“救命”吗?
只好自认倒霉——自救喽。
第二个问题问得还不是那么飘逸潇洒神鬼莫测,虽然还远远配不上你ID的分量,但基本清楚你的意思,所以干脆说答案“救命”:lol
去查查命令digits和vpa,或者double

[ 本帖最后由 bainhome 于 2007-11-29 23:39 编辑 ]
回复 不支持

使用道具 举报

 楼主| 发表于 2007-11-30 00:24:22 | 显示全部楼层 来自 北京海淀
总的来讲我觉得matlab有点朝三暮四

发现问题后我的测试代码如下:


>> syms s;
>> a(1)=0

a =

     0

>> a(2)=0

a =

     0     0

>> a(3)=s
??? Conversion to double from sym is not possible.

>> clear all
>> syms s
>> a(1)=1

a =

     1

>> a(2)=2

a =

     1     2

>> a(3)=s
??? Conversion to double from sym is not possible.

>> clear all
>> syms s;
>> a(1)=s

a =

s


>> a(2)=1

a =

[ s, 1]


>> a(3)=1/s

a =

[   s,   1, 1/s]

为什么第一个元素一定要含有s呢? 想不通啊
回复 不支持

使用道具 举报

 楼主| 发表于 2007-11-30 00:34:31 | 显示全部楼层 来自 北京海淀
第二个问题 我用拉普拉斯变换的方法 解高阶电路

系数矩阵19*19

计算出一条之路的电流为

Idt =

871122859317602466466238995025326621327360000000000/...
...
...

[ 本帖最后由 bainhome 于 2007-11-30 00:57 编辑 ]
回复 不支持

使用道具 举报

 楼主| 发表于 2007-11-30 00:35:31 | 显示全部楼层 来自 北京海淀
后面略去数千行,否则字数超过发贴限制

:L :L :L
回复 不支持

使用道具 举报

发表于 2007-11-30 01:11:30 | 显示全部楼层 来自 新疆乌鲁木齐
显然是你根本不了解MATLAB,或者说是你根本不了解变量类型造成的低级错误,可别推在MATLAB身上哦。
先说你第一个问题:
  1. a(1)=...
  2. a(2)=...
复制代码
此时形成的是双精度矩阵,然后你突然往里面加一个
  1. a(3)=s
复制代码
,这又是个符号阵,等于电影院排队买票的人中间横插一条狗,你说它是不是个动物?答:是!你说它能不能买票?答:#¥%……¥……%
先写
  1. a(1)=s
复制代码
,此时你已经告诉MATLAB这是符号矩阵了,后面的“1”、“2”自然也是对sym格式矩阵的填充喽。
小声问:现在你填的是1×3的矩阵,如果让你定义一个1×1000的矩阵你怎么办?一个一个用
  1. a(i)=...
复制代码
填吗?
我的答案:
  1. syms s
  2. a=[1:20,s]
复制代码
laplace变换本来结果就是比较复杂的,简化结果的方法我已经提到。看来我前面说让你去查vpa这个命令都是白说了,俏媚眼做给瞎子看...:lol

[ 本帖最后由 bainhome 于 2007-11-30 11:51 编辑 ]
回复 不支持

使用道具 举报

发表于 2007-11-30 02:27:11 | 显示全部楼层 来自 北京
;P ;P
回复 不支持

使用道具 举报

 楼主| 发表于 2007-11-30 09:41:46 | 显示全部楼层 来自 北京海淀
以前用matlab也就是调调函数,算算循环 画画图

还真没仔细看过变量类型

哎 又被人看笑话了
回复 不支持

使用道具 举报

发表于 2007-11-30 11:51:16 | 显示全部楼层 来自 新疆乌鲁木齐
没有没有,千万别介意,开个玩笑:victory:
回复 不支持

使用道具 举报

 楼主| 发表于 2007-11-30 15:30:29 | 显示全部楼层 来自 北京
没介意 嘿嘿

我这人最大特点就是脸皮厚

以上问题基本解决了  在请教个问题:设过符号变量后,可不可以再对此变量按点赋值呢?

直接来是不行的,有什么办法可以实现吗?
syms t;
f=sin(10*t);
t=0:0.1:10
回复 不支持

使用道具 举报

发表于 2007-11-30 15:43:49 | 显示全部楼层 来自 新疆乌鲁木齐
不要设符号变量,用匿名函数:
f=@(t) sin(10*t);
f(0:.1:10)
回复 不支持

使用道具 举报

 楼主| 发表于 2007-11-30 16:24:09 | 显示全部楼层 来自 北京
哦 匿名函数 不错哦  这些都是头次听说  斑竹果然高手啊!赞

不过,我要用拉普拉斯变换的,一定要设符号变量对吧

而且反变换之后的结果vpa以后 还是挺长的,匿名函数只要在前面加一个@(t)就可以了吧

我试一下

ps:斑竹可不可以偷偷的把qq号告诉我  :lol
回复 不支持

使用道具 举报

发表于 2009-5-23 16:06:14 | 显示全部楼层 来自 北京
我也想和bainhome斑竹交流一下,bainhome斑竹能否也偷偷的把QQ号告诉我,我的邮箱yaya6316@sina.com。不胜感激!
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-29 12:31 , Processed in 0.058422 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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