符号矩阵求逆的正则表达式问题

fdl0112 2009-10-19 09:00:57
不好意思,又来向大家请教符号矩阵的问题,前一段时间请教了相关的问题,已经有高手提供了具体的代码,见:
符号运算中的正则表达式问题(Java中),链接是:http://topic.csdn.net/u/20090921/09/3cf6b30f-0047-4b08-a8cc-594bfad2df4f.html
在那里bigbug9002在17楼给了一个修改好的代码,可以实现符号矩阵的相乘问题。
现在的新问题是,当实现矩阵求逆时,会出现类似:1/(2+3x-5x^2)这样的一元多项式,这样的式子中多了括号除号,同时出现了分母,一元多项式出现在分母的位置,
这样的符号表达式该如何用正则表达式split呢,又该如何实现这样的符号矩阵的相加和相乘呢?
解决这个问题需要很好的正则表达式功力,盛邀各位高手来解决!同时盛邀bigbug9002大虾进一步来指导。这个问题解决了,对实现用JAVA语言编写符号矩阵问题非常有指导作用,会造福所有JAVA程序爱好者的。
小虾恭迎各位指导......
...全文
619 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
hugogoo 2009-12-13
  • 打赏
  • 举报
回复
我也不懂,学习学习,顶一下
lovetysx 2009-12-13
  • 打赏
  • 举报
回复
用正则表达式解析单个的语句可以,做文法分析效率和扩展性保证不了
fdl0112 2009-12-11
  • 打赏
  • 举报
回复
顶起来...
dengsf 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bao110908 的回复:]
你要用正则表达式来解析算示表达式?

我看还是算了吧,正则表达式不是语法分析器,做不到的,建议你可以看看语法分析工具 ANTLR
[/Quote]

正则表达式能解决第3类文法,
算术表达式是第2类文法,一般情况下的解析超出了正则表达式的能力。
除非对表达式做限制(或者LZ已无意识做了),否则别浪费精力了。
fdl0112 2009-11-25
  • 打赏
  • 举报
回复
又是10天过去了,还是没看到想要的答案,大家是不是都很忙啊,抽空来帮帮忙......
阿士匹灵 2009-11-15
  • 打赏
  • 举报
回复
帮顶 呵呵
fdl0112 2009-11-15
  • 打赏
  • 举报
回复
没人关注啊,郁闷...
晴天1999 2009-11-15
  • 打赏
  • 举报
回复
新手,多多指教喔!
fdl0112 2009-11-04
  • 打赏
  • 举报
回复
顶起!
fdl0112 2009-11-02
  • 打赏
  • 举报
回复
用Matlab,或者Mathmatics,maple其实更适合求解符号矩阵的计算问题。在工程上有很多的软件和程序其实处理数值计算时都是用一种语言,比如用C++混编Matlab来完成的。但是其实Matlab中的matcom数值包也好,不外乎还是用Fortran语言或C语言编写下的。Java语言既然能与C,C++等相提并论,它本身就应该也能独立解决、独立编写数值计算包的。
而我期待的就是用纯Java语言来编写我想要实现的算法程序,其中最主要的就是符号矩阵运算问题,不要混编其他成熟软件的计算包。希望各位Java爱好者能帮我一起解决我提出的问题。
py330316117 2009-10-30
  • 打赏
  • 举报
回复
正则表达式中对于符号的表示是“//p{Punct}”,你可以试试把符号都用split消去。先给你这个,我记下这个帖子,帮你看看
冰思雨 2009-10-30
  • 打赏
  • 举报
回复
嗯。
关于矩阵的运算,我推荐使用MatLab来做。
这样可以省去很多时间。
如果楼主非要解决符号矩阵的运算问题,不妨看看MatLab。

MatLab是一款数学方面的软件。
除了某些常微分方程解不了,大学学的简单微积分,
矩阵求解什么的,都能解。
当然,要想使用它,你还要像学Java语言一样,学习它的语言。
如果它还达不到要求,再试试Mathmatics软件。

我很赞同楼上所说的话的。但是,自己大多数都比较懒。
“多项式的除法实现起来困难重重,但我想问题一定是可以解决的,一旦解决就可以在数学的角度和编程的角度完成一元多项式矩阵的相乘问题,编程中涉及的各种正则表达式和编译原理的应用对所有JAVA学习者都是非常有用的。”
fdl0112 2009-10-29
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 preferme 的回复:]
毕业3~4年了,当年矩阵的知识也忘得差不多了。
我看了一下数据结构,上面只介绍了一元多项式的相加。
那么,楼主的矩阵运算,其矩阵元素,也就局限在一元多项式上了。

