机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先来个简单: M( r/ V0 x8 x6 l2 n5 l# |( u
; J6 j2 j! d0 G2 l/ ~
>> syms t r a b q
5 `0 T( [* o+ ?0 P9 u>> x=r*cos(t)+a;  D8 O2 d1 O4 ?6 O, M9 [
>> y=r*sin(t)+b;1 v6 O3 j9 z3 x; b/ I
>> X=-x*cos(q)-y*sin(q);$ ^4 [; T+ J2 M1 ]& j
>> simplify(X)
1 M. R3 ~2 l1 b: E: @: E! m0 j
6 [' k! {) z$ E: s! Q. Cans =
/ ~  O' t! v1 X8 Y) E5 d; M- F, u
+ Z9 @7 L& e2 I6 _4 Q9 \- a*cos(q) - b*sin(q) - r*cos(q - t)    2 V) R" X! q" L$ Y
7 z5 n; T  {( q/ \$ r
复杂点   就不化简了
6 X5 y2 e7 |! F( I  E- V) t
>> syms t r a b k q A/ W' L- T6 Q6 S9 l2 M4 x
>>  x=r*cos(t)+a;! t5 O5 l4 i! Q# ]
>> y=r*sin(t)+b;; c( D+ s& r5 Y6 D: [/ a
>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];
" f- H' p. b( M& H& g% O! E>> M=[x;y;A];! i, p" i0 k% J9 o
>> NM=N*M
  K5 j8 }# K+ W1 n4 @6 ^
! `* Q% a7 i2 iNM =
' H3 @' [1 w6 j
5 {4 n9 ~+ b8 f; W A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))
( `# I! L; F7 v cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)  J) ]% O7 a0 c1 {$ \& X

  E/ L3 a  N$ |- ]7 I+ y8 Q>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
- T9 ~( y) c5 K& j0 u0 b, T) c>> simplify(x1)
7 I- j' u# a6 S' O7 j5 X! S' |' T
) b4 B% V$ d. O$ y0 o7 eans =
+ E9 A" \* K/ W+ j ; M4 k$ ?8 O  f( t( i1 q
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  
3 X' {" H$ [* Z" \# j/ k0 e" L
+ r3 {9 T7 m0 ~3 t+ h. x( E
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)2 h2 e1 e0 R/ r6 \

7 `6 G- U" {4 F# J& v$ J>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);# T' U9 B( D' z( w3 A6 ?/ a0 N7 g
>> simplify(y1)
) E- E1 G" a. s
: m3 [" Q6 y" O! ?8 Q0 y( Wans =
; T1 ~, }* U5 v* C- x1 S' J. }1 X : Z2 a% {! I8 I& X8 U8 A- R$ M
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)

! G7 e3 t4 f! |% n* O9 H1 c0 ]/ ]0 T3 u+ m# B) K! }& j
回复

使用道具 举报

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

使用道具 举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27
: X  z' p( s8 Q0 R% xsimplifty函数要有控制参数才会按照你想像的运算。
) j% R& X- Y# w$ B5 m( G
大侠   能举个例子吗   我这个不懂
回复 支持 反对

