机械必威体育网址

用户名  找回密码
 注册会员

QQ登录

只需一步,快速开始

帖子
查看: 5084|回复: 7
打印 上一主题 下一主题

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先来个简单
4 ~8 A( a% b9 |- Q+ E
4 U4 {; G7 d# s* Z) Z) M6 T
>> syms t r a b q
0 w2 @4 i, `& k/ i, Y3 H- Y/ Y. @9 `2 }>> x=r*cos(t)+a;
% w# z; e' B6 K8 ~$ F% l>> y=r*sin(t)+b;; v5 @$ O9 w" ]+ x1 G+ n
>> X=-x*cos(q)-y*sin(q);- }& h7 s* \, H6 _
>> simplify(X)
* {: u3 x. t' Y' f# g: ~' J1 R
8 d" V" B& B+ f; Q; q1 e) p; Tans =# L4 E& A/ e" J& e$ q; B
5 W7 q7 F7 O6 ^0 A. n% e: D# _, F
- a*cos(q) - b*sin(q) - r*cos(q - t)   
- ~1 Q% `) `% T" r0 V0 c5 b, _% I+ b/ J0 }2 ?: [2 v; D. D# f
复杂点   就不化简了
. C/ C4 N5 u* Z  c4 `: Z
>> syms t r a b k q A% \9 D2 h7 f7 F$ A8 s
>>  x=r*cos(t)+a;
: P+ w, y6 W# Q# G( D" X* y5 i>> y=r*sin(t)+b;. M8 N# t! G5 c; ^' e
>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];; X* V6 A5 i/ F8 f1 R$ Y7 p
>> M=[x;y;A];% @& m6 Q2 y8 c# n4 j  C) U
>> NM=N*M
6 Q) g5 n( P5 N( S4 H$ V8 ] % j) @8 R3 v, Y$ N
NM =
3 }5 R2 f; {% X' W8 t! J
1 i8 l3 j, Y% n4 P1 g! n A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))$ r5 L1 T7 S. N- X- `2 I/ C
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)! v- n6 A5 b  [, l5 C4 Y: ~, O
) R$ Y+ h6 W9 t* |
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));3 i. ?+ m7 A  S, c/ R
>> simplify(x1)
  a7 i, C  E3 Y: I
% J0 b& T8 j1 _! Tans =1 Q: T8 }; {$ h+ u6 m/ [) ]7 q& J
; ^+ z6 T$ Q9 D7 y: P* }8 A9 w; t
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  

0 T5 ~6 y. C( a* ?( [' |5 o6 u/ [( r1 {+ N3 ]
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)
5 @. T2 V) p+ y, g5 \$ q* w 1 K! y) \$ b9 H( T( W: [
>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);
) [/ ^( ^/ h  R9 C>> simplify(y1)2 @0 T7 @* k/ k9 o* y9 B

, N# L( E  [; M% \& ?ans =
( \* C2 g* q$ q, e: x7 p 7 \" G! s& O4 y; v9 H3 w
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)

6 ]4 k8 |3 o7 E$ W. {$ h; M
$ P& g) T2 {. H& @8 B+ B4 u
回复

举报

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

举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27 & M( u, ^0 }& ?- A3 C. _+ L
simplifty函数要有控制参数才会按照你想像的运算。
) l1 z; R" ]! i. ]0 B- X, l' k
大侠   能举个例子吗   我这个不懂
回复 支持 反对

举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33 - S) X6 j' n5 c; K$ A4 F$ A- J
大侠   能举个例子吗   我这个不懂

# X2 w; ~  w6 E, |3 n! fhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
  r  h6 ~6 p8 D# s% X  H  s2 w: s' W  h3 {0 |: K9 `6 \
3.带有附加条件的化简

; v$ }) F0 E/ b& t3 s. B0 i>simplify(expr,{x*y=1});
3 u2 Q5 A/ X9 r# f- ]  o- V3 y2 g9 a>siderel:=x^2+y^2=1;, a( e- g; M( J
>simplify(expr,{siderel},[y,x]);
9 |; o+ ]( v8 W#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了8 ]+ e5 q- Q; D( h$ M2 ~* w
4.展开与组合
/ g* y2 L* ~3 U5 Q  {: Vexpand &combine& W0 k" y! D, C7 F
combine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起
' L6 t3 A# H  `1 O5 l3 z
; S3 n0 Y# g$ r/ J/ H8 ]; x# V
3 M3 S5 n6 f- E7 g* K& y0 i: e8 W% t+ s: O7 ~8 @
matlab是用的maple的符号运算内核,使用规则一样。
$ Y0 \  p! T- _5 l4 J1 G
! Q8 l' T* o3 }
回复 支持 反对

举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38
1 q0 Z" d/ v# Z  l: ]http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html; P3 Z. x7 c: @- n4 c# r. a

5 s! C4 t2 Z! i3 z6 y1 R6 c3.带有附加条件的化简
) P9 ~: W* V! Y3 ]. r4 z
多谢了   等下去试试
" }- b2 R" D# ^
回复 支持 反对

