找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 5395|回复: 7

matlab 符号运算的化简问题

[复制链接]
发表于 2016-2-20 17:49:24 | 显示全部楼层 |阅读模式
首先来个简单
1 }) d" C4 B5 q) S2 P8 P
' t+ B% `. J) b
>> syms t r a b q 4 o2 c' X3 y, T; g6 b5 A- M
>> x=r*cos(t)+a;
6 F4 ~6 T, k, B" n( i; d  p>> y=r*sin(t)+b;
: e. T2 @  ]) g4 U  W7 f>> X=-x*cos(q)-y*sin(q);* T) W# U3 `. g# I. j2 Y, X
>> simplify(X)9 L, E* n* ]  H6 J) v* h3 x

! u, q. `4 b4 dans =6 A1 U0 r% H) W2 c+ ]" t4 D
' Z( W5 h8 Y' x
- a*cos(q) - b*sin(q) - r*cos(q - t)    ( ^9 V$ T' V, ]: q, c5 C# t9 o/ I

+ R0 v* b; ^+ y1 I复杂点   就不化简了
8 P/ N" s4 T; W  b! x
>> syms t r a b k q A' {5 {/ d& ^3 U$ ~1 ?0 \
>>  x=r*cos(t)+a;
, n/ }! U# Y5 e! Y8 k>> y=r*sin(t)+b;
  j  _$ N' G/ J! Z>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];
4 a! b% ?9 V. z: C+ }/ K>> M=[x;y;A];  I+ G7 Y0 q+ L8 z
>> NM=N*M
% r& Y1 y5 I8 [! l/ P9 V+ t
! f2 H2 ]1 N" WNM =# i; r) r0 [5 F6 o, Z) f! \8 l

$ m; ~# a' [4 g6 {) W* v A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))
+ h% d# ?4 H& o) @% u cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
; C" J1 o# y' H9 u6 v# E5 C
& U3 S" [- B+ ^" e# a>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
8 N, E7 z/ x" P$ E9 p>> simplify(x1)4 N, n) B& e9 w- r* J! o
% d! q  @' a* w3 h7 d$ [9 f
ans =
- \6 P6 W) x2 W . q% z& L4 _9 `. P; J  I% K+ B
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  
3 t7 Q; R- C- J4 _
/ a& X+ @9 v( g  e& k: |  s
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)6 D; W$ k# C2 Y4 b+ K. `0 Z: Z

3 ^8 b9 x" D. D" p2 ?>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);- \9 \0 A$ K3 O4 W0 A
>> simplify(y1)5 ]; S4 ?: _" ^- E

: s: r" D' o6 w, _8 k) z1 r9 xans =/ K" l6 h  T1 m

1 n6 D7 m1 ]. U* K) f! l" U* \7 ucos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
( j/ b/ u, P, I* {8 p7 k1 A

/ ]' d/ R& c7 ?. r" `1 f
回复

使用道具 举报

发表于 2016-2-20 18:27:03 | 显示全部楼层
simplifty函数要有控制参数才会按照你想像的运算。
 楼主| 发表于 2016-2-20 18:33:16 | 显示全部楼层
明月山河 发表于 2016-2-20 18:27
' @9 U: n$ G& V; n9 }1 R8 @simplifty函数要有控制参数才会按照你想像的运算。
' p+ o; K4 t, r! D; N) j: ^0 I' V
大侠   能举个例子吗   我这个不懂
发表于 2016-2-20 18:38:11 | 显示全部楼层
shouce 发表于 2016-2-20 18:33
" d. j' H* M9 T大侠   能举个例子吗   我这个不懂

! o5 E0 n4 s/ s. K3 q8 I1 Ohttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html" F! y* _1 O# I+ b) y6 Z. R. T3 h
0 `. s' A  i& \8 c. g" V# P
3.带有附加条件的化简

% [& L5 {( T/ I>simplify(expr,{x*y=1});/ O) ?4 C4 P; w1 K6 j6 D. `/ P% L/ g1 x
>siderel:=x^2+y^2=1;3 D% \& A/ V  C8 j, U7 j- s- c
>simplify(expr,{siderel},[y,x]);' t  D% k1 k, U2 N
#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了
3 [6 m+ L0 F& I3 g+ C4.展开与组合# d( r; g( Q  d% ?+ C" z) }+ W. c% n
expand &combine
1 u2 ]8 v+ C% ]6 p3 I0 V6 qcombine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起- _3 m4 M3 Z- ^* l
5 x% G" Y8 N8 ?# P# m9 [" G
2 q- M! J. ^; p3 k
5 R6 k. w0 h, B& v" \9 o& W
matlab是用的maple的符号运算内核,使用规则一样。
2 V+ s2 e1 C  W* F2 X7 u' F  K

