机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 4779|回复: 7

matlab 符号运算的化简问题

[复制链接]
发表于 2016-2-20 17:49:24 | 显示全部楼层 |阅读模式
首先来个简单
8 |% i, G% n& g6 X$ H/ x5 H7 G  `$ A2 l% l9 y& }, T
>> syms t r a b q
6 g* K  o! i3 g>> x=r*cos(t)+a;& R$ g& k3 d% Q6 d* P4 g7 x
>> y=r*sin(t)+b;0 g$ U  X8 _: X  c9 J" F6 J5 h
>> X=-x*cos(q)-y*sin(q);
% N/ ~& G$ N; u, N>> simplify(X)9 N: z3 T5 [1 e- \3 ~" }

. U! n2 m  ]* Q5 |- v" Eans =
' \$ l5 [% |% K 1 _0 \' Q. s& N6 T" V- i
- a*cos(q) - b*sin(q) - r*cos(q - t)    . [* {+ L2 f8 S6 ~; T
& o/ Z* v: C1 y' v
复杂点   就不化简了% N6 Z$ H* I2 }# |+ X
>> syms t r a b k q A% M# A+ X( O& G- h' x
>>  x=r*cos(t)+a;9 y, {* _& [+ r
>> y=r*sin(t)+b;3 w1 _6 q' L* }* z- N5 f
>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];
: y! m. p0 G! L- \- W3 Y5 L>> M=[x;y;A];8 q1 Y, {! h4 f1 v7 k5 S; Y
>> NM=N*M
3 F% O0 N  _' {1 R$ ~" ?
6 ]( ^+ h( V) t! I# [/ }" `NM =
% a; V* b; x# @( E0 ?' s0 ?
0 M3 m% n8 A8 C8 _) t5 n  ^5 ` A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))
& X6 J6 G. E! `, H/ Z: y0 C cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
, c' X& w8 t9 y$ ] / K( y- d9 d2 r5 g
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
; o8 }  k0 l! {/ Z6 N>> simplify(x1). W# O. {4 }0 ?# c# I# M* n
' K5 d" B- |/ F2 Q  b* n
ans =
  N; [% J1 a! C4 u/ j( }$ W# J 7 u. `( }" [5 ~" P
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  

' ^) z& @! b) Q6 Z% a' S0 x5 d2 G' Q& Y9 j7 q6 P
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)5 P1 f; x3 a) t% ^

+ F5 ?& N- J7 n>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);
  K6 D( o7 P% a  s4 R: N>> simplify(y1)
3 j# o6 r" b' e" s " |& Q3 c+ B! ^: |! Y
ans =
( n" B* |; z1 ]* {0 H
0 V) N' e0 e4 a' V3 c5 `! mcos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
5 _( x7 K0 H& y. R" A) _

- Y  C$ W4 Q. M  [- \( u  A! g
回复

使用道具 举报

发表于 2016-2-20 18:27:03 | 显示全部楼层
simplifty函数要有控制参数才会按照你想像的运算。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-20 18:33:16 | 显示全部楼层
明月山河 发表于 2016-2-20 18:27 1 S6 r' i8 s/ K7 \: Z& E' @
simplifty函数要有控制参数才会按照你想像的运算。

. x5 }/ U9 ~+ a5 V1 |) ~大侠   能举个例子吗   我这个不懂
回复 支持 反对

使用道具 举报

发表于 2016-2-20 18:38:11 | 显示全部楼层
shouce 发表于 2016-2-20 18:33
8 l: s( z4 Q) Z) a大侠   能举个例子吗   我这个不懂
2 A7 S9 O! [2 F
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html. \6 D$ m; S, n3 k

4 ^" _. {; t& U5 V. j; i! z3.带有附加条件的化简

0 s, C% @, E& v' u# ^1 Y>simplify(expr,{x*y=1});/ M. h; ^' B" A( Y4 n5 u
>siderel:=x^2+y^2=1;% o+ s4 Z1 T4 H$ R2 G6 x" y" f3 c
>simplify(expr,{siderel},[y,x]);* v( F) l  e3 P) W" F- N  |+ f9 R
#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了
1 K4 O  b0 c, n9 o2 y, m4.展开与组合
' L  l7 R1 s' Y5 I" }5 }( Hexpand &combine
+ Y2 B# F3 ?% Q( o/ z" q+ X+ L6 Pcombine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起
" I  n0 F& X  s0 A% t3 H& k$ g: C! Z* V: s, a9 U* |+ O
8 F1 k$ ~+ ?5 q+ ^+ @: D$ S2 O

5 k% N, ~/ w# H" pmatlab是用的maple的符号运算内核,使用规则一样。

1 ]; d1 d1 u( P7 ]1 E

9 q& D) j5 j4 W
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-20 18:42:54 | 显示全部楼层
明月山河 发表于 2016-2-20 18:38
  s6 m  @; m- _2 D" Yhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
2 Q0 X, B) N/ m  b& I% t! }2 O& b3 v3 O  X3 ]# v/ q: V
3.带有附加条件的化简
% E. J' B; }- U8 q9 I
多谢了   等下去试试
/ _5 t3 ]6 ^# N% f( w0 {/ `
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-2-20 19:09:49 | 显示全部楼层
明月山河 发表于 2016-2-20 18:38
) l! C; m+ n, ~http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
' t1 i9 w! g; b5 s- e. o. `( r2 _3 Z2 p5 f. I
3.带有附加条件的化简

