机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先来个简单: h& ?, C1 m; g7 \, p) a9 X, ~

" j) B1 n& E# Z5 W4 O- m4 J2 v/ L
>> syms t r a b q & x3 Q3 G8 m4 S( E$ _' R+ q5 U
>> x=r*cos(t)+a;" w. F# |$ ?* _
>> y=r*sin(t)+b;
& I. N' |0 ~2 L/ s* G/ }2 W>> X=-x*cos(q)-y*sin(q);! x* v( A0 M4 c' k
>> simplify(X)
5 K9 D9 s3 z9 x5 K* f 0 M* t, K- E5 |) b+ R1 A
ans =
# i7 \8 X" Y+ ? : [2 Q+ I( Y& f, ^
- a*cos(q) - b*sin(q) - r*cos(q - t)    : L! q; R% y' Z/ ?" J" y# L% `

- b& u! F+ g6 V: j2 b复杂点   就不化简了+ u/ u' Z; {" G; {! G
>> syms t r a b k q A6 o, i/ n; |6 [" {
>>  x=r*cos(t)+a;
0 \$ |$ b; N4 m# A9 G>> y=r*sin(t)+b;9 W" V3 j) V: _6 O8 J( n4 `
>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];
; @5 c% V# I( _5 E9 N>> M=[x;y;A];% h' ~6 N  i7 \6 `; y- Z9 P6 x
>> NM=N*M% }# f- L9 b) l% k& q5 |$ ]
& \6 S( D" }$ E& T" b9 c" e
NM =
, E; L& z' L/ ?9 e6 t 0 F7 F) p3 H+ X: M: A0 R
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))1 B9 M# W7 _0 o, ?7 K
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)6 m2 d  W; w( u6 A4 k* j
8 |1 G8 N8 _8 K
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
, K# X4 p1 L1 Y4 X, e/ p* {, _>> simplify(x1)
* c' E- U0 H; |4 d7 p
% U# m, B! R! Uans =% n; k; V, a7 g' v/ |

0 r0 D9 T* p& @- r3 N5 I- vA*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  

" E  t$ i% E2 _
" K% q9 \8 T* d2 t* z$ H" h3 o+ X
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)2 a1 N. Y# N5 N/ ]
" ], R* b, K' q
>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);
* \8 ~) a8 F7 m6 \>> simplify(y1)
. \. B3 ~; p0 a7 K6 G) r + k8 E7 J+ A, g. `
ans =" ]- @- b0 c9 ]- g3 H0 U
! V' |9 t: A1 r) {: Y
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
: v& r) O1 g# k. c
( M. L% d5 E/ ~4 T) y
回复

使用道具 举报

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

使用道具 举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27
2 D3 w; _8 {4 K+ n. X0 t( r! Usimplifty函数要有控制参数才会按照你想像的运算。
4 ]7 o6 R- _+ |' J0 D
大侠   能举个例子吗   我这个不懂
回复 支持 反对

使用道具 举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33 9 ]1 U7 u$ s2 x* M
大侠   能举个例子吗   我这个不懂

: K9 m8 C3 ?/ {+ w- Fhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html% {- @; p( ?8 l, C
/ v$ N5 ]/ ^. k. T! {; f
3.带有附加条件的化简
" j3 k5 v2 i& j, p( D
>simplify(expr,{x*y=1});
) b; f# s0 z7 i$ N" ^* Z- K* U$ b4 _>siderel:=x^2+y^2=1;' I9 L. I9 _, }% |# G
>simplify(expr,{siderel},[y,x]);$ t3 `4 L* ]! z1 z
#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了
, o( u5 \! L5 T* t: C4.展开与组合2 Z" ]# C0 ~# F6 r0 I6 Q
expand &combine
$ }( ?8 w8 T* Qcombine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起
7 ~& g2 D  C4 n2 s% B+ y- z/ I
; G& P/ H3 r  k. \0 F$ O) t; o, y- Y$ ~* V% [3 D6 N% P) m/ c
$ W3 ^. a0 C2 `; D0 b6 p5 `
matlab是用的maple的符号运算内核,使用规则一样。

6 M8 e3 C2 h8 E; N
+ ^3 l) e% C+ X* ~
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38 - I* A, q$ l1 A% l1 N  L; c
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
, O1 _) d3 ]8 L& J. m# C. A9 u: m+ k
$ h. R) \0 q* P9 `8 W3.带有附加条件的化简
/ [  c& L  {! C* q
多谢了   等下去试试
$ c0 V. f# t% }! F0 W  l% k
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38 + ~/ ?  i" n$ f; d1 Y
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html. ^3 F; K+ W/ w5 V# a5 n7 i: x
; Z% w! L; {0 t" y3 a2 Y
3.带有附加条件的化简
; e  D; \6 {  [) @/ [
试了下还是不行   可能matlab和maple 使用不一样" O6 d$ {3 `: n; d: o
>> syms x
- E! N% X( z) u. H. v" e& m8 x% h>> combine(sin(x)^2+cos(x)^2)   
& `6 b+ l2 M# Y+ ^7 r1 h7 K- I) K& F; i$ p
ans =
9 f8 u$ a+ V1 }) q, r
3 K. C. D- X8 u& Acos(x)^2 + sin(x)^2          这个不化简单
2 W5 i) c/ o$ ?; I% Q . i4 }$ l0 d) I+ S. C5 J
>> simplify(sin(x)^2+cos(x)^2)7 e5 ^, Y% d& _7 ^

7 e# e& a0 }9 X7 cans =
' F2 q% P& \' f! {7 l
  k8 V1 \  K' J8 u) a" N) `1% R3 ^+ ~: k8 M9 }

6 C9 a: `, U2 J5 c# e8 j! ?$ T- z. x
>> syms x
( Q& x$ r/ v8 N# E4 Z1 G! D>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')
% H* e2 K  l( n+ z 3 w4 s) Q" r# H6 Z2 o# Y
A =* O; u. I* W# X
  X; k1 r5 T3 e  x
log(3*x) + cos(x)^2 + sin(x)^2/ b" F9 v# D( o; z
' b" N: s' x& K  f$ x0 E5 }
>> simplify(A)
) Q; ^. L8 N8 J( r
- v: O+ {+ v- J1 ]2 ?ans =
6 h9 d6 v8 g" ] ) U9 N2 x$ T& H$ v  W0 M
log(3*x) + 1
. W/ ~  X4 T! e4 O % `: Q: t# A1 j8 n$ n4 L& ^9 I

' n# o; i3 k3 J

4 `6 q: I: `* r" l9 H$ J* d>> simplify(A,x)
: d3 x8 b5 v: ~# s错误使用 sym/simplify (line 99)
& m5 y5 [3 [8 T* S3 [Too many input arguments., r, U) A9 e: f/ U4 e/ Q4 ]5 g

( k8 O$ X' x' {6 t" t

点评

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

使用道具 举报

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

使用道具 举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1)
- s7 b5 v' a, w, Dans =& P% |: ]  u9 Q; Q! ]
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)1 d( w  q% U- m$ P
>> 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 C* n7 U6 u/ w
KMM =
& _$ N/ T7 ^" @- vA*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)" h- _' X9 }! B# z  ^
>> simplify(KMM)9 U0 G$ L% ^3 H
ans =. I: ]' e! M/ e( {/ E
A*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)6 R; R* `3 C3 i2 z

5 E4 W! J4 _3 s- H! ]6 l+ L要先展开然后合并
* X+ d/ z+ Z( O
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 17:39 , Processed in 0.058262 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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