找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 5423|回复: 7

matlab 符号运算的化简问题

[复制链接]
发表于 2016-2-20 17:49:24 | 显示全部楼层 |阅读模式
首先来个简单& `; b9 Z( A0 r+ e

' N  H' k* N- Z+ S; w0 ?
>> syms t r a b q % n/ g& a5 `9 w4 v+ y& s
>> x=r*cos(t)+a;4 F7 l, o/ ?: x. e
>> y=r*sin(t)+b;- U: U% P  a" w* G$ }
>> X=-x*cos(q)-y*sin(q);
+ v4 A# g8 S* H7 k* n  D1 z% L4 C>> simplify(X)1 m) `  E0 a. e

4 U  \. H5 ]# M5 Q6 qans =
4 c1 u2 A& e0 r$ q; O
9 N/ c! H+ ?3 `6 t, Y- a*cos(q) - b*sin(q) - r*cos(q - t)   
' t( v* M! a/ r8 K) F5 y7 L
6 T2 t* @  }7 ]复杂点   就不化简了% i3 z! x' _! W" k7 Z% G4 W
>> syms t r a b k q A
9 ~. |7 j3 y: `' f, H! r! S>>  x=r*cos(t)+a;) W/ ?# d1 ^* ~( u: r
>> y=r*sin(t)+b;
+ L6 |/ Y) p% t; M>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];
0 b: l$ |! ^) s0 c3 t5 W$ M>> M=[x;y;A];3 a& A5 _  m  E: @" {6 J; u' A
>> NM=N*M
" i1 M5 j, P0 u' C, j
$ N' h: q6 V& kNM =- ?  f  C0 i2 k: r

' z0 `1 t; G7 m2 ~% d/ g A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))9 I+ e& U: ]7 |) d" W
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)! U2 d+ J: [* ?' `. ^
2 @6 J' @: S0 C6 I
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));2 P6 Z8 Y6 U% P
>> simplify(x1)
; H) s+ H9 v3 F: Z3 a' H5 n( V" s 8 Q0 c4 h" }2 D% {
ans =6 ?0 i, S& F0 O4 j) J) H! f% Q3 D" G0 m

8 m9 m! t7 L6 gA*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  

7 q1 |' F/ ]' V6 |) C
; G( X6 z5 a- {7 b4 Q% k# N
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)
! }" V$ f. p  j ! j" j* ]4 S+ D) Q7 d
>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);
$ E) y0 q; K' O$ ^) R  ^+ s>> simplify(y1)
* W, |+ t& y6 ~0 @" D; [
* W; C! G0 K- S) S! h5 h. Aans =
9 |7 q( e' u% `) O $ Q& E* y9 g; a0 H1 g- ?7 e
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)

0 v& p) q" H) w. [& ^! {" Q) m+ ?1 U' `! \" T
回复

使用道具 举报

发表于 2016-2-20 18:27:03 | 显示全部楼层
simplifty函数要有控制参数才会按照你想像的运算。
 楼主| 发表于 2016-2-20 18:33:16 | 显示全部楼层
明月山河 发表于 2016-2-20 18:27
: O9 p  [0 p5 ^! Rsimplifty函数要有控制参数才会按照你想像的运算。
+ ~& e. j& ^' \/ }& V6 e& v
大侠   能举个例子吗   我这个不懂
发表于 2016-2-20 18:38:11 | 显示全部楼层
shouce 发表于 2016-2-20 18:33
# w% a# d# |7 i, O大侠   能举个例子吗   我这个不懂
0 f% w+ |' M5 m
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
8 T. T% ]# U9 p6 t
! l  `  u" ~! M% v3.带有附加条件的化简
7 D# O# o& ^/ C8 r- h* r6 K4 v4 t
>simplify(expr,{x*y=1});
, W" c- c0 A/ F+ v3 `6 R- U0 E- `: o  q>siderel:=x^2+y^2=1;  \( K- Y4 k$ E5 K7 ?" b9 e
>simplify(expr,{siderel},[y,x]);
8 M& P9 k0 R% i: |! |0 W; O#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了
9 N6 G# B3 }' {% i9 N4.展开与组合
! V6 C/ t0 `) W+ S  u" Pexpand &combine
5 r" V4 R4 C9 F$ dcombine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起2 K% Q5 c; x# D/ w; u1 M
" [0 w" M/ T/ Z/ U

