机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先来个简单) L% G1 S$ ]8 g0 S$ T0 f
5 e* n  u) C9 F8 J
>> syms t r a b q
6 B" N! G- f2 V, f7 u& p! e>> x=r*cos(t)+a;; ~1 \) Y6 V7 |0 b" B' y1 B
>> y=r*sin(t)+b;( e( E4 W$ o5 L# z; y' [
>> X=-x*cos(q)-y*sin(q);
( K* j* ~, y# A>> simplify(X)
/ S2 l! J- y  j* _% A5 g& s % l. E# L6 u" m& i$ ^
ans =
3 Z7 Y" C2 H% w: W 3 \" D$ l. {- C% o* P& m
- a*cos(q) - b*sin(q) - r*cos(q - t)    7 x" S' p; T8 t

5 B5 _. G2 X" K! _  f% ~& x7 ^复杂点   就不化简了' H! E6 D5 V% G% ?2 z7 J- _
>> syms t r a b k q A
$ C; n6 T9 I3 I( y" i; u>>  x=r*cos(t)+a;
0 H9 U- }0 C. ]- f3 L>> y=r*sin(t)+b;9 _! \7 M& h* e4 w+ O
>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];
  L7 e4 ^; `# T' s# P>> M=[x;y;A];
0 F' K+ k. L5 X* ?+ I( t>> NM=N*M
# M2 I; U; Z' A+ h/ G- C! d ' x8 u7 c" x: L& l
NM =/ J, `5 p, y% t! }( s  Q
! n( b* d. d: m& L9 t5 Y
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))1 x+ {( f( O" }4 ?( e/ @
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
% A1 {$ Y$ z" I! r- J+ ~& Z " B* X- b; s& ^  |
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));" }+ `) j6 b; z) d
>> simplify(x1)  U& @9 r8 d. i+ C+ y6 K5 T
* ^3 }0 ]+ v. n& C+ E& x
ans =
! Z8 e: p7 A, }
+ [( k. b  m6 _0 o+ V, [8 v* G/ AA*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  

( `; v& C0 [! Z* o( P; V9 ]6 m; L% p; Q
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)* T8 F( P0 u; v( H$ _7 ~

; z! ?2 [2 E$ T% |% z5 O% S' |* h>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);1 L8 I0 _7 T" U) @8 k; ^  |
>> simplify(y1)7 {. L9 P0 i- L4 q( L, }7 \

- l+ ^$ U9 d- }* T6 L' C/ |5 mans =
2 {; g, d8 c) _5 a
8 }5 K- {8 f5 Icos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
0 P: g& ~. K: ?1 x) J. H' }

' R0 [& E* H1 d; j/ p. P  C' u: O
回复

使用道具 举报

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

使用道具 举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27 7 e; @4 r: \' q. @! q
simplifty函数要有控制参数才会按照你想像的运算。
; h$ r! m) z, O, }" q% [
大侠   能举个例子吗   我这个不懂
回复 支持 反对

使用道具 举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33 1 R4 Z- M. f# Q& S* ]$ ]
大侠   能举个例子吗   我这个不懂

# U& B6 C+ \: q7 G- ~% ^; e' V( k7 M3 Phttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
/ C% `- P, f; k
3 n5 I  r" p: E5 g- I3.带有附加条件的化简

% _. s1 ~6 v1 v  I' S! g: k, T* o>simplify(expr,{x*y=1});
* m: j% ^$ |+ M% B3 @>siderel:=x^2+y^2=1;
& i' @( ?7 H( ~  s4 y7 g>simplify(expr,{siderel},[y,x]);. W; K! \3 m+ A( o! b: S
#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了2 J6 G# T, E/ I) m/ h% Z
4.展开与组合
; t) L1 P6 K  v; Y0 k& y) ]8 vexpand &combine8 W  b8 O" u+ X; Q9 b% g
combine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起
/ T; p0 g) g% u5 f( I5 Q. A/ z9 u2 X: H8 G- q  X0 B( O

( G& ~7 E1 [+ q( z9 R( N" x: E* W
matlab是用的maple的符号运算内核,使用规则一样。

5 X' Z5 x9 K4 ~( `6 j; R
$ |/ z! q( m4 |+ h( ~. G
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38
/ U* b1 c( o3 Z* F. _# rhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
  ?. o' l: A8 x, g3 c' j/ i/ V$ h/ n( w# k2 ~7 Y, N5 d4 n: Y
3.带有附加条件的化简

6 o1 x7 s! ^, }5 G" b0 v: o多谢了   等下去试试  T9 _$ k) E) P. V. N
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38 % U6 t: c; h' v4 p! l% W7 B, W
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
2 L5 ]! ]' S9 T+ P  r$ T/ g( {9 P6 ]9 d  g
3.带有附加条件的化简

% M" j; \6 V, A1 M3 D试了下还是不行   可能matlab和maple 使用不一样
7 ]! x2 U% w: ?! Z- R# C' _
>> syms x
6 w- \8 S; n! k3 y>> combine(sin(x)^2+cos(x)^2)   
$ ?- P( k. R' `6 [% u! M  A- |
. ~1 P1 w5 a$ y, A$ \6 m
ans =2 m0 J. }1 v* x. C, w; m( O
; z1 O/ |) E  h7 u: t* d
cos(x)^2 + sin(x)^2          这个不化简单7 G* S& h4 l3 e; ]7 h

. Q( C! X$ {- t& `' o>> simplify(sin(x)^2+cos(x)^2)
9 \8 z# Y7 l# g0 c+ X7 P9 e
3 E/ H& G9 L# b' B- Pans =
7 e* v% X2 K; B7 x8 m
4 P3 b0 ~/ D  Y6 C- Q$ h# r+ n1
0 Z% k9 {; H" T7 w- v) e& e% A# S
# W& S2 G$ _, R
7 q9 B* g' x4 ], R8 k
>> syms x8 h# g0 r( E) o7 R3 @
>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')9 y- w+ `6 K5 u" Q
2 ]5 G, ^# k! \6 F4 v* ^- j
A =+ |2 U3 s4 @2 a9 N0 @, W1 q$ D3 R7 o

0 y: Y8 [" D- c- X, Slog(3*x) + cos(x)^2 + sin(x)^2
3 s. k& f9 ^! J8 b 5 M6 ~" j# S# @! o
>> simplify(A)% I1 j) f, ], L1 f% O9 y

+ x& a) d7 B; Sans =: N6 ^. e2 r( m' B

. j2 h4 J6 {3 j- ^$ i5 tlog(3*x) + 1& \9 b2 B$ H% U9 [- G- ?
8 i+ y/ u9 M2 j. p6 z% g) i

5 Y% t: t3 T# R1 {$ \

2 X+ N, C7 _3 E$ j  n>> simplify(A,x)
" U# c5 K: n* F/ ^+ a错误使用 sym/simplify (line 99)
* U- u. C' a8 t7 i3 WToo many input arguments.+ K! V3 O8 i; Y& T: }) x. E+ @

0 g" C+ H6 \& p4 M: M

点评

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

使用道具 举报

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

使用道具 举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1)  y4 m) E# n) T# d: ^* u3 p4 X
ans =6 I5 p; `" ~; {) U
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
7 p# b) }; z# x5 P2 B6 n9 \& ~: a>> 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)'). e) B& _! B$ c1 O& d/ F) m, Z
KMM =
9 M) q7 t( N* TA*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
! m' X5 [/ P  r>> simplify(KMM)- x; B# p$ N$ C" w
ans =  S4 _. R. X+ @) u  r, W* ^. N1 c
A*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)
" Q/ D4 |: h8 G, X3 M0 [
3 g8 n5 O8 L) B! m: T7 D1 o& N要先展开然后合并

1 s6 h5 D- P/ }* k2 X+ ]
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-29 11:10 , Processed in 0.057530 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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