机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先来个简单
: L/ G; T/ z, ^# ^% N3 N' A4 x8 z' c  a! r* z- h/ l. K$ v+ x
>> syms t r a b q
) w. T5 ]' A7 ]) Z" ~( ]>> x=r*cos(t)+a;
' I& p' q+ V4 I3 W7 q% C. j>> y=r*sin(t)+b;5 p1 e( T- R: n# j" I! ?; |* c8 @
>> X=-x*cos(q)-y*sin(q);( l  R6 j6 Z% g5 Z" f' K5 n
>> simplify(X)
+ ^& d) K! V) ~5 g 2 A& W4 ?% j5 L. ]
ans =
  _1 G1 M8 l. Z9 a1 E! `$ s
8 s! W4 K8 u! x; E& ~; _# C4 P- a*cos(q) - b*sin(q) - r*cos(q - t)   
/ h" }7 s- i7 o9 O- F$ m$ I& e0 j' @" @
复杂点   就不化简了
" @' c# k5 ]' J) M# N
>> syms t r a b k q A
+ ]. m* x# K4 h7 g>>  x=r*cos(t)+a;
+ v" E$ i: {8 Z>> y=r*sin(t)+b;
  K7 Y0 D5 [& X! V6 ?1 Y>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];6 i& L* I3 o* `. `0 o
>> M=[x;y;A];
- ^: D" Q3 U1 A+ z; O>> NM=N*M' y/ u: p. F2 ]8 @5 c
; U. \6 j* i7 o
NM =) f7 _3 \# q% x2 Y8 B. x! p6 o
: ?! H& h( \/ H* `. F+ Y0 F
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))# A# X& r5 m8 n- X9 B
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
9 h4 \9 T; y( ?( }/ ?
& X- e0 }+ M( ~% R* a>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
, t) U9 [! i4 `+ Z>> simplify(x1)
8 Z. t/ x/ [5 L, ?
5 Z/ y1 I8 u( T8 Q7 A  Eans =
! z8 }( h* ]+ q; C
7 [; c) f$ J2 }+ }' }A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  

( \- n% A3 t/ w9 y: o$ d  o9 c6 h; W/ `0 N* X
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)2 J* g; D% ?5 y: A  ^. W5 ]8 _