我又翻了翻以前的教材,发现,关于一元多项式的加减乘,三个运算,都还是比较好实现的。
就是多项式的除法,实现起来困难重重。最主要的问题就出在“分式”的处理问题上了。
加减乘法,都是“整式”的运算,那么,只处理系数和指数,就可以了。
“分式”的处理上,还要有除法、约分、化简、以及存储的问题需要处理,当然,怎样保存分式,应该不算难题。但保存分式的最简分式就比较难处理了。

[/Quote]
这两天一直在查阅有关正则表达式和JAVACC的资料,发现用JAVACC处理起来可能需要更多的时间,难度更大。还是用正则表达式处理要好一些。关于除法我是这么想着,把分母从矩阵中提取出来,然后把各个矩阵的分母部分按照一元多项式乘法来处理,把提取分母后转化好的分子部分构成的矩阵按正常矩阵相乘来处理。
从数学的角度来说,最后由分子构成的结果矩阵1和由分母构成的结果矩阵2是“等价”的(我的意思是两个矩阵都是一元多项式),整个分式需要最后的约分,化简等处理。但是从工程应用的角度来说,我只需要分子构成的结果矩阵1,而分母构成的结果矩阵2会导致分母为0这样的错误,在工程上对应的是“奇点”。当然这些东西学工科的人很容易理解,只学计算机的朋友估计看起来有难度。
所以对我要解决的工程问题而言,即使不解决分式的一元多项式矩阵相乘的问题我也有对策了。但是我还是期待有高手能把这个加入除法、分式的一元多项式问题给个解答。
正如楼上所说的,多项式的除法实现起来困难重重,但我想问题一定是可以解决的,一旦解决就可以在数学的角度和编程的角度完成一元多项式矩阵的相乘问题,编程中涉及的各种正则表达式和编译原理的应用对所有JAVA学习者都是非常有用的。所以我还是很期待各位高手浮出水面,各抒己见。
冰思雨 2009-10-28
  • 打赏
  • 举报
回复
毕业3~4年了,当年矩阵的知识也忘得差不多了。
我看了一下数据结构,上面只介绍了一元多项式的相加。
那么,楼主的矩阵运算,其矩阵元素,也就局限在一元多项式上了。

我又翻了翻以前的教材,发现,关于一元多项式的加减乘,三个运算,都还是比较好实现的。
就是多项式的除法,实现起来困难重重。最主要的问题就出在“分式”的处理问题上了。
加减乘法,都是“整式”的运算,那么,只处理系数和指数,就可以了。
“分式”的处理上,还要有除法、约分、化简、以及存储的问题需要处理,当然,怎样保存分式,应该不算难题。但保存分式的最简分式就比较难处理了。
fdl0112 2009-10-27
  • 打赏
  • 举报
回复
顶起!
fdl0112 2009-10-26
  • 打赏
  • 举报
回复
期待大家指导啊......
正则表达式真的无法解决吗?必须要用语法分析器吗?
owen_008 2009-10-23
  • 打赏
  • 举报
回复
吼吼~~顶一个~~
fdl0112 2009-10-23
  • 打赏
  • 举报
回复
没人来吗?期待中啊...
fdl0112 2009-10-21
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bao110908 的回复:]
你要用正则表达式来解析算示表达式?

我看还是算了吧,正则表达式不是语法分析器,做不到的,建议你可以看看语法分析工具 ANTLR
[/Quote]
正则表达式功能很强大,只要愿意花心思和时间,应该可以做到,在符号运算中的正则表达式问题(Java中),链接是:http://topic.csdn.net/u/20090921/09/3cf6b30f-0047-4b08-a8cc-594bfad2df4f.html 中已经有了个很好的开端了,现在需要继续深入下去。建议大家有时间把那个帖子17楼的代码看看,看需要如何添加修改。
语法分析器好像用javaCC的多吧。如果用语法分析器的话,该如何解决我提出的问题呢,欢迎擅长语法分析器的大虾们来给个尝试啊。
guodong66 2009-10-20
  • 打赏
  • 举报
回复
矩阵数学?研究生课程? 路过。帮顶。
加载更多回复(11)

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