机械必威体育网址

用户名  找回密码
 注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先来个简单/ }7 w, U& p3 }1 o5 l; l

; ^- V- U* i0 e# n' y
>> syms t r a b q 3 Y' \" ]$ r6 ]6 z
>> x=r*cos(t)+a;" I5 E. V8 ~) Y& n2 ^
>> y=r*sin(t)+b;) }% \; T8 P5 i7 [8 ^3 Y! x; g7 j
>> X=-x*cos(q)-y*sin(q);& _9 G+ O. r- W: A  _4 a
>> simplify(X)
6 J/ V4 @. M& q* Y
9 Q+ z' U0 U7 Vans =
; W4 P/ Q( I' x3 H
. w% }4 O, w& [) w  y- a*cos(q) - b*sin(q) - r*cos(q - t)    5 Q. }( N2 D  v: l

/ ^! g2 U- R5 s& {# N7 b# r复杂点   就不化简了, M* i3 h) b# F
>> syms t r a b k q A+ _& \  k' \1 V2 M0 Z
>>  x=r*cos(t)+a;% O) r! o/ Y; _8 c4 R
>> y=r*sin(t)+b;
* R" s$ Z; }& G, K8 [/ f# L* U>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];1 m/ i# ]3 o+ H5 X: K
>> M=[x;y;A];) M8 |  }! G; p$ t9 q
>> NM=N*M0 y- W* v1 o" h. E! F

; x" Y: U5 H! ^3 n5 ^" Z/ F3 ANM =5 ^/ N0 V- K! |! q9 ?7 L( q) y# m

) b& }, q  X: q7 C, F' ?% y A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))" }' {5 E% h& G& {6 q
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)2 Q) C2 N  P* g, P
) R! m- U0 f2 x
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
$ X- C5 R6 |& a5 a>> simplify(x1)9 H. x( K2 L0 ~. e/ k0 R9 t- E
- k0 V8 {- K: G0 }! e1 }
ans =
% x7 H$ v, h8 f. R5 p
: Z9 w! P7 q4 e. i2 HA*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  
6 \7 @( p2 o6 F8 H$ f1 x! w8 z
  y2 G" o0 }3 U" T
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)
+ h$ J( a6 K2 h/ Y& r- j" n. C6 h
) V4 ]* D& a0 U/ T>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);
$ X. R/ o0 u) X$ M5 v>> simplify(y1)
2 [+ N# n/ y$ k3 g. Q3 V+ w$ U, L
8 N/ ~" I/ U1 D  \- Qans =. C, U- E( Z# ~7 d1 j
8 \& C  K% R1 {
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)

# v% R: W& j, e5 h0 Y& a$ f: F% S; L) }" h/ s% O' ]
回复

举报

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

举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27 ) H1 _" G7 ^3 l
simplifty函数要有控制参数才会按照你想像的运算。

