机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先来个简单
4 z; X- q4 m# t8 y/ L- U1 E0 y$ g' [8 J. b- \
>> syms t r a b q
7 T- F' i' x+ O9 a6 r. ?7 P>> x=r*cos(t)+a;. _. }" y7 Y2 x+ a- }! a
>> y=r*sin(t)+b;
& W9 L3 V6 z' K( i% E>> X=-x*cos(q)-y*sin(q);3 g1 Y' Y: q4 }& \; `
>> simplify(X)+ t8 S  U: |9 p1 P% w. h
  q! g8 E7 t1 ^) y1 h1 E3 b
ans =
0 `9 s) Y; R9 K$ @6 y4 Q) [" Z / k, K# i" G* N, C7 d9 x& F
- a*cos(q) - b*sin(q) - r*cos(q - t)    ! @* j* R+ Z. a2 P/ F/ b

) h* {% ~+ \. I复杂点   就不化简了
3 h. g' H0 [9 {7 o/ C. ?9 Z
>> syms t r a b k q A- O1 b0 M- l. o, p7 d
>>  x=r*cos(t)+a;
! X8 w: F+ t) s>> y=r*sin(t)+b;
& ^4 t, g+ a; r1 {>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];* @# K! z& d* Y: a% V  Q3 m1 h! X
>> M=[x;y;A];9 x. h. G1 I4 H/ z7 b) H8 b
>> NM=N*M
6 |% D; D7 ^% Z; G9 ?0 t/ y0 S8 G ' U/ Y* f4 |( `( Q9 O1 g
NM =- C" I  C9 o# j3 r$ d
1 Z1 r' H( \3 s) A4 r% T# r
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))& M& {+ m/ D5 X' m8 ?6 o! z5 f  `
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)7 g" B; f) N+ F. t8 E8 S+ C
8 [4 l, m7 Y& U0 u# b* p( L8 f
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
/ [* E0 w& Y4 G4 _9 c$ r% i; `>> simplify(x1)( T; b1 q+ x5 A- T& M! E

" _" i8 S7 ]3 P: Yans =
8 T0 G* R1 [* K% w1 ]+ y
0 H, R  x9 E; d0 Y3 E1 EA*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  

) L) Q8 l/ z/ q; g( _
" g* ?4 c( i5 y* b, B
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t): u- ^3 j) P' D% J$ y% ^4 Q

) G  j9 t8 }' x7 C  z2 A6 Z>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);
+ U3 Z, c. a& o1 L>> simplify(y1)
, @9 i9 A9 C# J2 c9 A. o: F( w
* Z$ f) Y% b' j; d! Aans =& M  J& i; \: P& Y
) V% [+ N# k1 {* `
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
1 i/ F6 J" R, y/ _  ?0 x

2 Q8 m8 C$ L+ L2 l$ \
回复

使用道具 举报

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

使用道具 举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27
$ J7 X0 P5 w, w5 d6 Wsimplifty函数要有控制参数才会按照你想像的运算。
' z  A/ L4 @" F( q' c: ?; ]
大侠   能举个例子吗   我这个不懂
回复 支持 反对

使用道具 举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33 # _2 n  z3 I0 |6 i: D7 t+ f
大侠   能举个例子吗   我这个不懂

. L: N7 \! |' M" O6 t7 Thttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html/ |0 D7 t& }8 M
# x! \. M0 O/ ]; @6 K
3.带有附加条件的化简
( q9 q& U) D3 a" M' n
>simplify(expr,{x*y=1});
* K4 _4 m' C, ~9 m3 G# J# }' z- @>siderel:=x^2+y^2=1;# N0 _5 q2 m. X; I3 j6 _9 L; ~
>simplify(expr,{siderel},[y,x]);
$ b* Z7 q( Z( _' h- @) f#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了8 [- b6 B% ?$ w5 Y
4.展开与组合- i  k: l8 j9 h0 O9 a$ \  N: \
expand &combine! t( [) p9 l" r( ~1 V9 t
combine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起- W4 d/ j8 u" a  |

% V; {0 h6 c( S$ M% d" J% R6 E* f" Q* \5 F. R. i- h- Q& j
1 y$ G' g) y( ?. k
matlab是用的maple的符号运算内核,使用规则一样。
$ x6 M2 M1 O. M# n: Q) A
! G7 i% c( j: l3 ~2 Y
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38   ]( c5 e7 G4 J2 Y
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html" k" G' O9 v7 q

( f/ V. {8 E+ E. e. ~3.带有附加条件的化简
. L- Z. w7 K( G; f, P& M
多谢了   等下去试试4 S% }( k. B# u
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38 4 M7 ~# \" E/ f% u
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html% q) t/ _& x! @7 Q! w8 @, N/ |

# j- ~/ v/ d& \. O3.带有附加条件的化简
; f# B/ g( _/ U- r' b0 b  v3 k- H4 B
试了下还是不行   可能matlab和maple 使用不一样. V" ~* I% Z; ~& s
>> syms x" ?- o8 Z# U* r
>> combine(sin(x)^2+cos(x)^2)   
+ o* v' N4 v& p0 K9 q) s( Z! ^) H+ V) D! J6 h  [
ans =, j* v7 k4 n+ W  q) u3 d

: [9 F9 O5 F. b0 q& Y: ycos(x)^2 + sin(x)^2          这个不化简单8 I' c1 I! T; E" [$ \" K

1 r& R; ~0 g1 O4 O5 t; x>> simplify(sin(x)^2+cos(x)^2)
0 r3 l3 f/ F3 ]! [1 T; T  P ) ^0 @' J2 ]* B8 U7 M3 S; [4 N, Y
ans =
9 a. C; r/ Q3 Z% W" ^2 [& v
. O: B, C9 |  B8 `/ {8 H8 G  f12 \5 K, f, n( V4 E+ }# `

) p3 S  Q' v0 d) P2 [* V
( f. l, e% n. A* Y; @- f" C+ B8 Y
>> syms x9 l- C* N9 C2 p* G' o$ C
>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2'), e: c/ y3 D2 O, E9 ^/ E

( G( v. y7 S- @. x9 ]: CA =
! ^4 _# n. `7 q 8 I5 y  d! |* n2 r$ r, J; L+ P
log(3*x) + cos(x)^2 + sin(x)^2
& H* D& i7 [0 ?1 n) J
9 O3 V; _6 A8 p; w! s>> simplify(A)! u3 F2 g6 D* y, E; i2 D0 ~, k

) C! C& A: G; r1 Bans =
2 t% h; `. o4 g
) W/ _3 N$ F; Zlog(3*x) + 1
8 d4 S& _0 G; u( l$ _8 p- _- ~ 4 X0 o3 p" c% A: q- A) o+ T
7 t: d3 Y: g& d) D7 Z
' l8 X+ m* Q  J) i8 _
>> simplify(A,x)
$ M; I. S( n0 Y错误使用 sym/simplify (line 99)
1 K0 H! u. V; m2 N/ U( K! wToo many input arguments.  Y' t$ m$ d& w) r2 c7 [

! @0 F/ U# V( q9 r) O4 G

点评

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

使用道具 举报

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

使用道具 举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1)1 a8 p5 Q) e% [
ans =  Q$ x, l1 Z7 {" O/ D' C
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t). z! \+ @6 q; m
>> 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)')7 c  [  z& F/ F9 k) w& F
KMM =
; M' g& L! Y% z1 M2 AA*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
. `& Q5 s% X  [/ s, d9 R" r$ q1 c0 t- R>> simplify(KMM)
  |8 h+ N$ `+ `; @* J* X4 Nans =
# |  W9 G4 p8 i5 wA*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)
( d' b: \5 n3 E$ ?; z! l+ W* @$ M% q+ u3 q: S' K; H
要先展开然后合并
" H% l( X5 \4 K% `) ?/ ]: C, ?
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-19 05:55 , Processed in 0.061522 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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