找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 5551|回复: 7

matlab 符号运算的化简问题

[复制链接]
发表于 2016-2-20 17:49:24 | 显示全部楼层 |阅读模式
首先来个简单% V; ]4 t" B9 U+ G$ _

  S. L) I; H. Y( L$ z# R
>> syms t r a b q
8 o) T" y, c- a5 \8 R+ O>> x=r*cos(t)+a;
; u% j# S8 e3 Z8 U>> y=r*sin(t)+b;9 H' A1 H2 v  n! |* E
>> X=-x*cos(q)-y*sin(q);! b3 _/ [' |( O- v8 W  S
>> simplify(X)
2 X* T/ l3 R8 ` 5 ^8 U9 _! a# J& t' X: f
ans =
' }1 P; s( R0 D7 i; x& M3 O) k
; L& q/ m7 f; d4 r% W- a*cos(q) - b*sin(q) - r*cos(q - t)    % d8 O  P& B5 p) `% A! H; t
. `2 p/ P# M! D$ F( a
复杂点   就不化简了
) x% h' w" _! E# _9 q4 t& \
>> syms t r a b k q A' z! `' X6 p+ W) F/ }8 t$ `
>>  x=r*cos(t)+a;
( M' C4 O* _0 H>> y=r*sin(t)+b;
( K2 ], [7 q! r4 [0 x# t+ k9 r! v>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];; L  Q) F: @' l% [! X
>> M=[x;y;A];) G  E2 S- z, a3 {
>> NM=N*M/ }/ L! o4 o: Y3 t1 \
$ \3 _7 E5 [$ g
NM =6 ~3 w+ b9 M/ b- q& w5 q5 S" L
) |- z, S4 D/ a4 L
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))4 z: Z/ @% e& M$ y5 ~- M$ ~* g
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
2 V& A, F4 A8 b$ |# U
6 W9 Q. f  e( x$ }( X! G# E5 n>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));. k  r/ b$ V# y2 C+ Q
>> simplify(x1)" Z' C9 Z/ ?. }5 B" J

( s4 P- `. z: I6 |6 x0 U' Y5 ]' |ans =
  t9 F0 D4 i; A* G3 x0 B( B; t
' c  P5 ?) I  s5 jA*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  
, X& E- K( ~' @9 m* k/ d) B
- T4 p' M# @$ J, P4 m0 ^
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)# ?5 t- z, {! h9 c1 A3 D8 W; V7 Y
( h8 C& o( w( a# T
>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);+ w0 k( |+ S# T6 j
>> simplify(y1), a" a1 e) h+ k2 J% [% a4 x2 ]
+ v0 |/ K  d9 N/ o7 \
ans =
9 F! ~4 P& M) w& k
- z/ u% q) ?- ecos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
! ~; M( a" I9 m  p# c3 o9 g

' k8 a" K8 c* o$ m( ^7 z- [" T% I( V
回复

使用道具 举报

发表于 2016-2-20 18:27:03 | 显示全部楼层
simplifty函数要有控制参数才会按照你想像的运算。
 楼主| 发表于 2016-2-20 18:33:16 | 显示全部楼层
明月山河 发表于 2016-2-20 18:27 : {# U& ?* \% f
simplifty函数要有控制参数才会按照你想像的运算。
7 j* ?' X% i, _
大侠   能举个例子吗   我这个不懂
发表于 2016-2-20 18:38:11 | 显示全部楼层
shouce 发表于 2016-2-20 18:33
3 d* ^* s% H8 v! _大侠   能举个例子吗   我这个不懂

9 k: E8 b. [$ t- |& \5 j8 bhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
7 e/ j! F% s8 I8 t
" F8 p% @0 ~! _6 ?+ D) ?3.带有附加条件的化简
- B  _% n5 L2 U+ a# U5 ?# ~' C5 \" h
>simplify(expr,{x*y=1});
" \. i" x7 y$ L# O9 r. K' C>siderel:=x^2+y^2=1;
- o: B% J8 G1 R: F: t9 y, E8 u3 O>simplify(expr,{siderel},[y,x]);
! W) Y. }! E# f5 n' _#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了
; x( f! x8 @+ @4.展开与组合
+ ?7 V# k( i9 n3 g$ Texpand &combine
0 k) X; Y& v  x# Q# ?combine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起
7 h, T; B5 e3 E
, Y: v& j$ z2 s0 t9 L# u) d: U6 L* c# X4 t3 O: |

# t; \" e0 g, k( I+ nmatlab是用的maple的符号运算内核,使用规则一样。
; V# L8 E, x# ]+ M
. I8 S- f, m, Z8 ^0 Q: m
 楼主| 发表于 2016-2-20 18:42:54 | 显示全部楼层
明月山河 发表于 2016-2-20 18:38
: v6 t' t' p4 T1 t( r9 F0 fhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html) ?3 S+ Y2 q4 V/ Q

$ ]& H1 x# Z2 m; a3.带有附加条件的化简

5 W2 o' U* b4 |6 D' y; T& R多谢了   等下去试试% v; {' e2 a. ^" G, f6 U
 楼主| 发表于 2016-2-20 19:09:49 | 显示全部楼层
明月山河 发表于 2016-2-20 18:38 ( h8 W6 p0 Q# A
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
& p# b* x9 Y1 h6 D* U" D, O( C! }1 D# L$ [3 ~3 p8 a  {
3.带有附加条件的化简

& Y' D* ]2 Z; p5 |9 I* G试了下还是不行   可能matlab和maple 使用不一样" U5 M+ V4 n' ~( N8 f* ?# y
>> syms x
" H7 y' P9 Y+ y% {' F- t' B5 g" A>> combine(sin(x)^2+cos(x)^2)   
) c: Z+ A! N) [6 b- \
, U8 Q- V8 C/ s7 p0 c7 n
ans =& B7 {0 x$ k, i3 _; H0 A! E0 n/ K& _
  w* a5 b4 y' {, D3 O" \
cos(x)^2 + sin(x)^2          这个不化简单
8 G0 w3 C7 }  j+ e/ t  M3 W 3 C$ p8 X4 T) Y" U0 W
>> simplify(sin(x)^2+cos(x)^2)
: N# r. p; w! u. C6 L; V , h* W/ B0 k) l5 j! j
ans =
- ?* R  L" _1 A3 E3 U% _ ) R! ~3 x  _0 `. h2 a, T
14 n  T3 t) Y' Y8 ?4 R2 p, {/ V, I: c7 k
4 j. D' o/ W6 Y+ }8 l9 w$ g

8 p9 V, Y1 K6 d# r" x* ]
>> syms x9 C1 G0 g3 I4 G' u( `2 S+ u$ M
>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')3 y7 M) Z* l+ p! B* U

: o+ N) e/ o; l5 r8 yA =( n- h5 Y3 X+ O
, A& t5 V6 w3 X, _6 y8 G' x& f& k* V
log(3*x) + cos(x)^2 + sin(x)^2- k7 R1 l! M3 Y* h0 {2 H* c

4 d& P6 Z* w8 f/ o>> simplify(A)
: k) t) F0 x& c+ \$ ~( P
5 |) X9 ^! V0 Y, k# B# @; Tans =( \: M3 R7 t, K
& I8 K/ {6 t+ h
log(3*x) + 1
. z9 C' o* j  Q6 V1 s; k& Y9 a! Z0 m" ?
( a7 |( [" s3 l9 [
1 c- X. }/ ]+ t
# c! |: x, H& `! T& b# \
>> simplify(A,x)3 h% u# f2 m6 g3 a
错误使用 sym/simplify (line 99)( c2 J( b9 J' n8 p& L, s- f- a
Too many input arguments.% D; X. E) D+ V
" Q1 W; V0 `* e

点评

那就不清楚了。  发表于 2016-2-20 19:38
发表于 2016-2-20 19:28:09 | 显示全部楼层
matlab大学里学完了,我就在也没有用过了,已经看不懂了
 楼主| 发表于 2016-3-23 23:44:22 | 显示全部楼层
>>  expand(x1)* G- |; k5 Z# _9 _4 G, r
ans =4 L" x7 L- w  d8 u  b
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
6 r( u* k. R6 w8 m+ 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)')' f0 ]  B& p6 J7 H* J
KMM =$ B9 K- s  ^$ l( m7 i
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)* a. I/ _) E. k, b+ L6 ?8 m
>> simplify(KMM)- k8 O# t  g! L7 Z( d+ M! ]7 F
ans =
: {2 b: v3 t* O; XA*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)
+ E; k8 d3 {3 U5 P  a, n8 n6 T
  C, b# ?) i8 y$ D# F" d- ^  q4 j要先展开然后合并

1 C6 i, w' |9 W( b
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-9-15 13:51 , Processed in 0.072845 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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