4 |% z' @' V9 j( o' P2 E大侠   能举个例子吗   我这个不懂
回复 支持 反对

举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33
: p. h' G+ M! x( O7 t, d# d大侠   能举个例子吗   我这个不懂

% q8 q8 U( w3 I; Yhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
6 ?% B: V% h% [% x7 O* s! }: N/ K$ X; `2 a4 ]! d( k
3.带有附加条件的化简
5 Z; Z5 o5 B, `( W) C: T" q
>simplify(expr,{x*y=1});. b( Q: U0 v' S5 P+ @9 t. i2 A
>siderel:=x^2+y^2=1;, Z  x- X2 W4 u( C
>simplify(expr,{siderel},[y,x]);
4 X4 i, j! V% N3 b#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了6 u" Y2 W. h8 _% O( G
4.展开与组合
5 b+ ]3 W) n5 q; R4 @7 _$ o+ rexpand &combine* h( z8 V; x& y8 A
combine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起8 o! e1 l5 [9 J4 O# s
) t. y, e' c* ~: ]  i: M, y3 j

& F! P# U9 U* x$ d, \$ t0 N/ @, y  c, s2 h4 I) ^
matlab是用的maple的符号运算内核,使用规则一样。

6 e8 o, I/ w& q0 `
+ k+ S2 n7 |6 E$ z) H  s' ^9 k
回复 支持 反对

举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38
7 Q( b! K& \1 g' d! \& {9 |http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
5 i3 i9 {& @5 T: q& n7 m; X+ C% T$ R- e2 [/ a
3.带有附加条件的化简
7 r! V# {5 V/ \. E
多谢了   等下去试试
: B! T, P  C+ x0 s& u
回复 支持 反对

举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38
& Y# i$ o* T. S2 T) nhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
) X9 ^1 P7 g, e0 l6 V. i
; N& [; l# C$ ~3.带有附加条件的化简
& a  w  ^0 `2 \( G7 T
试了下还是不行   可能matlab和maple 使用不一样+ q: }, x, m; \. P/ d
>> syms x: n/ P2 e" q3 K- D+ V  W6 ^  P
>> combine(sin(x)^2+cos(x)^2)    # l, [/ h6 b' s) x8 p% P2 T. k

$ M* R5 k9 L/ T# d- X
ans =
1 b" g1 l, S8 I. u( P
7 k  g4 \0 e3 ]+ h2 hcos(x)^2 + sin(x)^2          这个不化简单0 |5 A; I: W4 r4 z% x- _7 z

) C( m  t; K; c7 [) t>> simplify(sin(x)^2+cos(x)^2)
( m. ?' ^. ?8 M' K" Y
* g# ?' w; ^# f' S* v) Q( v1 Z3 m* oans =
4 {/ p5 i8 j5 w) _, I- X; C
) @$ S# w5 ~( l1 l& A" i1
! t" J- }) F8 e( ]$ X2 O
& z3 V% |5 _& e" i. _1 j  t# q/ m2 l2 R. _$ V
>> syms x
+ T$ Z& Z& }) P' a>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')) o7 e- V: A6 Z6 z
4 ^# k& c0 O4 q' L3 l0 c
A =
9 I6 m9 V4 i0 ]0 A
, l: a" S% p# r/ g, `& @+ X: Glog(3*x) + cos(x)^2 + sin(x)^2
+ a) o1 Z: N% `% m5 N! T
# o* c$ F+ M" r- s; Y5 x>> simplify(A)
1 q+ S2 l! u" R- n( d( d% P % ?8 \6 S2 W7 G
ans =% T: I$ ?& Y& a! p
! Z. I; f1 d4 \$ v3 H! Y( f( [8 \0 h
log(3*x) + 1$ v; A: I- }& S* C6 H( H

/ K# ^* W7 W, C! L4 d7 g$ O/ I/ V/ N; b& u% H, b4 e3 d; s

5 W! T: e/ k, a/ X! G# G>> simplify(A,x)
3 g, \% H" X9 c5 {  e2 u错误使用 sym/simplify (line 99)! f* b6 A! c1 V  ^& Q; }
Too many input arguments.( q2 }! }( Z8 U

# ]$ x+ Y! I3 J, ~

点评

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

举报

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

举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1)- g* b; x. O% ]/ v2 H2 f
ans =* Y5 O; j* ^& x0 e* n. k
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
/ P+ t( e2 g6 u, v+ T7 u/ c>> 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)')
) a6 T/ h6 |- u2 a8 [- k: JKMM =' [$ l- \0 Q3 W$ L, E& u1 ]
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
& s" \. e7 U" ?# I) q; B$ R/ _>> simplify(KMM)
) j' [1 O$ c6 `+ M/ u4 Lans =
4 P, j. c% G+ OA*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)
% d7 V/ F, F: [# v
' J3 }  |0 {# I' [* }. P. i要先展开然后合并
# ^" H& p: a' P
回复 支持 反对

举报

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

本版积分规则

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

GMT+8, 2025-3-27 17:05 , Processed in 0.062090 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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