9 I: V/ c* o* Z! I>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);
6 |* F- W) c% ^$ k. C! x>> simplify(y1)/ c2 j7 B  ~! [% n( b

, y+ o3 t( X/ S0 M8 L6 P( L) qans =4 |( N& X6 r6 L

3 X* u) R+ ^9 B2 A- Dcos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
7 `7 x0 Q) o. x9 L
5 ]  z( ]* ?1 g& N
回复

使用道具 举报

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

使用道具 举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27 * d; u& l  N& R/ y6 @4 ]4 _5 d
simplifty函数要有控制参数才会按照你想像的运算。
: G, V2 c" z6 s1 h. R
大侠   能举个例子吗   我这个不懂
回复 支持 反对

使用道具 举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33 ( @' s% d( e+ y2 ]  L8 g! y: v
大侠   能举个例子吗   我这个不懂

& }% Z# \: J5 U9 g" j7 vhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html; D" A6 _  M9 f

  p5 r* z7 V8 X# t$ k8 u3.带有附加条件的化简
* P% V: f$ G3 i6 F
>simplify(expr,{x*y=1});3 `! ~3 U" I3 D# \# x
>siderel:=x^2+y^2=1;
0 o3 ~1 {; t  w& `>simplify(expr,{siderel},[y,x]);
7 Y8 I( h: [. `4 }% b#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了
2 \7 E8 c* A  b# c( T6 R* V4.展开与组合
3 h; N- D( \1 n$ f( F; \" Eexpand &combine% u' F3 y$ ^" z* S6 h  ~
combine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起. `+ b: e9 z2 K6 y: I- W

! |5 W; Q) ]3 L' o7 @! l4 p$ G- K# M2 A
" a1 a  i/ ?( }; w( L
( R0 a& c$ [$ c3 B" D# Jmatlab是用的maple的符号运算内核,使用规则一样。

9 J# Z9 h+ c! d" \& X  K
: j. `2 I5 k- K9 A7 B  m' ^" ^
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38 8 B! n( ~+ |. P- u7 D
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
" d; R! c4 k& C, r7 T
- }3 M) O2 L4 v- x8 b( B3 b$ D3.带有附加条件的化简

0 h8 k0 U  g7 e多谢了   等下去试试
3 z, Z3 L( J, F0 P* L5 ^$ i
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38
( |+ z# d. v% h+ Q: \  W/ Shttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
* N, x: E+ Y- _9 h5 G8 l4 k4 k
5 K+ Y4 y# r5 J' o& [' n$ V3.带有附加条件的化简
. W! Z( s! u5 S1 w2 X7 y" n5 u1 |: B
试了下还是不行   可能matlab和maple 使用不一样) N- b! |3 l1 o2 z( S! O
>> syms x- A$ W  g* @2 C- }1 [$ F* F
>> combine(sin(x)^2+cos(x)^2)    ( ]/ k/ |. q8 k' q$ o* f( ~
/ _: C# F6 d: Q
ans =+ z$ O3 ^6 |# Z( T, w5 H8 f# I

( a7 Y% n  v2 v# `' s8 Gcos(x)^2 + sin(x)^2          这个不化简单; P1 N$ p! X" o* S

  a5 l: |" \( z7 w! E' v7 g. \' f0 A>> simplify(sin(x)^2+cos(x)^2)
! P2 K! y7 X9 W/ j' |6 B, K
6 h- ]  ~5 ]- Y, q3 R) r+ x; eans =
! a4 ~4 Y+ ]; G, Q/ z0 r 6 R( B, c# m. Z; r& }
1
' J2 j, H7 a  F2 Q. E; K1 G5 n1 v
; |! s8 V  b4 T1 z0 M! k3 i8 ?; m" d- w4 Q) s8 u1 W6 m
>> syms x) m7 [. p3 g9 t$ n0 \
>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')
5 C" d7 W! T0 J1 h ( t6 r4 x+ I% L. T
A =
4 W# T. P  h7 c* h5 ~$ `! ~2 ^ ; c, \) h, @2 k: a1 Z. a, P6 m
log(3*x) + cos(x)^2 + sin(x)^2/ E0 t6 u0 R  J# ?6 t, [5 G0 d% k
+ q! K, U; e- K: W: z2 D+ q9 S& i
>> simplify(A)
- v$ g! g9 o: B5 h . J3 @. q' q1 F# ]+ ?2 H
ans =7 b+ A: |/ f/ f# Z
+ s+ `1 q1 V4 L1 ^
log(3*x) + 1; c2 e/ M) R& {( h$ j' c6 r

+ x% X5 J1 b8 G1 O2 k% w8 {; V/ d5 P1 @' o$ t) q3 j- o2 ?
. ?4 n( x1 T+ E' }2 ?% Z8 c) v
>> simplify(A,x)
# y6 Q( a5 l$ S/ s- Q错误使用 sym/simplify (line 99)
  v: Z6 G& b% U# E* G3 |Too many input arguments.
; q* e  G& v% H. r' }2 L  E2 v# Y" x1 ?

点评

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

使用道具 举报

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

使用道具 举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1)
# Y/ a$ V: T# E* G0 K: ^ans =0 Y* v, X9 N# q* j9 }  U! w8 h/ ^
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)( c0 s+ M: E! O4 @- F5 ~
>> 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)')
' P. |/ }% c7 V9 Y+ U  ^KMM =8 D( _; _: k" U$ a! }( Z
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
8 a2 m  e# I- M) Q>> simplify(KMM)
  Q' N) S. }/ {1 L. q% Z6 Qans =5 N. O' P; z( \2 R
A*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)8 B! N9 T( B; W6 t: h& U+ T

9 H; s1 j5 U7 p) l+ f要先展开然后合并
( o/ E9 A* s- p. \: I3 A
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-19 06:27 , Processed in 0.057523 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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