找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 5460|回复: 7

matlab 符号运算的化简问题

[复制链接]
发表于 2016-2-20 17:49:24 | 显示全部楼层 |阅读模式
首先来个简单
) A: b6 l; j( U$ d% F4 A1 Q4 ]6 t& G. y7 q+ P4 t! t
>> syms t r a b q
& E1 A( i+ m3 F; ^3 E>> x=r*cos(t)+a;9 b, \* v7 T! o" M) K0 X; S/ B
>> y=r*sin(t)+b;
% [  N" q8 U+ |. a>> X=-x*cos(q)-y*sin(q);
0 w: e! x1 Z' g% Q>> simplify(X)! k! B4 Z. b0 h) J( s- }& }

; Y/ s) f. u4 i/ S- h; {ans =7 H. ]% Z$ {% O6 y( d& Z, Y  |
% ?0 h3 w) W. x) L+ |
- a*cos(q) - b*sin(q) - r*cos(q - t)    " g7 R! N0 }. ]8 B
& V3 m. r; x% H8 F  ?
复杂点   就不化简了1 t% b3 z& ~/ k4 Y( J
>> syms t r a b k q A
7 T( I- U$ _6 T. {>>  x=r*cos(t)+a;
% G0 f# ~! B$ q& u>> y=r*sin(t)+b;4 w3 o& v" a5 F- ?- r
>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];
/ e1 @9 c0 d0 ]) A1 B>> M=[x;y;A];
/ F0 M6 f7 O. j. y) M8 H. A>> NM=N*M% e& w2 k* \8 V6 V2 S

& p6 r+ E6 v! @# Z& T% i7 \NM =
6 H) `( Z/ ^3 H' f0 \ . }1 O- Y% T2 @) P/ ^2 x0 b  J9 M
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))) a9 q: @9 x9 [% V& b
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
8 |# [" e  R1 c! S$ q . ~0 H- {- U; }/ W
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));7 B0 B& J) u9 x' A: P
>> simplify(x1)% M6 X$ a  W: a) m, Q
7 E8 K5 l& |) o" i# ~- |1 A
ans =2 s$ S5 G8 P  t

: P" U3 X; q. a* e( |) L; X3 p% c3 kA*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  
1 b; f0 F4 I$ h) j" s

* [2 l. r5 r3 r2 I
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)
5 q3 _% p; N2 A3 t/ G
; G, t. t  a% I/ Z! p3 x. D0 b9 ^3 Z>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);  |/ C5 W( W8 L4 s5 `3 I8 j! Y
>> simplify(y1)1 {2 |* u5 T* G: \- ~1 C
+ X/ u, ^  r$ A5 e! r: V
ans =
; e3 ]* I: P: l& W6 P
0 d# v- K( z8 K: K* Zcos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
% E  `* u/ g5 @0 k2 n; l

% j# G2 x1 d/ e& a: O7 V
回复

使用道具 举报

发表于 2016-2-20 18:27:03 | 显示全部楼层
simplifty函数要有控制参数才会按照你想像的运算。
 楼主| 发表于 2016-2-20 18:33:16 | 显示全部楼层
明月山河 发表于 2016-2-20 18:27 % U5 X/ a, v# k. O
simplifty函数要有控制参数才会按照你想像的运算。
& g0 S! B) k2 M7 I% S* L( B% A- y
大侠   能举个例子吗   我这个不懂
发表于 2016-2-20 18:38:11 | 显示全部楼层
shouce 发表于 2016-2-20 18:33
- M  ~3 E7 w9 {: L) [! M9 E大侠   能举个例子吗   我这个不懂

8 s' o- y- U! C+ w7 fhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
# u% |- Y- }, F* y" Z- U) J4 A6 s
3.带有附加条件的化简

  U( G+ P& k$ Q# V>simplify(expr,{x*y=1});, \4 B; _: Z5 b, x6 i( t9 u
>siderel:=x^2+y^2=1;
- z: o  E3 O0 g# a2 f) W- N>simplify(expr,{siderel},[y,x]);
$ H+ [6 F+ x+ v1 i$ i; p#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了1 o/ I& n/ L. b
4.展开与组合
0 ^3 C9 M9 i5 T2 B' r, q3 e0 aexpand &combine
5 P* V. L/ W  v! T" U: G$ w) `/ Lcombine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起
! r( e) M' B& U* ~$ j% ^( [' D( Z/ u+ c2 z$ z8 `+ n

: ]! X0 _0 k( }3 E5 n9 t% _/ F# q- E  }2 W' }# k
matlab是用的maple的符号运算内核,使用规则一样。
' Q# C7 X2 p% }
( B! L% R: x" t& S
 楼主| 发表于 2016-2-20 18:42:54 | 显示全部楼层
明月山河 发表于 2016-2-20 18:38 + i& Z! S( F: M  P0 ]/ k6 O2 a
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html! C9 c0 C7 w4 \
7 ~4 w. [1 L% s" I+ y* g
3.带有附加条件的化简

3 B3 U+ S. o  S# _" U8 I多谢了   等下去试试
# X% `: a1 B( X& J
 楼主| 发表于 2016-2-20 19:09:49 | 显示全部楼层
明月山河 发表于 2016-2-20 18:38
  J  H- ]/ ^7 T  `: o0 P/ ]: Whttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html: |6 z2 z6 T3 k" T9 e
+ X# g/ v/ Y- l0 `) z( U7 ]9 p5 F' B
3.带有附加条件的化简

