声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1243|回复: 3

[综合讨论] 小弟刚学matlab,请教大家一个问题

[复制链接]
发表于 2011-3-31 20:29 | 显示全部楼层 |阅读模式

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

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

x
a=[5*k-2*m*x -2*k 0;-2*k 3*k-1.5*m*x -k;0 -k k-m*x],这是一个符号矩阵,x是独立变量,要求此矩阵的特征值和特征变量,这是机械振动上的一道题,矩阵a就是系统的特征方程,我用eig函数没有求出来,还请高手指教!
回复
分享到:

使用道具 举报

发表于 2011-3-31 23:56 | 显示全部楼层
回复 1 # feelingji 的帖子

1.建议标题要明确!?
2.求助完整格式应该有出错代码和出错提示!?
3.没报错!? (R2009a)
syms m k x;a=[5*k-2*m*x -2*k 0;-2*k 3*k-1.5*m*x -k;0 -k k-m*x]; eig(a)
 楼主| 发表于 2011-4-2 20:05 | 显示全部楼层

小弟第一次在次论坛上发帖,规矩多有不懂,多谢楼主指教。我用你给的方法在matlab上运行得出以下结果,结果很长很吓人,现有如下问题:
ans =

                                                                                                                                                                                                                                                                                                                                          1/6*(-162*k^2*m*x+648*k^3+3*(6720*k^3*m^3*x^3-29484*k^4*m^2*x^2-900*k^2*m^4*x^4+69984*k^5*m*x+72*k*m^5*x^5-93312*k^6-3*m^6*x^6)^(1/2))^(1/3)-6*(2/3*k*m*x-3*k^2-1/12*m^2*x^2)/(-162*k^2*m*x+648*k^3+3*(6720*k^3*m^3*x^3-29484*k^4*m^2*x^2-900*k^2*m^4*x^4+69984*k^5*m*x+72*k*m^5*x^5-93312*k^6-3*m^6*x^6)^(1/2))^(1/3)+3*k-3/2*m*x
-1/12*(-162*k^2*m*x+648*k^3+3*(6720*k^3*m^3*x^3-29484*k^4*m^2*x^2-900*k^2*m^4*x^4+69984*k^5*m*x+72*k*m^5*x^5-93312*k^6-3*m^6*x^6)^(1/2))^(1/3)+3*(2/3*k*m*x-3*k^2-1/12*m^2*x^2)/(-162*k^2*m*x+648*k^3+3*(6720*k^3*m^3*x^3-29484*k^4*m^2*x^2-900*k^2*m^4*x^4+69984*k^5*m*x+72*k*m^5*x^5-93312*k^6-3*m^6*x^6)^(1/2))^(1/3)+3*k-3/2*m*x+1/2*i*3^(1/2)*(1/6*(-162*k^2*m*x+648*k^3+3*(6720*k^3*m^3*x^3-29484*k^4*m^2*x^2-900*k^2*m^4*x^4+69984*k^5*m*x+72*k*m^5*x^5-93312*k^6-3*m^6*x^6)^(1/2))^(1/3)+6*(2/3*k*m*x-3*k^2-1/12*m^2*x^2)/(-162*k^2*m*x+648*k^3+3*(6720*k^3*m^3*x^3-29484*k^4*m^2*x^2-900*k^2*m^4*x^4+69984*k^5*m*x+72*k*m^5*x^5-93312*k^6-3*m^6*x^6)^(1/2))^(1/3))
-1/12*(-162*k^2*m*x+648*k^3+3*(6720*k^3*m^3*x^3-29484*k^4*m^2*x^2-900*k^2*m^4*x^4+69984*k^5*m*x+72*k*m^5*x^5-93312*k^6-3*m^6*x^6)^(1/2))^(1/3)+3*(2/3*k*m*x-3*k^2-1/12*m^2*x^2)/(-162*k^2*m*x+648*k^3+3*(6720*k^3*m^3*x^3-29484*k^4*m^2*x^2-900*k^2*m^4*x^4+69984*k^5*m*x+72*k*m^5*x^5-93312*k^6-3*m^6*x^6)^(1/2))^(1/3)+3*k-3/2*m*x-1/2*i*3^(1/2)*(1/6*(-162*k^2*m*x+648*k^3+3*(6720*k^3*m^3*x^3-29484*k^4*m^2*x^2-900*k^2*m^4*x^4+69984*k^5*m*x+72*k*m^5*x^5-93312*k^6-3*m^6*x^6)^(1/2))^(1/3)+6*(2/3*k*m*x-3*k^2-1/12*m^2*x^2)/(-162*k^2*m*x+648*k^3+3*(6720*k^3*m^3*x^3-29484*k^4*m^2*x^2-900*k^2*m^4*x^4+69984*k^5*m*x+72*k*m^5*x^5-93312*k^6-3*m^6*x^6)^(1/2))^(1/3))
1、x是自变量,结果应该用m、k表示x;
2、结果太长,怎样把结果简化。
这是书上给出的答案:x1=0.3515k/m ,x2=1.6066k/m,x3=3.5419k/m
谢谢回答!
发表于 2011-4-2 20:22 | 显示全部楼层
本帖最后由 meiyongyuandeze 于 2011-4-2 20:28 编辑

你可以采用以下的语句进行化简:
s=simple(ans),这种方法是自动选择最简单格式进行化简,除了simple函数matlab中还有其他的化简函数如collect()来进行合并同类项,expand()可以进行多项式展开,factor()因式分解,number()可以提取多项式的分子和分母,sincos()可以进行三角函数化简,具体的用法是可有help文件查到,但即使你用了这些化简的函数进行化简也不见得能得到你给出的答案。这可能是因为matlab在进行符号运算的时候,很大程度上是基于傅里叶展开来进行的,将复杂的函数展开成级数而后进行计算,所以得到的是很多项的求和,这也就不奇怪了,计算机没有人那么聪明,呵呵,建议能自己算的问题还是自己算,真的不好算的再用计算机来计算,个人的一点认识,希望对你有帮助!

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-27 13:39 , Processed in 0.108532 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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