机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先来个简单
9 k. ]8 A$ _5 x% q% j( @4 Q) F  C4 x
>> syms t r a b q % |- P. s: H. P9 I. S* K# |
>> x=r*cos(t)+a;
* I3 o# F: m2 ]7 O2 K>> y=r*sin(t)+b;
* x( N' t) T! Q: n% b* n1 @' n& K>> X=-x*cos(q)-y*sin(q);
( z, g; r0 O' b5 a: D) d  D) s>> simplify(X)
- l- |1 A$ A. _% _' R9 v' f
5 q  y$ \8 _  s' Wans =
4 ^: e5 d/ n  b( p: J
, E4 e) Y  }% ?, W( d: ?# ^4 I- a*cos(q) - b*sin(q) - r*cos(q - t)    3 V, q, J- E5 p9 |6 h; Z

6 _& ?: a7 I0 g, ^% s复杂点   就不化简了) _; a+ c. ^/ O5 X. d3 y$ M& x
>> syms t r a b k q A0 a& g/ l3 V; R* U% r$ [
>>  x=r*cos(t)+a;& M, k0 ?$ p! R7 f& F
>> y=r*sin(t)+b;
+ f+ h5 J* m" Q3 D, m) A6 V+ L>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];
) X& q* \, [5 \8 D/ u+ w* r>> M=[x;y;A];7 ?9 w* N. b5 [4 H: F/ i
>> NM=N*M0 _$ k- w* ~4 ~3 h1 F

6 g/ j# y1 Q( M' \3 ]3 u5 vNM =! v: g4 p4 o( r& v! @
* d8 \1 [( g- H' [
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))
* ]8 N  r- X+ M5 W" N cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q): U9 `, M% T( R: K5 Y0 t
0 S9 \3 ], @  H" G
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
) Z8 @4 J( `7 M9 k, A9 G>> simplify(x1)
# \& [/ I* I' ~/ a) v' E$ |
% R. X  C- J$ v4 p5 qans =& R5 ^+ _2 g, |1 ~1 @6 B

  C( S# u4 G9 Q8 r0 j5 Q4 R! n7 s7 dA*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  

$ i" M/ L) d% N8 h8 q" w/ f; s2 E" H! i! f; r0 a4 m4 N
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)
' ~# p6 f# b4 _, t3 Z
' u  o2 Y" l' N6 {! s>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);
& N! c4 F# i  T8 q' ]>> simplify(y1)9 V0 ~. n& [6 I# h

- [9 o6 X' h; Ians =
, d( o1 q" ]& Y" H8 N; U/ D 0 b; \6 d  z8 g4 _
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)

6 k5 k; L; ~5 Q: D" L: n/ E) y$ I  T! `! Q3 ^
回复

使用道具 举报

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

使用道具 举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27 ' d' `- y! I. g% A, s
simplifty函数要有控制参数才会按照你想像的运算。

$ |* ^5 ?) D& O+ w. X, C) o大侠   能举个例子吗   我这个不懂
回复 支持 反对

使用道具 举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33 5 O) H( a  I  x% X5 F1 n9 G4 h
大侠   能举个例子吗   我这个不懂

6 t* i; k* w% A9 G+ uhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
+ }' ^" o2 O8 f2 j" V& Z( p2 e3 A) T+ p. _! C; z* z# h+ O
3.带有附加条件的化简

" F6 ?9 l9 q& e>simplify(expr,{x*y=1});) m/ P$ N/ i( \2 f
>siderel:=x^2+y^2=1;
% O) _, z" h8 G>simplify(expr,{siderel},[y,x]);9 i2 P0 {3 o4 B2 I# q
#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了
- Q: N/ j& F4 u2 w/ i& f- W4.展开与组合
1 z! q$ Z( C! u. y  B; p$ \! d. f9 Vexpand &combine
" {4 K8 G5 t) \  vcombine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起
$ X" \( j( Z9 i( U* I4 f1 a- r* o8 f) X+ f

( r- f% w  n- o7 }" W" Q3 x
" K2 z' O1 A5 z- O/ W$ e7 i- G; Xmatlab是用的maple的符号运算内核,使用规则一样。

8 B. q$ X' f2 v

! h2 k% r2 J% \( N1 @  M4 x
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38
) H2 I! H; @% z9 a# h8 g6 ?http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
2 m( U1 I+ K" t5 Z$ I6 w. ?8 b+ Q: k0 _, u# i' J7 @; [
3.带有附加条件的化简

8 p' X9 C# a" c- c  r- `多谢了   等下去试试
& c0 {- |' k7 H3 U( g
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38 8 B" w. O$ E6 t
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html4 ]5 o2 z" j) j6 O3 \3 `" R/ _: z

- G8 q  O  r& R2 w2 u' R9 \, ^1 ?3.带有附加条件的化简

$ c0 T# [: Z3 p% \试了下还是不行   可能matlab和maple 使用不一样# S9 R; Z; Y( {* \
>> syms x
6 B7 a8 g/ H# a, p>> combine(sin(x)^2+cos(x)^2)    6 O. _2 R( ~2 T6 r2 ?: b$ J: g( W
) Q: k$ h( W- e9 G6 k* ?# [1 q
ans =
: T3 K: r" A! Q3 o 3 m: d+ e& F3 c% q
cos(x)^2 + sin(x)^2          这个不化简单
- q  \' L( `( U8 j: Q/ [0 m
; F3 w& |# A# \# Y/ o8 m>> simplify(sin(x)^2+cos(x)^2)
3 a4 _: c  L$ K. {3 T; I7 A ( q0 u2 O6 ]; ~# x% |) ]
ans =
* h  t% G( D7 }( A6 W5 {
$ z9 ?+ `- _: g% [2 V! r16 j' o2 S! N* ~( M# J
: ^2 H4 v8 S' Y+ O- L# L
! `, g* k# J7 `* Z0 S# h3 a
>> syms x
0 L* e+ L0 m* }>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')+ z# ?3 r9 U  j

4 H+ n3 K  I0 H2 s& v$ m( rA =
; T9 B2 a/ Z2 T7 L- _! Q ( b1 Z2 M: k; b$ J
log(3*x) + cos(x)^2 + sin(x)^2) ~5 Y! U; z, M9 ?

& Z- q, ]& ?4 G3 D: ^>> simplify(A)! h: Y" c9 F9 e& m. F2 j/ e+ ?

8 t- L) W3 w, pans =7 b1 O3 u/ g! C& f/ x7 r

* {8 B2 j6 l6 K& v3 a$ x" [log(3*x) + 1% q( L7 V. e" K. Y9 W/ C2 _% e$ |

& y" Z) {" h* d& b" T6 p
1 h3 G, ^* L2 C

4 T' N) @# I' k- n2 @8 {) G>> simplify(A,x). z9 M: l) O& d  J
错误使用 sym/simplify (line 99)( y1 J2 E/ s. M1 Y! C  H( @
Too many input arguments.
1 H& ^/ n- G/ z% I$ u
; C' e0 H, w8 }" i

点评

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

使用道具 举报

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

使用道具 举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1)
; o6 Q/ C( X: Q9 H9 _ans =
  b. K; ]6 l# F7 `A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
: Z$ i2 a& }4 M- P>> 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)')
0 F+ N9 x4 M% c9 [KMM =5 Z: e( R. d8 p3 p9 f7 K3 O
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)5 P/ u. {' F9 N3 @! ^0 z* n
>> simplify(KMM)
0 _  ^$ ~) ]! S! j" s  J7 y: j- I" [ans =
# ?# j4 s' J. rA*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)( H" N2 o% T& A5 l2 x9 G7 u

" c7 ]% F1 y( s, i要先展开然后合并

! o; X& M, R. R9 X* h' P
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 05:44 , Processed in 0.057543 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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