机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
首先来个简单  X/ ^# t7 _% k* `
" e( v% Z0 @4 e) [
>> syms t r a b q
) y. I7 Y' C( r6 C+ Y9 G% q: D$ C) U>> x=r*cos(t)+a;2 M7 Q& `# o1 a3 B
>> y=r*sin(t)+b;
" ], V( M; b  v>> X=-x*cos(q)-y*sin(q);& o/ D+ A1 |4 W1 [
>> simplify(X)
2 }# b9 R# |3 d$ o4 _2 J 3 j2 y" H, q; Y0 R* w
ans =( l7 [" ]. [8 L, f* r, }) Z$ U* u/ |

) `. C1 E' W* a8 K# d+ m, w- a*cos(q) - b*sin(q) - r*cos(q - t)   
0 B- X# |+ `9 E% l  u6 @
1 R, B0 _7 E  s/ U8 W( l9 S复杂点   就不化简了# E$ U. D8 ~; j1 ^) I5 t
>> syms t r a b k q A" L0 s' `0 D8 `0 H7 s
>>  x=r*cos(t)+a;. e- ~7 R. j4 z" J  D
>> y=r*sin(t)+b;
- {! c' M" {% S& t2 m>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];8 B0 S8 v2 h4 D+ J8 m% U: Q
>> M=[x;y;A];8 I- ^+ F; D& F" u
>> NM=N*M
$ g' K/ ~2 F  t* p
4 p0 _9 |* E! qNM =
$ B3 ~% M6 ]% k+ `  a
& t1 n: ~4 Q( L& l* G8 D A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))
3 x6 B; A2 w& h5 i cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)6 d1 X. z: d4 ~( `

" P1 o# d' @) H>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));6 }' h' k  N2 e4 e
>> simplify(x1)) w, v* A* _1 h# T  j$ F

7 d$ w/ r- \2 V( @' f3 Dans =% u, m3 M3 B8 Q& ?

  ^3 |7 Z' a+ lA*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  

! c4 A2 I, O5 R$ u4 n& C' W1 {
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)
$ J* ~& F7 \% L- k% A 4 @* J* y  a9 Z" ~( p9 Q9 T
>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);2 U9 o2 P: }, M+ |
>> simplify(y1)
# K, ^& A7 H5 ?0 c1 I, y) J6 ?1 w + S3 N# O, s) e5 P& ~8 V& F5 M. u
ans =
+ A* B6 y# N: ~# o- i. v3 g
: M  q6 r- k+ o: Lcos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
* J. z# v3 ^7 @+ g% ]& x

! f; ?# m7 g! N$ o, Z2 z
回复

使用道具 举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1)
' {: P) }* E- f; D5 _: Z) S  Uans =
4 b4 W+ Q# ^. i+ y; m0 ~, PA*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
* e2 O9 r+ Q5 ^# q>> 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)')1 R0 A  b' t$ z
KMM =
: A. b: F3 Y' [" ?3 _( uA*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)7 M3 l2 a+ v% w4 Y
>> simplify(KMM)
/ _: _' ?* ]& \3 U+ K. @- l; I% ^ans =
" i; x9 J% [, [3 S( v. nA*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)
! w/ B+ ^+ X' \) C) q' F
+ F& }. g& u: z" {0 i要先展开然后合并
) C/ ~+ W/ ]' Y; }1 a
回复 支持 反对

使用道具 举报

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

使用道具 举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38
# e0 q6 v, [9 E$ [+ p" N4 @http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html; b$ _* r# W4 H/ s8 I

, g: M; Z3 c1 W7 a3.带有附加条件的化简

