机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 4672|回复: 7
打印 上一主题 下一主题

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先来个简单4 i% B& O' ?' U0 C/ V6 g

% j$ {- |' d* c
>> syms t r a b q " K2 s6 `) O) n/ M6 r
>> x=r*cos(t)+a;( @7 z1 g; A: r5 I/ Y! P/ @: c& w) G
>> y=r*sin(t)+b;
, Z2 r8 Y" C$ |/ f' C6 e' J>> X=-x*cos(q)-y*sin(q);9 Q0 j6 n& ?& y" _) C; i
>> simplify(X)
3 S8 `1 w8 }, N- X; f
" `/ |7 [  p8 r0 X$ ^9 Tans =/ b2 u5 O0 N- e6 ^

8 _% P% O; z$ f: f0 A- a*cos(q) - b*sin(q) - r*cos(q - t)    & f& U0 z4 H& t9 X/ f2 V/ W& ~

  ?4 x+ t- j9 W7 T! u复杂点   就不化简了
! g1 q) J) Y4 _$ R5 R0 R5 n
>> syms t r a b k q A7 j3 Q7 i8 b& L# g
>>  x=r*cos(t)+a;
3 J- v0 I8 C' J7 D>> y=r*sin(t)+b;
3 k" \* ]" a: P6 E1 u>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];
( _2 c1 P8 ^; L" @" G) _+ ~' L>> M=[x;y;A];0 P6 U+ Y; R4 p2 u; j7 p( u8 z( {
>> NM=N*M% h. {  N' l2 E5 T
( M/ ]; n0 A2 P, z- ]* B
NM =
2 D0 v. x2 s/ a, b8 \
- z: K$ h8 a  s. U A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))
3 d) t% r& [! [0 I, `6 ? cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)+ ?+ e% B& Q0 N1 g/ v3 f
& z" V$ Z9 ^& ~3 p% {) N3 W
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));; b. g3 Y3 W. b# J6 D9 [
>> simplify(x1)
0 t/ j9 U8 H* t! j* r: y. m8 T + Y  x; A% B; w) ?
ans =  w1 F. ~  p3 {. o8 S

# s/ k: l, A- Q' L! SA*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  

. s. S+ ~2 R4 s& W, _% u
5 }8 A( U4 X5 A2 N, F7 V8 k
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)
$ a7 [+ B# F9 W( S7 P 2 Z, D; `7 \, z* x  c' Y
>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);
, }; s6 ?# z. G* p* z>> simplify(y1)  o$ s9 t0 ~1 b! `
" ?. q( ?" j7 {9 c4 g# E8 j
ans =( s7 w, v  ^0 \' `4 F$ [" B

8 A% S+ L/ n# p2 @: Y5 k, Wcos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)

, c; \/ @- w! r& _2 ^5 R3 x4 i2 d4 p* t  I# |
回复

使用道具 举报

2#
发表于 2016-2-20 18:27:03 | 只看该作者
simplifty函数要有控制参数才会按照你想像的运算。
回复 支持 反对

使用道具 举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27 + ]0 K7 r2 [; |
simplifty函数要有控制参数才会按照你想像的运算。
! P3 L! p/ R( p3 d" C% F
大侠   能举个例子吗   我这个不懂
回复 支持 反对

使用道具 举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33 / U  ~8 p; }; S" {3 d4 F5 p
大侠   能举个例子吗   我这个不懂

# Q; T6 E3 u% R; K  Khttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
$ T6 Q* W" w  m& u  g
. m2 A& E$ [0 [3.带有附加条件的化简

' n5 r5 U& H' A& }. j>simplify(expr,{x*y=1});. v; R- ?. `$ y5 K3 c
>siderel:=x^2+y^2=1;, {5 n* k! y& Z$ {  r. s2 ~1 T
>simplify(expr,{siderel},[y,x]);) n6 d7 F4 R/ i( g# y% l1 F" d
#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了0 j" b+ k& B- Q4 ]( \9 L
4.展开与组合8 F. I" [) G# W* S% z/ R; m
expand &combine# Q! @2 r! i" k
combine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起+ I% V5 z1 _" G  h0 X1 @: j

" W( R; @' V; I/ S$ ?" T1 H( `! O5 F( |4 C; B* s

2 d3 w; Z9 u- s( I, \8 @matlab是用的maple的符号运算内核,使用规则一样。

8 F* R* C+ H. b0 \0 }! M
* H$ g& r# n2 X# x: U) ^
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38 ) C+ O# I3 H% ^, A8 x( V- B
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
; f1 y( A. B: b- y- e% b
9 K# s9 ^9 X6 R' t+ S6 B3.带有附加条件的化简

: o  ~, l" w+ H3 A! U. ^- P+ ~多谢了   等下去试试
+ l+ g# M! C1 ~( \0 x
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38
8 K3 V; Q) s' V; P; chttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html) o7 F) t  I) e0 Y6 z0 o2 O& w
6 B/ E* C# s* J- {! M2 G2 S$ ~; @
3.带有附加条件的化简
$ a* o) m% |* j4 @
试了下还是不行   可能matlab和maple 使用不一样
! a% V# w2 B  Q' t
>> syms x
7 S5 \. |/ z& i9 w>> combine(sin(x)^2+cos(x)^2)    ) o7 I& y* k( A1 i/ h
: r$ M! ^. u8 a) Q5 K
ans =( x6 X" R9 F9 C5 A6 B( S
9 U/ M- R. J. ]  o9 J, z) C
cos(x)^2 + sin(x)^2          这个不化简单1 \: x. n, ?% F7 J
) d* t7 p# u) n3 A$ i
>> simplify(sin(x)^2+cos(x)^2). d5 @; I' Z: L  w