举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38
8 F/ v/ ~$ F, M& H4 s: f. ehttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
. M+ i3 S8 \5 I7 M- t$ p+ c' j
. b! B) s* ~) [9 e2 `( J3.带有附加条件的化简
" j  O8 M) R& v) d+ j9 y
试了下还是不行   可能matlab和maple 使用不一样
; U! p2 O9 Y9 Z6 m6 m6 T+ @; I
>> syms x
' d" p; @( |6 Z0 |" c>> combine(sin(x)^2+cos(x)^2)   
0 C: _4 o+ I  H9 L- Z6 ?% @
- Y: p1 ]6 S' G
ans =. A7 ~% P5 c. S; q$ D

' G$ H3 B1 L  G; y( }6 }  {cos(x)^2 + sin(x)^2          这个不化简单
  f3 l2 s1 j, J. r, R8 }3 } $ i* C4 g, `% b8 ]8 a
>> simplify(sin(x)^2+cos(x)^2)
9 u$ ]! o& b6 e. ?" F
5 h+ y& l! z. b" dans =
6 |  R3 b0 Q: W, C
% T0 y3 X% H1 `2 k1, g1 N+ N$ f+ p$ b$ `# K

$ \1 t8 O+ }# {! _/ B
+ E7 `" W& ?# U* @; d
>> syms x
) A6 Z  q. R. ?0 R! X7 f1 P>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')5 Q3 m& F( Q- z" e4 k+ p  ^: H
, ^5 x) T5 A. u9 j/ u
A =
- v) w' D/ t0 I: ? $ \, ~, \* t  b& Y. l
log(3*x) + cos(x)^2 + sin(x)^25 V5 i) R4 |' X1 k5 o# s
8 u! ]5 h' k( c& O+ J; K# t
>> simplify(A)
1 T# x2 Q# W7 f
! j6 f* a! r! C$ l0 |) j% x( p; ^: Cans =# m3 ?6 J& G0 }3 j5 m
/ u! m1 Q. y% J5 A3 X+ F( D
log(3*x) + 16 ^1 d4 J) j& ~0 G1 ?4 h
4 D$ S$ j9 E1 g# h8 G  P
9 V" M/ g: k2 Y- }3 @, p: a. `% o
4 t& H: c. ]& d# g% ]
>> simplify(A,x)
5 {2 l- j4 r1 m. a' u2 j# `, y: ~错误使用 sym/simplify (line 99)
" y5 E- m+ @3 IToo many input arguments.! B- V+ K, b" E/ {7 |2 L7 J

$ _9 i* N6 y: r+ n$ q! S

点评

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

举报

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

举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1)) k. ^  {7 [% p' e, ~
ans =
8 w. w- E9 {) V1 T9 D3 i1 NA*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
$ |8 E0 a3 M% u! i# s- m>> 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)')
6 k3 U8 Q7 J# y- }, b7 O. ]. B$ |KMM =3 e8 _/ S  Y0 H! u
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
0 I+ U* p/ \5 X: B. k! J>> simplify(KMM); J* U: X: w' `1 w
ans =/ p! \5 B4 V. z9 U8 @+ e
A*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)3 S9 V4 ]; k6 C3 }, C2 z3 j8 N1 v

5 ?3 Q. u* O. G; y/ P- z要先展开然后合并

  q* P8 s- ]3 ~5 K7 r" s
回复 支持 反对

举报

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

本版积分规则

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

GMT+8, 2025-4-5 04:23 , Processed in 0.068270 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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