! l+ ~# q9 F' Y4 I5 w0 X试了下还是不行   可能matlab和maple 使用不一样
+ |* E5 m5 h. t
>> syms x
) ]* u6 s, ?4 }% Y, _+ j>> combine(sin(x)^2+cos(x)^2)   
5 ?* _( N- f$ @5 l# v- E/ Z" _- M" ]  E' A, L2 ]8 w
ans =! [8 v4 s8 {4 x6 S1 u& ^1 Q! Z

' R6 K' L& u3 V3 c& ~, E+ L8 Hcos(x)^2 + sin(x)^2          这个不化简单
& ]; S+ B) y  n. q# Z
3 i) `3 u3 S& ^' d8 p8 _>> simplify(sin(x)^2+cos(x)^2)
! A! @& f2 {2 t& x# d) z* a# z
3 e  `3 Q: K0 l' Jans =1 f4 _* M3 u& J1 }) `

8 u; m, B  Z. e% g: E7 t# d5 P1) A1 u5 f" X* [1 r2 S
: Q; q- i0 e% O7 |

2 _6 h7 B# e3 l
>> syms x
8 c: A8 H. [* ]3 V- k: c. \>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')% d# h# Y6 C3 L6 j
& W6 e, y& v' F$ o( t
A =
- t4 z% K# }4 ]% G; _ 2 y& C! X# K9 O% N- Z9 h+ \
log(3*x) + cos(x)^2 + sin(x)^2
& R5 r+ n. N% ~% ]7 V4 N
4 f. y6 t( ?' G0 R- q' _>> simplify(A)
* J9 N0 d" v4 h; t: H
2 J! n7 s: o# qans =
; M$ j" `4 {- Q: b4 h
' n8 x+ a8 E' F) r( z+ H2 plog(3*x) + 1; |  ]% Q$ L2 {, _( h0 z
3 X- M0 R6 w5 `: L
) q: D. T! \+ U4 U
5 Z, S' Q/ K/ X
>> simplify(A,x)
7 z8 b( a) D- R" r0 o3 M错误使用 sym/simplify (line 99)6 S6 Z! Q8 p4 z+ t! x4 |
Too many input arguments.* f, ]4 w: G6 q( v' F0 F  Z
6 ]+ S: Z, `! p# }0 d# d# ?

点评

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

使用道具 举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38 & t- t$ F" C% [/ k* \9 ]
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html% V; I( i1 j8 ^  c. ~! W
0 u0 A8 J$ `3 W+ H" b: z6 ~. C
3.带有附加条件的化简

' Y. F0 Z5 ^2 e; @- }3 R% |多谢了   等下去试试
# }" j4 q/ g2 b- Y
回复 支持 反对

使用道具 举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33 7 H6 T2 ]% ^0 F2 q5 N
大侠   能举个例子吗   我这个不懂

7 a  r  p( i' ?* m" w* chttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
' @  D: j9 H$ b% D3 {- y
! f5 ^1 ]* z. Y, N9 E' W3.带有附加条件的化简
5 m. O" ?( @+ Z) G7 A' A7 r
>simplify(expr,{x*y=1});0 J4 K: b% V1 \! f: n
>siderel:=x^2+y^2=1;
8 \# p' f) O3 d. L8 O: B>simplify(expr,{siderel},[y,x]);$ ]7 d. Y/ l1 t) b3 I: l$ @$ t) K
#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了. o7 l. g" e. W' H: q
4.展开与组合
& a6 N" |/ t* _$ i, h! }: ?# Qexpand &combine1 w4 ~  @& M4 V
combine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起; r- U, R9 P1 n+ c" }" h
3 t2 b( h1 Z/ `3 }- ]) j" m. c
$ Q3 ^1 t; d* u( S. r
5 T0 W6 }( g! W& r$ F0 a+ \& X! P
matlab是用的maple的符号运算内核,使用规则一样。
7 l. E, ?& U, W) ^2 @
8 ^; f. Q- g& E$ [; R: [1 Y9 x2 d* D
回复 支持 反对

使用道具 举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27 2 u0 ~$ g. U; q! e3 e' T
simplifty函数要有控制参数才会按照你想像的运算。
' b  f: X- I) E% Q  K" B/ @& J
大侠   能举个例子吗   我这个不懂
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 17:46 , Processed in 0.055512 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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