机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先来个简单2 ], x; X8 A+ t: v8 z( I' a
) x- d& R) x! r
>> syms t r a b q 9 Y/ A7 N- F7 o# E7 U7 N# T
>> x=r*cos(t)+a;- l' _. ?0 v2 t5 _
>> y=r*sin(t)+b;
+ d) w9 h3 i6 i$ s# b) A1 k>> X=-x*cos(q)-y*sin(q);
! }8 k& u/ t7 Q1 O4 Q6 Y>> simplify(X)
6 B5 d* U6 a" X6 ?# _9 ~3 x3 B % V5 E$ u1 T  T7 L5 h
ans =
5 S' m. q+ e( ^  W7 W6 `$ c
+ e$ b# q  H5 C$ u* c3 Y7 G- a*cos(q) - b*sin(q) - r*cos(q - t)    ' ~# \% K+ S7 q0 s

+ M+ B2 n) t; C8 R5 k' M& u复杂点   就不化简了
5 F# _1 a7 Z* y
>> syms t r a b k q A
+ F. r. p0 J1 G2 ?. Y>>  x=r*cos(t)+a;
! ~- ~; f$ S0 V7 A: C7 R5 }>> y=r*sin(t)+b;- x' r1 s6 }- z# b
>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];
  [% B, A" F* H! ]+ B/ G% R>> M=[x;y;A];* r" ]4 A( |8 _9 u( X: @
>> NM=N*M
3 e9 Z/ u( m$ }' W8 ~ ) o! X. C) Z9 H5 O4 w9 j* y1 h2 I
NM =
: V" |" G% b: r' I$ q) { 8 h+ S  M, h4 Q8 T  w5 L. ^' Y
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))7 I8 s. S$ G9 C  @: O* P
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
9 t3 D) c  X" ?( i 5 L& ?1 _7 s5 C9 i0 t7 o5 ?. L+ c  t8 W
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
0 G  m2 k6 ~& c8 x6 V! Z>> simplify(x1)0 W3 V+ V2 s% `/ T0 e% @- ?% y
- x0 P/ n8 g: Y6 U7 S$ g5 V7 S8 C
ans =
3 }) x/ ~; e+ @$ |9 B0 Q1 }4 ^ : x0 h" \, |: j9 t
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  

" C' p1 H. D0 E1 l$ d. l) t$ `; V- D+ t4 u' |( |
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)
7 t( K9 h( U" c  e* }
. `2 W/ I3 @2 J6 P2 \' h>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);8 r% G8 s' `$ m8 f3 H7 a
>> simplify(y1)5 X& Z5 W0 m0 V+ C9 E

  V" _- g/ j0 [9 K% C* Fans =
% B5 ~3 [; V# V
' o4 z) m2 |2 V1 s; Tcos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
) H+ a) P# E1 o# R2 S. E" J

, t! {; p( d8 |, K/ o* b
回复

使用道具 举报

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

使用道具 举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27 * _! J& E( ~2 I  n1 Y9 p4 I( B: R3 @' d
simplifty函数要有控制参数才会按照你想像的运算。

% I" {% D" P0 D/ z8 X' ?大侠   能举个例子吗   我这个不懂
回复 支持 反对

使用道具 举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33 ( H# S* e0 V: p0 d, h) s
大侠   能举个例子吗   我这个不懂
: s7 W. n+ T! }
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html4 ^& F$ n! q2 Q. Z0 n# [

3 I+ v) {" z3 A% G) _% r3.带有附加条件的化简

4 F2 ~6 ?- d* A>simplify(expr,{x*y=1});
& D* ?+ p4 u6 n  O>siderel:=x^2+y^2=1;
" i. G7 F: o* o  g>simplify(expr,{siderel},[y,x]);
0 o2 H/ P" J4 t# m#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了
( P" T3 {+ s; e" T( N4.展开与组合+ R" A+ q7 k* E5 _5 ^* q
expand &combine6 }2 X/ @, u& q9 _
combine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起* c' {* O1 X- j0 }; n
$ G1 C  |1 j8 F; R

$ X! g$ U. D- E, Q% t6 d1 R
' l: t+ \1 ~7 _3 Amatlab是用的maple的符号运算内核,使用规则一样。
+ A- v3 Y+ V" U$ h+ d
6 y# X& C+ o. j% F$ ~: L; `# `1 I
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38 8 o: i: B6 R3 s6 ^9 k9 ~4 K$ _
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
3 @1 t) H9 m3 h+ i0 d& u  }$ E2 B
- i$ z- O8 ?6 J- F1 f3.带有附加条件的化简

. y' {+ Y1 D9 h" H% L多谢了   等下去试试
0 v6 {8 V- ^$ N$ I1 j
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38 ) w  f2 _% @2 z/ J
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html3 `7 ]/ J1 i8 H0 g/ W
# H. b; p% x5 k7 G* {1 O! I
3.带有附加条件的化简

8 e" x* a# H% l试了下还是不行   可能matlab和maple 使用不一样
9 e: Y% \: I1 N
>> syms x) n4 r. q: l" R
>> combine(sin(x)^2+cos(x)^2)    ; @$ r- z" s" y* L6 N

& q$ j5 b2 D( b, x$ z
ans =
) ^( G# X0 Z& Y$ k8 w2 x
) {& m9 s' r- [. J; X* j; y1 L, U* Rcos(x)^2 + sin(x)^2          这个不化简单
  i3 l7 ]9 q: ^" v( h6 M
: t9 x+ \* t& Z" N# q! F>> simplify(sin(x)^2+cos(x)^2)  ]) x+ H! O% s
8 y  z/ w4 S# Z& ~, C8 w
ans =
! c% [7 O/ P" A1 v  f. F9 o
& w3 g+ D( K- P- t- P2 L& v1$ W6 V. p  v$ M) ~. d
3 ?1 {: Z! f- g

  y6 _. h, D2 t8 D6 F
>> syms x
: E+ i2 a6 c' k: B8 E$ j7 h( E# r>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')
& ^' w( E' e1 ?& v. B
( i7 H' X8 `  w7 l$ r4 s7 TA =: z% n4 B& B+ q, e5 u# `

( b8 A# P# J. h4 Z5 ?9 Y$ jlog(3*x) + cos(x)^2 + sin(x)^2
' H" e3 E& f4 E8 u! h2 w
/ u1 A2 R1 s8 Q>> simplify(A)
( ~+ m: O: @$ A* I3 o1 ]0 i 3 s$ o- [4 A0 w5 K: P& H9 r
ans =
; O* p0 H5 G' o! h4 v; {! e7 | / U: E% l* d9 E+ x" s8 C/ G8 I
log(3*x) + 1. s5 f, s$ U$ q  |+ @

1 R" Z7 l1 P- }( _9 m; l8 ~# W1 ?9 a
1 n& X) g/ u3 ]3 |. r5 D( L
>> simplify(A,x)
2 Q* f2 y: |6 \1 h# A. m" ^% X错误使用 sym/simplify (line 99)# o* s: t1 _6 W# t0 _$ H% Z
Too many input arguments.
! D% a- q& z  [
$ l& s' k# Q0 i# t1 p) Z3 g

点评

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

使用道具 举报

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

使用道具 举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1)0 M$ }; ~* F: Y) p+ l+ S4 ]
ans =
  H: w5 @% b( ]0 s: S  h2 p/ \, k, X* nA*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)! S9 z: L) ~4 f9 S8 c8 E9 Z
>> 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)')
; e1 {8 V  T; i! @9 HKMM =1 l, d: g3 [: n6 }2 u1 L( C
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)# a' f. }5 p. I) H2 l8 @+ C
>> simplify(KMM)& R- Q" M, X1 U
ans =( x0 @$ s" t; v! o
A*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)
4 \% ?" ~# _+ L5 \7 C5 _% k# M" W. W% n) ~4 ~
要先展开然后合并
" W# K& ]9 k2 Y5 M
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-16 20:11 , Processed in 0.064780 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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