/ T0 B$ i" R- ]: E8 u试了下还是不行   可能matlab和maple 使用不一样' a( J4 s8 Q6 ?7 f
>> syms x1 l+ N5 ?; i& j8 [% K/ u
>> combine(sin(x)^2+cos(x)^2)    - Y6 T7 b9 l1 ~

3 N7 G' ^( g7 `* ~, p
ans =7 Q" @) C( ^( Y6 r7 q/ x

3 u5 F* [: s0 Ycos(x)^2 + sin(x)^2          这个不化简单
+ {9 o7 e" @- k0 N( @: K" w) _
* h. P- j& r5 y  P4 s9 y>> simplify(sin(x)^2+cos(x)^2)
! m$ t, w! H/ C1 n& ?8 L5 r
- c4 g& i6 ]& v2 K6 Fans =
6 O& H" I8 g8 l9 M7 @ ) V3 J0 R5 m* n1 E# I% R; u! n7 B
1  a1 q  o0 {, i& M& N) `0 P

7 _, C5 q& R  V5 f! J, z6 b* x! \6 Y4 n
>> syms x
$ @( q; z/ M+ ?9 R+ D, }; D4 j>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')) k' p4 z& A% O; }1 t
5 r! V8 F: @! A2 h# U
A =1 s* `4 I! ^" h- g3 ]6 B7 j# h2 O  N2 C4 [

' P. A/ b  ?" Glog(3*x) + cos(x)^2 + sin(x)^2
" y; m- F  w" N
7 H, ]  K, c: Y>> simplify(A)
$ e2 v% o. t. T1 n( t# _0 A , V3 Z: A/ d9 c% {* F
ans =2 P( k! ^+ n/ A7 e, b3 E( v, S( W
& l3 R( H" x2 w+ C
log(3*x) + 1
' h8 k6 |, J% g  d6 ~
3 x9 I( k+ s7 ~/ r" p; C
  \8 F( {# h9 ?+ ?7 P: b8 P8 B4 R2 F( ~
0 \3 X5 B. Z  B# |( C) |
>> simplify(A,x)5 d$ J3 X. ^9 [' l8 q
错误使用 sym/simplify (line 99)
0 Z" ^/ Y1 R$ y; I2 `  HToo many input arguments.- M7 `1 e, K: M$ V4 h% e! ~
1 _5 T; R( `! e1 T! I( `/ g

点评

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

使用道具 举报

发表于 2016-2-20 19:28:09 | 显示全部楼层
matlab大学里学完了,我就在也没有用过了,已经看不懂了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-23 23:44:22 | 显示全部楼层
>>  expand(x1)
5 T' A+ S! M$ q* [( Zans =
( a6 M2 Y) X8 ^0 L6 X$ xA*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
. i, |+ N8 W8 {>> 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)')
: O- Y6 g7 q9 T4 B, UKMM =& F5 M+ |- R! J" [3 u  x- w* U
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
. M7 L" m+ D& x) X>> simplify(KMM)
  t  r8 r7 s! |! a" A, s. H: Aans =
# M6 i; g$ o' q% M! YA*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)
# V7 i" {: X, E% m! [% c
" s. x+ j3 j6 t7 D& e4 M# s要先展开然后合并

7 `* C! I+ o7 Y# i& d+ v& O3 V
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2024-12-23 14:43 , Processed in 0.052415 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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