找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 5692|回复: 7

matlab 符号运算的化简问题

[复制链接]
发表于 2016-2-20 17:49:24 | 显示全部楼层 |阅读模式
首先来个简单3 T4 p* f) {( f1 x, g; B, B

0 S1 o% z5 J- l8 {- \8 w) v
>> syms t r a b q 2 h: `" R0 [' V6 I. I
>> x=r*cos(t)+a;. C3 j3 f) L+ C; Y' o
>> y=r*sin(t)+b;6 C* f2 S- T; q7 o2 y
>> X=-x*cos(q)-y*sin(q);
+ G$ R. d) q# B>> simplify(X)
. r7 c9 Z$ V6 K! f2 b. Z/ x. U
( m% J$ a2 K4 d2 [" Eans =! [& |( w# u, U, A- q- _

/ C4 h# L9 P; ]9 w0 L& p- a*cos(q) - b*sin(q) - r*cos(q - t)    & I( o" T' X- P1 b& ~  i
' H! ]  C2 L+ ^% O7 U, J' U
复杂点   就不化简了1 b# d5 [( q4 U+ Q6 R
>> syms t r a b k q A
) ^: V/ D* K# k; d( n>>  x=r*cos(t)+a;; k1 o4 x& b" ]8 q3 Z
>> y=r*sin(t)+b;9 D" Y4 u: Z0 A
>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];5 B9 |/ U' r& ^  Q! V$ q
>> M=[x;y;A];
6 F/ h# `' H" ?2 ~>> NM=N*M+ G' s, E. ]6 Z+ p

0 i& O0 ]/ Z0 G. l8 k3 ]- UNM =) v: t/ ~3 z7 S+ J
# D2 d8 K# Z' M
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))
# W7 b* |8 q6 o9 z8 M cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
+ C7 [  @) @. ]9 ]" ^; C7 B. t
' P* e' R: l8 w>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
- e$ G8 o3 Y! {: u) c7 B$ k>> simplify(x1)$ Q% ^2 E* {% H& {- b9 H! ]  Z

7 }; F) ^! T3 {0 Uans =" s0 A3 A! o) d* n
& f" \! c: [3 X3 i
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  
: S- c0 S8 {/ {7 Z- ?
! p. I; d8 r. q$ J: Q
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)+ k9 p, X- X8 x9 m* C# c
" G$ U% d  M4 C+ g
>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);- Y* h( O8 D3 \) h9 q
>> simplify(y1)/ P" ]  I8 P1 ?, y6 ]

  o4 @4 @3 M, a2 r& {! L5 Aans =
' K6 B( F  ^, ]8 w/ C
4 A' ~$ R! [6 q9 Bcos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)

+ s) r: F+ c- r8 |% a/ G& K! N% p% c4 k0 {3 S$ S9 E2 F$ {/ y
回复

使用道具 举报

发表于 2016-2-20 18:27:03 | 显示全部楼层
simplifty函数要有控制参数才会按照你想像的运算。
 楼主| 发表于 2016-2-20 18:33:16 | 显示全部楼层
明月山河 发表于 2016-2-20 18:27
2 e# o- f# Z, h2 nsimplifty函数要有控制参数才会按照你想像的运算。

( F9 D& k# j1 }$ g大侠   能举个例子吗   我这个不懂
发表于 2016-2-20 18:38:11 | 显示全部楼层
shouce 发表于 2016-2-20 18:33
8 i+ _# Y5 E9 R$ s% Z7 ^+ E大侠   能举个例子吗   我这个不懂
" v, \1 V. J; J& m
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
2 q: r- t, m: Y0 k6 W( [% L) R1 v) A. q" Y/ H1 n, {5 O0 c
3.带有附加条件的化简

1 h" q! o$ u4 o/ B' e7 x8 u>simplify(expr,{x*y=1});
2 X+ D+ H6 A7 g1 u: D6 I) V>siderel:=x^2+y^2=1;
5 P1 K) {  r, u! N9 n$ ~; e>simplify(expr,{siderel},[y,x]);( p" x8 g/ w' n- N: Y
#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了& r4 J5 I8 B; Z# {, B; {. T
4.展开与组合3 }) Z4 V) _% P& B% W8 @
expand &combine
$ `& u" T/ I8 U) l) a1 Ycombine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起  V, e: y9 d% r8 e

$ ]' S. Q) D$ x5 h% L0 r
4 l1 i; r* T! C( |
- g* T% h% x4 w9 m0 G6 E: O% S* Fmatlab是用的maple的符号运算内核,使用规则一样。

7 q6 c- F, {2 k! U

( D! j# R4 V* `! c2 Z. N% j7 ~3 G# u
 楼主| 发表于 2016-2-20 18:42:54 | 显示全部楼层
明月山河 发表于 2016-2-20 18:38 5 @! U; `* i) _3 {2 e1 X8 m8 L1 _
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html. [& D- k/ v9 Z3 c+ c

' e, z1 ]6 n. P4 y( B& _6 K3.带有附加条件的化简
) R) O1 G* @1 r  }& X1 @
多谢了   等下去试试
/ C9 K' H6 ~, B& H; A( o
 楼主| 发表于 2016-2-20 19:09:49 | 显示全部楼层
明月山河 发表于 2016-2-20 18:38 ! _7 z4 i. l# y9 r. j( U
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
6 d& f  }- z4 r. Z! m( d# X1 v
& c& v! ^3 c& F; F2 F9 b9 z; `& q3.带有附加条件的化简
! y% e6 F: {) v: ?
试了下还是不行   可能matlab和maple 使用不一样
8 O* p  `4 k+ N& I6 Y: k' U+ V' e
>> syms x: H& W4 d& G) O( e- X
>> combine(sin(x)^2+cos(x)^2)    8 ?$ K: P7 H4 K: S5 R3 n. l7 n
- V1 p# t% E0 y$ j
ans =- I4 }. c! x, }5 d
6 Z* X  }6 B: q
cos(x)^2 + sin(x)^2          这个不化简单
' C( ?, h: H/ O3 K) ?
/ p9 M! w4 N6 y>> simplify(sin(x)^2+cos(x)^2)
) D* t, [" A( F' p, A' y1 | ! H( Z0 G% M7 X/ ?; i) ?
ans =
: j+ F( f" p' G4 `1 u, m
4 s1 u" E& r' b0 d' Z) @1# m+ P7 K: A" d' r* W

' i2 I. R7 X! h, O) M) Q% Q# p! l2 ]7 k
>> syms x
. Z& O9 H, d( ~>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')
  f# l( P, \% h: L5 U' t' W
% ?5 S2 ^4 ~8 ?) `A =8 O+ m; u. G! p: j0 g! P+ n

& V: s+ \- l8 T' l  b, Slog(3*x) + cos(x)^2 + sin(x)^2
. O+ h( r/ {- l3 h2 K + n! k8 y9 m! }' L2 e
>> simplify(A)2 S  e4 @; d  U" U6 G

- i# j1 ~: b/ t/ {9 U2 }* ~ans =% \3 }- d: D/ Z* b
# P3 d7 R1 {5 O6 R" e, D1 {
log(3*x) + 1
1 h2 B1 l: _0 Q$ ? % b( {: x7 K9 C1 Z  g8 U/ Y2 {
, Q( J% L7 J! Q& N8 G3 k1 W1 D
& _3 V* |& d4 C0 d
>> simplify(A,x)
2 @+ k1 @! j0 @错误使用 sym/simplify (line 99)3 A9 L% \3 a+ l( N& A5 _4 X
Too many input arguments.6 t& p5 {- k# i5 r5 D" Q1 V" y5 U

" V6 ~. J9 z) g

点评

那就不清楚了。  发表于 2016-2-20 19:38
发表于 2016-2-20 19:28:09 | 显示全部楼层
matlab大学里学完了,我就在也没有用过了,已经看不懂了
 楼主| 发表于 2016-3-23 23:44:22 | 显示全部楼层
>>  expand(x1)' b" A3 w% N1 M) S5 B: S1 d1 ]
ans =8 a& c" y) M) O3 z
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t); Y9 [! ?& e7 j
>> 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)')% s8 E1 V( O' n" B2 J# u
KMM =6 u! i  ?2 ~  q1 J7 R$ s
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
$ ^/ k2 Q/ @1 m" d/ r0 P  H: V>> simplify(KMM)
3 W2 a4 C% g. |! Gans =
/ e7 J* d4 [5 ?8 pA*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)- k3 u$ h( o3 }  G1 F2 f0 c$ X9 ~
3 @3 H5 a0 [7 z) K
要先展开然后合并

! u# B+ u% W2 Y7 ]1 M  i
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-10-24 08:24 , Processed in 0.086915 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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