机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先来个简单
5 K1 ^& `6 d& v- }/ B( o  P
9 F3 T7 _/ `( E" \3 v
>> syms t r a b q
+ ?  y7 G# C8 \) j! T+ {: C>> x=r*cos(t)+a;' a9 }, t, {( w' L& m
>> y=r*sin(t)+b;) ?1 B' W4 q3 L9 R  H
>> X=-x*cos(q)-y*sin(q);2 y$ D$ Y5 W- o) K
>> simplify(X)" |* u4 T2 K  B) p- ~

4 ]7 x  O' L- C9 wans =" y* _  ~7 z$ r  s$ C/ F% H

4 F/ l8 d! D' \' c/ C- a*cos(q) - b*sin(q) - r*cos(q - t)   
! ?' B; ^# n4 b+ [+ G1 Z8 c' U  X; g8 ?3 \0 [1 ^9 G, ?: m
复杂点   就不化简了
* |6 f0 o4 f. {$ T, h
>> syms t r a b k q A
! T  m* v! T+ a4 w) a. v>>  x=r*cos(t)+a;1 \9 V5 r5 Q; E; E$ G
>> y=r*sin(t)+b;6 l6 Q6 B2 Z+ J. K% d
>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];, c9 w/ F0 ^1 f
>> M=[x;y;A];
$ I' @+ Q" A% {' J>> NM=N*M: x7 J# _+ G/ P( b& r  C
4 h6 z' A' C- _& J, ^" W
NM =
+ f& L4 X( i8 _
: g; h! b: T2 Z& l! q0 {- L A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t)): t: |5 s4 V! b- E1 E  D
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)- ^9 a! F0 C* G% O" |
& I' G4 J" Y. r# D9 r$ W' F# C, E
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
. ]: S/ a3 Q# W! _1 p( w5 P4 ]( U>> simplify(x1)4 t  f/ o$ a0 S7 _* L1 o