+ a3 q1 D0 m  K0 F8 Q5 P  _+ j
6 `2 }& R& x$ ]$ r+ I* `0 j* }6 I* \matlab是用的maple的符号运算内核,使用规则一样。
) h% r/ n/ S) i$ s" s: M

, I% [% ~, @& e8 d- I; e
 楼主| 发表于 2016-2-20 18:42:54 | 显示全部楼层
明月山河 发表于 2016-2-20 18:38
3 M4 b1 p' C# ?) r5 L% \http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
1 Z0 Q; y2 i- Z  ]% W: y* ^, O+ E& s. {0 V# n
3.带有附加条件的化简
: d- |  _" z* d' [: g* `/ n
多谢了   等下去试试( d0 m* ?4 c* h; ~' ]
 楼主| 发表于 2016-2-20 19:09:49 | 显示全部楼层
明月山河 发表于 2016-2-20 18:38
8 s1 C& |; Q$ n& [  G* V+ Ghttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
8 L2 w. S2 m9 o" v, i
4 C; ?' M5 W/ ?: d2 h0 {3.带有附加条件的化简
7 k. s1 {/ A, I( c1 Q
试了下还是不行   可能matlab和maple 使用不一样' N+ y7 N3 D  Y% I, k. z
>> syms x
3 l. Y, D- z  n  `; \1 L" x>> combine(sin(x)^2+cos(x)^2)   
% g; O9 i, I1 U+ l% h
/ J4 e( n& q$ w. U
ans =
, J- m& r/ [7 G0 Z- a. T
3 K# n# _9 q: \# _' s  L& C9 ~cos(x)^2 + sin(x)^2          这个不化简单
9 V6 y% h; G# R6 P' @8 X 7 \  M8 ?7 n- K7 N3 F$ `6 C" b, s
>> simplify(sin(x)^2+cos(x)^2)
5 v9 h4 F( l+ C& Q
2 Y8 ~. ^5 W+ x/ ians =0 e. ]9 o, u" w- g% V7 x
/ i/ d8 t' ~2 w( N4 p3 A$ z# S- |, e2 a
1
! ]/ Z* O; b% a( y" A* ]' {( n
8 D: A: N* d/ h7 E/ G* p( Y0 T
7 T" g& c# C0 g5 N1 ^+ s
>> syms x
  {6 e! o) j) Y6 N>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')
" N2 ~( x' A, |7 M8 M9 A' K( B ) K$ B! Y$ _, f) c' D( T
A =: S; A. o4 I6 E  V' Q7 s7 e# L/ B
2 ^& \& {3 I) S3 d
log(3*x) + cos(x)^2 + sin(x)^2
! f$ L7 w% ^, Z- D+ g% F/ w4 J6 r
, g! V- R5 J+ e) n; Q4 X8 [>> simplify(A)" A4 P6 J) \: F# Q6 J! }* F
* x4 x5 d# I( F1 V
ans =: x. f4 e; s& F* H- b6 G
6 O2 m# p1 P# T2 L
log(3*x) + 12 V. T$ R% @+ G5 R4 }

0 Z7 p" c# a( |1 f: ?% J) {, X4 _" S; s; Y

! V3 [; Q$ S- L3 o  n>> simplify(A,x)0 X( L5 Q; [8 o9 i' o
错误使用 sym/simplify (line 99)
1 i$ _% X& C0 ?: KToo many input arguments.$ A0 ]6 z( e6 y- z6 T' X1 D! m3 N

; O5 @6 p# Y  O; I3 A3 }

点评

那就不清楚了。  发表于 2016-2-20 19:38
发表于 2016-2-20 19:28:09 | 显示全部楼层
matlab大学里学完了,我就在也没有用过了,已经看不懂了
 楼主| 发表于 2016-3-23 23:44:22 | 显示全部楼层
>>  expand(x1)
6 {% W  g5 Y+ x) r: `' jans =6 N( m  X' m/ B6 A0 C! E
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
  G8 y5 \& k* y8 i4 U>> 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)')
( N$ |4 L6 c# @. v" aKMM =3 X- R& Y! z9 v& s6 G1 t
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
# i7 j4 m. N- I4 C>> simplify(KMM)  [" \: }' B, O
ans =  o( U! w5 F8 x! i
A*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)
- n+ W. a3 n  Y. @3 f0 h, J
2 {" t" R3 h( S9 x( u& H要先展开然后合并
2 L; \) K" |  y3 I6 K7 ^
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-7-21 11:12 , Processed in 0.073538 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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