使用道具 举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33
3 n' L( Q8 W' O6 P3 a( i! X大侠   能举个例子吗   我这个不懂

& P  r6 p- R, |2 d* \http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
( S' {& k# u. e/ P  c6 A  ~
, T4 G" U  L8 ^- [3 ]: A3 B! X3.带有附加条件的化简

" Z4 ?  W$ w; t: s" Z>simplify(expr,{x*y=1});  C! B* e1 B* P9 u
>siderel:=x^2+y^2=1;! J' d' j8 U/ @( D
>simplify(expr,{siderel},[y,x]);
) A$ H" p5 M" u3 ]#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了
+ f' Y. u3 F; P, D6 S8 t! f4.展开与组合" L% v/ R6 f- [5 E/ }
expand &combine
5 S$ \& O2 o% A6 ]2 z" G1 Pcombine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起
- \8 t. X( R8 p# L& {: b
  K0 D' e3 b9 Z" j  o4 W$ v' z% A3 G& H3 X# j+ L3 Y

% A( R1 J9 c: ?9 J6 mmatlab是用的maple的符号运算内核,使用规则一样。

$ o7 T$ ~- {* u) z7 N" G- [
1 J- j' ]$ h1 w+ H1 n6 R3 R2 p
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38 1 o# G5 L1 c5 a/ |- e. A
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html+ \$ ~& P" I  @$ J) j
/ {1 b6 j+ \; G+ V& H! w" A3 M3 ^! v
3.带有附加条件的化简

; [( ]. v, [1 M, y8 u8 g; `7 w多谢了   等下去试试- R% g; J/ i# h( V, m3 h0 j9 p
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38 ; f7 S' }. z4 U& ?8 A
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
, k, r3 V0 e' [# G: O- U, }% h- ~+ H0 Z; e/ a/ X
3.带有附加条件的化简

4 H6 \7 _! r7 }9 F  O- X# z4 C' ^试了下还是不行   可能matlab和maple 使用不一样
' N& c2 r$ a: W6 p9 l, q
>> syms x
0 n5 g" R' F  ?/ `) V: a>> combine(sin(x)^2+cos(x)^2)   
/ N1 u8 v1 v( D) |! C: V0 \+ a1 \8 `+ u  q9 F/ }9 I
ans =
" Y4 u! l+ k+ a. l5 i+ ~4 v2 |8 i
  `$ Q4 ]6 E' A4 b) S+ A# Rcos(x)^2 + sin(x)^2          这个不化简单
( d/ P! Y; O( ]3 _
4 B6 S! N- |8 o" W+ i$ L' f6 x>> simplify(sin(x)^2+cos(x)^2)$ W' }  d  x( Q9 k" l& K' c6 f  y0 i
6 H3 P! K) e1 A4 Z) q1 o# _
ans =
7 t, Q- I0 e6 W( P% |( t( f; ` ; K# V, J6 `, b
1/ B3 b/ M$ l- u+ L4 D. e! }' |: q* L

6 ~% ^& A5 T1 T/ T% X0 s) l
: p2 G4 `+ @4 b- h) y
>> syms x
6 G5 v4 N% f: f% R1 G. g>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')) f; i: W) R4 Y2 ~/ l
1 u. v) P# `8 R: D* `5 M0 O$ i8 x! r
A =) w' Y8 E+ }1 T# S* \- o
: b$ H  R4 G$ z) r3 Z$ Q9 K- g& y
log(3*x) + cos(x)^2 + sin(x)^2
7 |! m  m- J* d , x6 Z- ~( k3 Q# w1 _4 s
>> simplify(A)
* X- [* E: @/ |' V2 z
4 m0 S7 Z3 b+ j2 Eans =
, E8 X" }% w$ U
) A% @( O3 H$ Q4 O, f6 w' Rlog(3*x) + 1
; Y9 i5 f2 S  r, I) ^5 D; ]3 z
7 E' O1 Z( [* b
# N5 m) c  Y: h) B' A$ N
0 t7 z, G; _# A! r' g' Z
>> simplify(A,x): D* U! |+ {* d& M; h6 v
错误使用 sym/simplify (line 99)8 ~) {3 n; i* s. Y, Q- l0 J
Too many input arguments.
, Y5 i$ ^" S% M
/ m4 x# A2 k( O( \" l; h$ R" M

点评

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

使用道具 举报

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

使用道具 举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1)$ U, E# z7 ~% ~! ]5 ^
ans =( N' r7 S& X& A2 Z
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
+ _& @2 ^- ^- F>> 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)')* s/ s6 Q: F) c+ E
KMM =
0 C5 H% P1 l) C6 h. F) s0 NA*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)& |  K. L  v8 P
>> simplify(KMM)% A- a5 p8 j7 @* ]2 I) n9 b8 A
ans =
5 d1 {- |# q$ u4 r% X+ U! H( NA*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)7 z) t! m: X6 W7 J9 |4 r  O
. \  ]+ V6 K3 P7 T, c& d
要先展开然后合并

. l2 k! Y! L8 ?9 j4 k5 R; E
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-28 15:19 , Processed in 0.057793 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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