5 d3 H3 z; l0 b2 {ans =4 Y/ _- w2 E3 r  A( x
2 R$ J! _1 g, `( ]6 U
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  
0 w: m$ R' @% O7 {
9 J6 o! J' s8 X, ?- H. C% }
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)
7 m7 l' Q; h# X( b* b) V- a
; w+ G& G- l9 v7 B2 O>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);
+ V- P- Q- W7 [; C>> simplify(y1); w- R7 m- K7 ]7 o2 P2 D9 K9 E
2 S. v) [9 Z4 B, q, Z
ans =
6 W  W, a" N. Q) l( T! o 1 l& t& L7 b' |: J$ \
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)

5 x7 [: R9 J- E4 {# N2 [( b: @& w8 L
回复

使用道具 举报

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

使用道具 举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27
  e* T' ]. y- k0 F$ [simplifty函数要有控制参数才会按照你想像的运算。
  ~8 r7 D8 @# F; l4 `
大侠   能举个例子吗   我这个不懂
回复 支持 反对

使用道具 举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33 % l# e2 C6 ]/ A" M" e* J
大侠   能举个例子吗   我这个不懂

" s2 F, t! O2 F- yhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html2 E7 H3 H2 p9 Q7 E2 u, v
" a- V! W6 g, h2 F8 y% A* L( A0 J
3.带有附加条件的化简
! I: o& ~7 ]' }
>simplify(expr,{x*y=1});0 I* q) K& J; R3 d3 T5 [  `% u
>siderel:=x^2+y^2=1;
7 l; `. s3 w- l5 U>simplify(expr,{siderel},[y,x]);
/ y, Z  ^* s, Q# o8 Q$ A#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了
3 Q' G( r+ {: q8 u: Q  B  n4.展开与组合' a$ H: o4 a0 V9 T
expand &combine
9 B3 G% E& x: P  A+ [1 B  G$ \! ycombine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起
! D2 H/ i( d& m0 k' s& X: i7 S4 O
/ {# X( o, f" q* j
0 F. l% E. a' i/ @& e* {' q9 x1 k$ ?
matlab是用的maple的符号运算内核,使用规则一样。
3 `* k4 R6 g. k3 a: ~) Q/ {

1 k5 B; H* M' ?& B5 K1 j" P
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38 9 Q# e, e, V3 {: _
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html9 I' d. s1 j3 p- w2 b0 u/ C, E

, |4 Q' G; A- x$ K% I- W5 b7 |3.带有附加条件的化简
4 v1 l; F/ {) e
多谢了   等下去试试5 R% X) V) {. I
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38
9 r* v' Y* W3 \http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html; ^7 o! O# J0 G3 p

2 r" V) {; ^5 V3.带有附加条件的化简

1 N% X( L8 W/ J试了下还是不行   可能matlab和maple 使用不一样' I. b! f3 p( l4 x3 T( [
>> syms x
/ t% @7 f+ B- z( V0 b5 e: B>> combine(sin(x)^2+cos(x)^2)    + T6 r" X) m$ _2 _6 c6 \

2 i& ^* _6 d# {5 @+ h2 k7 Q" O
ans =
: q0 }& \2 c7 b # j3 R. n) X8 ]- n) R, @0 _: r
cos(x)^2 + sin(x)^2          这个不化简单
: h+ L3 i2 o# g! D! [5 p % U& ?' _5 I; V. a0 p' H
>> simplify(sin(x)^2+cos(x)^2)
. ^$ ?* v9 E6 z1 K& s# M
5 T/ U4 W+ v& h" H* k) c8 wans =
+ ]7 s9 R0 B! v' q$ c& M+ S2 ~' g. } , U# M1 n, W9 T: s
1
' E! K+ I6 u# U1 W6 V0 s! J! w  w% T
# v* @! ?: n7 G) `8 G) F" ^4 O. V8 r/ J
>> syms x5 O# l$ b% j/ J, D" U. ^# i6 [
>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')
- G( o) U/ j2 S+ y1 V- W
4 {2 @1 t4 d$ A5 R2 E' AA =
4 }9 g2 W- H4 W' p" k 6 i, ~7 {3 H  Z  c1 N4 ~# ^! I6 ^& E8 @
log(3*x) + cos(x)^2 + sin(x)^2
0 C" m/ w0 [/ a8 M3 a8 N 1 h7 [$ w/ X! ~$ l" @
>> simplify(A)8 l8 z( p- I6 W/ ^+ `

0 b! e2 r! d  U* D2 hans =
& a3 J: a' _4 ?) i' I' h . p# _9 c# I- P. M- K! s
log(3*x) + 1
! W5 {8 W  B4 v+ x  g  v6 M " l* u% C4 i  Q/ Q0 R1 L( g3 q8 b
$ S6 \6 ?, W2 O7 f; b: @7 X$ u& |8 \5 h
1 U% B# @5 K% k' ]
>> simplify(A,x)
3 D  l! ^3 u+ O* `# q( X错误使用 sym/simplify (line 99)3 I6 N! m2 D6 G; t
Too many input arguments.
0 ~) A2 x; ~  Q7 A' v
/ L, a. r( f" h/ h

点评

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

使用道具 举报

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

使用道具 举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1). I" t  ?) k. i1 m0 R
ans =! n) ]$ u* O1 S/ `
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
( S% {  L0 w  o, _1 ]>> 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)')
5 F- ^4 x8 V. t6 _  _KMM =+ ~& S8 d* f% s6 t
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
+ Y) P9 J2 {# M1 q>> simplify(KMM)
; K7 G* Q& A& q* ~2 d' m% Wans =  |( E3 A* ^8 I. W
A*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)
6 Y- `1 U. f, Z! X" i# i. X
: `- X: m6 T  L! T( `- L: F要先展开然后合并
( V/ U: f$ _" ]( L3 y5 S7 I* v
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 03:28 , Processed in 0.055703 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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