2 c" X( x$ J' m. m& d( v# z. S  jans =
" W& ?9 t6 t) Q, [5 P& J ; Y7 ~9 ]% V% A" L& |
1$ x: A- s# L9 [$ k9 y: ]0 s' x

# Q6 `* x, k; x9 [$ m
' t5 S8 x3 R  d; H, A$ p9 z
>> syms x
( t3 u# a+ `2 s% U7 t; c& y>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')& v& p, x. g' ^5 d

) B0 s; J- S3 T2 O% j$ H" @8 ~+ NA =! R$ w+ x! ^6 }  D& E
& _8 r) R6 l& n  @, B* r$ Q
log(3*x) + cos(x)^2 + sin(x)^2
: m( ]' I, J* N9 A/ c / ^+ j3 c. S% u7 E: x! ^
>> simplify(A)
# k/ f7 S7 T/ l
" G6 i; L: q7 c, Z9 g7 pans =" {0 u9 \4 g# @6 _- m9 L: q
1 W2 m% J" j- y( w3 Q0 [
log(3*x) + 1
6 A9 s  Z9 O9 C) K $ f$ X9 u9 P, q& f
4 _) E" r; Y) C" o3 M7 |

) q: G8 M, J! h>> simplify(A,x)  g& e3 O, r% Z9 a* _" u
错误使用 sym/simplify (line 99)
/ b; a" a2 x( L' A- H3 q, h; r9 zToo many input arguments.& G. b$ q( F7 Y1 Q! k0 r

! M% d* M, Y+ a. {+ k( M

点评

那就不清楚了。  发表于 2016-2-20 19:38
回复 支持 反对

使用道具 举报

7#
发表于 2016-2-20 19:28:09 | 只看该作者
matlab大学里学完了,我就在也没有用过了,已经看不懂了
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1)
, c3 S) G3 n. t  p4 J  m8 T) ]ans =$ S  q+ [" ~0 ~1 [' z7 r
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)8 ]. F6 ^( W( p  n* r( Q
>> KMM=sym('A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)')
5 J+ D5 x  p6 n+ Q- G& e! JKMM =% Y; \. m; j" a4 `
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)! G# z$ n. k( A  z/ u! o* _( U) Z
>> simplify(KMM)
- u7 A' N) t: h8 H( V8 Yans =
9 a( w* ~/ B4 p) I& S: EA*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)0 U! i7 n+ a) `
9 I+ \) ~/ L% k6 d( X/ h
要先展开然后合并
' y0 T& i: w1 C; ?: i
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-11-11 15:46 , Processed in 0.055650 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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