$ B  n6 }: _, i( z# b, b! S; y# Y' |试了下还是不行   可能matlab和maple 使用不一样
- w6 ^7 U$ D% H6 ]+ V, d5 e; j- y
>> syms x) G( B# t" ?, g: R
>> combine(sin(x)^2+cos(x)^2)   
: y/ J( u1 `% Y  z7 B3 @
1 R; _6 o+ v" ^6 d6 v1 h
ans =. `9 \- v4 Z& a! d! P) d

) g" {9 _+ ~8 n/ t5 |8 Q6 Y8 m. @cos(x)^2 + sin(x)^2          这个不化简单! b- C$ c5 j4 o% G
2 P5 N& C" h% n! t! i, Q8 J% E9 k
>> simplify(sin(x)^2+cos(x)^2)/ w- |' E" x! [, Y
4 I. g$ i( O* K$ N
ans =( K5 W8 z  N% A4 [3 w8 A; q0 L+ m

* w9 w/ ]  A$ m2 k% q# Z* w* L8 I3 |1
3 h" e3 G5 z3 [7 }7 I; }3 J. a. y6 e" X  n& t' M# ?# h! x

( z0 J! }" \% |7 |
>> syms x
6 \2 D* {$ v' k>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')$ I' l5 z2 F" i
1 j' j- S" A/ h- E2 `2 S
A =
. F" {3 O5 b! F* L& l + H' |. h  B3 j. ~
log(3*x) + cos(x)^2 + sin(x)^2
- z$ _1 r8 Z% r% O ) u& t1 W9 _5 O
>> simplify(A)
: }0 \: \3 l) O( f; H  U& T
6 h' {2 e2 `+ s4 Vans =. N4 S8 `1 g# b$ N8 `  ?5 [
; b  c- Z6 n5 G/ @& N
log(3*x) + 1
/ e( G0 n# P( y! _2 Y# t ! {7 c( c7 m9 t/ `- _

- v( N- I  `+ h5 W

! J/ L# V$ Z) A* ~>> simplify(A,x)
3 y# f: S8 V6 X9 ~# ^" Z! M错误使用 sym/simplify (line 99)3 h1 `8 m8 u5 Y* v$ e
Too many input arguments.  r/ \! k- l7 B3 X6 u; N+ U
7 [0 s' u  v/ L2 d$ O2 x8 p" {

点评

那就不清楚了。  发表于 2016-2-20 19:38
发表于 2016-2-20 19:28:09 | 显示全部楼层
matlab大学里学完了,我就在也没有用过了,已经看不懂了
 楼主| 发表于 2016-3-23 23:44:22 | 显示全部楼层
>>  expand(x1)
" K& K, Y  g. n4 [ans =
" L9 \5 ~: l+ N$ PA*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)/ N6 ]5 Y, N0 |
>> 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)')% \! b& f: u5 o4 u* R: m, n" \) ?+ \
KMM =
/ G2 B9 F" H, x7 k6 jA*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
/ S( `" ]/ s( E3 O8 T>> simplify(KMM)6 S; O3 W' d$ u; C. O% T8 n
ans =
5 {# _% m& C4 L& b0 G7 M: U' z9 FA*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)
9 o+ Q3 J2 @/ K+ J8 h
$ _6 C6 M( Y1 M7 @5 t; B要先展开然后合并
' M% ^* Z- G8 k; z# a8 D
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-8-6 18:19 , Processed in 0.081505 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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