6 i/ {/ K9 k$ L5 l: y6 }/ _
 楼主| 发表于 2016-2-20 18:42:54 | 显示全部楼层
明月山河 发表于 2016-2-20 18:38
4 E- W" ?% D+ \6 N4 I; [http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
. B# t: S6 A* s: ?! |+ {! c
8 ^4 d8 h# j, l, G3 E0 P& B3.带有附加条件的化简

% Z  j/ X  j( b多谢了   等下去试试
) i, c+ j& K" _. }9 H) ?
 楼主| 发表于 2016-2-20 19:09:49 | 显示全部楼层
明月山河 发表于 2016-2-20 18:38 1 V( R, Y' R: L" s/ W$ E6 y6 m
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html2 u* O6 T3 G0 h8 }" r" d
$ P" t( N* ~+ ?( {% x; D
3.带有附加条件的化简

! q5 S$ G9 V. b1 m& D+ z( k试了下还是不行   可能matlab和maple 使用不一样
) N( U- V( p. z' K- o3 g
>> syms x0 j$ T8 I! G+ s! n% n
>> combine(sin(x)^2+cos(x)^2)    8 e  E$ x  s0 n+ k
' ^& t+ s0 H, D8 e' W9 e
ans =. H6 F. ~  h) B; X) \: V

$ W. K0 @3 O2 A: t/ L7 mcos(x)^2 + sin(x)^2          这个不化简单( `; L9 \0 ~* ^. m+ A$ [0 D2 N

3 c3 E9 ^6 d) `6 H>> simplify(sin(x)^2+cos(x)^2); u0 W5 S- q7 t: v# E
# _- Y% Z# z3 B1 T9 b/ C* o: n+ ]
ans =4 h1 Q" K; }- e/ G8 V* g
# P; m; B: t$ p& y
1
6 y+ c4 Z9 p* `0 v1 K+ _
6 S! R; i( R) k- o2 Z% o: ?
1 C! G8 ]5 B, M% |! [5 H
>> syms x3 _- s1 K! j7 O  o7 s# n0 @
>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')
. b" m+ h/ t9 M/ |* P6 k6 V+ d( g0 @
) C% Q$ u, b& m* AA =9 j, R. S+ N$ a5 S# @. `1 q

9 H2 p6 D9 h5 K+ a9 H8 c* K3 }log(3*x) + cos(x)^2 + sin(x)^2% H- N5 Y% r  D( V  _- \

4 n2 A' A+ x7 d! B- X7 }  W7 x6 |>> simplify(A), M$ R( g' N) M' ?" m! U; X

' n0 S/ y4 O, ^9 P; `  fans =; U! ^+ G3 q  U
! T2 |  Y! F$ y/ G
log(3*x) + 1
8 [2 D+ [+ c9 }7 L9 O ( J2 }" y8 @  {' x
/ ]1 H# p3 S7 I  @2 x+ l0 H7 n

/ J7 A* G2 S. A& l0 W1 A0 w/ v>> simplify(A,x)5 Z1 c" n8 O) N# q
错误使用 sym/simplify (line 99)* @( Y3 D) ^4 }' y( B
Too many input arguments." r* Y) c6 i1 @! T$ M( K7 X( n. p- }

; Q; U( t& {: x

点评

那就不清楚了。  发表于 2016-2-20 19:38
发表于 2016-2-20 19:28:09 | 显示全部楼层
matlab大学里学完了,我就在也没有用过了,已经看不懂了
 楼主| 发表于 2016-3-23 23:44:22 | 显示全部楼层
>>  expand(x1). D8 P' R  O5 q; J+ @, |
ans =$ X, ~/ C& C3 U) C/ y
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)* j9 C- w& v0 o
>> 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)')
/ |/ L3 R1 q' v2 \7 PKMM =! j5 L  z# ]; t0 Q
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)+ G* a) W' |- e, d. e4 z
>> simplify(KMM)) m) T( G' e# m0 p; I- b, e
ans =; S% z4 _. z3 b
A*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)' [$ O4 Z7 {# j$ O# T( S

% e2 C/ U5 O* S4 u9 e要先展开然后合并

" v  F& Q2 T( I1 B( \
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-7-9 14:09 , Processed in 0.069866 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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