机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先来个简单
& D: p; z- a9 ]* X5 |' u2 z: ]6 j! Q8 t$ B. `+ }# `  X
>> syms t r a b q
% r. _% T  ]( v9 b6 j# m>> x=r*cos(t)+a;; w/ |8 x3 @8 r- o3 _& {
>> y=r*sin(t)+b;
9 ~0 N) w, ]& U! B$ ^>> X=-x*cos(q)-y*sin(q);% s7 O# B# S2 b+ t# @+ j
>> simplify(X)
1 G7 }; z6 e/ }1 k2 x7 U & p5 ?* e  V$ P: }3 L
ans =& o# x3 r: X  k0 C% G; g
4 h, O0 d6 C3 c& ]8 Y$ |
- a*cos(q) - b*sin(q) - r*cos(q - t)    * I1 G+ p0 S/ `& ^6 l% o; I* y
7 x5 l- {0 _' |0 S
复杂点   就不化简了
; r1 d' A+ X0 c" i( S* j) N
>> syms t r a b k q A, I5 f) f$ [0 f9 `; N  S
>>  x=r*cos(t)+a;
1 G7 c* T4 _  P' |: h( l. \>> y=r*sin(t)+b;
* J1 w' f' v7 n/ K>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];
' ~1 d8 A# F' M9 G- t* F>> M=[x;y;A];1 p# }3 S, X( W" R- Q+ ^
>> NM=N*M9 K$ Z7 h+ z- I- T- C' u/ Z

9 j$ B# @# V# fNM =2 C! U% `* z7 T2 n, Q

" j/ E, W; q. X% a$ _+ \0 U A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t)); H5 i0 [8 Y6 D7 e, n; t
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)5 B. z6 ~! ~$ t0 t: R
" V& I# H( I9 P& M% q
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
4 d' Z7 e) ~9 k/ A9 [# ]>> simplify(x1)  Y" o  y- `; L9 M6 q4 q
5 ?9 E: w* X. @7 Q
ans =
! s2 {7 q1 z9 B1 t" u6 k8 m ) q0 i1 z' t7 J6 T" p
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  

2 _0 r; _# z' Z9 w9 L
; Y) C& H- o1 |% w& P
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)
) _- q$ M7 ^' Z* V3 l
, F- L2 B, b: j! Y- x4 ^, E: J6 Q7 Q>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);; G' w0 u* `+ d: c2 T
>> simplify(y1)
! ], f% G! l2 ?) ?( e ! e9 {0 Y4 d# M) E1 E0 R
ans =) i& r: h; @* v
, l$ S1 Z9 U6 f9 q8 p$ |  E" B
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
7 r, ]: r& b& A  I0 w+ b1 M

; W1 j* I: [+ o+ O
回复

使用道具 举报

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

使用道具 举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27 3 L# P" J# N  e5 L; v
simplifty函数要有控制参数才会按照你想像的运算。

% f; `* C& V% D0 A' u& Q  U大侠   能举个例子吗   我这个不懂
回复 支持 反对

使用道具 举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33 2 h; {; A7 B" C9 p# T
大侠   能举个例子吗   我这个不懂

: n! X3 n7 j  ~1 l6 B& m0 n. ?http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
: z( g7 l  M- c( a& ^1 y4 v2 T3 y6 j8 [, F/ i
3.带有附加条件的化简
4 E3 S6 p/ M2 G; z5 V& D+ U
>simplify(expr,{x*y=1});
9 }2 N9 r+ W; I# W>siderel:=x^2+y^2=1;
' C# w/ Z, L8 @7 X0 B>simplify(expr,{siderel},[y,x]);" a# ?& t" l8 j4 v7 c8 d
#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了3 G% m7 X5 e$ J; b' ^! n, [
4.展开与组合9 L2 J9 B2 z, J% M  z
expand &combine
' C8 r9 h9 o. U3 g3 Zcombine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起5 f2 m+ c5 n5 M; M  _2 H
) Q% V% H4 L* t/ L) `7 n
, Y1 {) l) C9 \' _5 w, e
' t5 P% ?% e7 v$ D
matlab是用的maple的符号运算内核,使用规则一样。
' F; ]% |' f/ O8 t  w8 g

9 F7 d* d, X0 E
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38
9 v# N' j7 f& F" U4 W7 chttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html/ W: X! S3 E+ |8 B5 [
# T' O) H( J2 i" O4 s5 Z
3.带有附加条件的化简
- S5 v2 X' v' W" D) p7 K- L9 P
多谢了   等下去试试/ c2 Z! f( o* l& V, x
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38
) i5 W( S$ G' vhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html' g4 F3 a; G7 V" u6 J, E
' V2 C& ^& Q2 s2 a7 J2 a7 |
3.带有附加条件的化简

5 f3 s- c+ \9 t4 f' F! C试了下还是不行   可能matlab和maple 使用不一样
# R+ J: I) F# o
>> syms x! u! y% _4 M" A
>> combine(sin(x)^2+cos(x)^2)    8 U1 S5 ^: G- I9 u

9 }! j8 J3 I9 W$ j' }% a' v
ans =
$ B7 c6 G: b* l, d  o* @ ' ?" h' g  ]! X$ Z; k) z7 X
cos(x)^2 + sin(x)^2          这个不化简单
; h& }/ K( e1 D! j. h; k & p3 T) g8 _* ?: T$ Y; f6 y# U
>> simplify(sin(x)^2+cos(x)^2): V. o) |: g: a

4 |6 H# l2 J  z. J* A  cans =
# n! I; G4 Q  {4 z3 p/ ? - f$ H, P6 \5 c$ d: F2 ^1 `2 x
1- M2 L/ `3 h0 J+ {- r3 \' }
) w9 G. V% h0 e
" P5 @1 G  A& }1 Z
>> syms x! }6 X5 I! ~+ ~( Y
>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')
' ^2 X) O. x/ X, z . W, [5 |, V+ Y% y4 `2 g' c
A =
, z# P# |- F; a/ b9 [ 0 K( ^% h: A& ^- [" q& r+ g% R8 B
log(3*x) + cos(x)^2 + sin(x)^2- z4 G9 w( h( ?5 b5 g
7 V: H* O9 [1 e0 [# e
>> simplify(A)
" V- \5 A+ E, \* W# p $ Q9 m" a$ F, Z% i2 Z4 u
ans =
- {; [, J  n" |: w + J0 Z% T# y; K
log(3*x) + 1
: y6 @7 }! q* }- M4 ] 5 R0 g4 t+ W7 {. _( m

* }" p, c2 K4 ]4 E

1 h& C! a( {( T% I1 v" \>> simplify(A,x)
4 U" A1 N/ a" ?! Z) L2 }" g错误使用 sym/simplify (line 99)0 ~( x& d% f; |% \
Too many input arguments.
! _+ q0 ^. K' @1 u3 D2 l% }8 K1 Y$ W7 f

点评

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

使用道具 举报

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

使用道具 举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1)) E* n# _/ S4 ^) ^4 o: }3 y
ans =
% h3 p. I% N. @, L, G% GA*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)6 _% i- b3 F# ?/ }& e: G- A- @# a
>> 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)')7 M  K5 f+ g# k5 b
KMM =9 m; D$ Z  U0 k8 W1 `" V
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
1 e0 Q* u1 y6 o( j- ]>> simplify(KMM)
9 N4 q7 V# X& O2 j$ Aans =
3 r, l* J9 k( w6 QA*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)+ [2 r+ I3 Z$ t" d* J# R
( M' K0 ^: d; _- k
要先展开然后合并

: p6 ]  o, j7 Z; U2 m* l( K$ Y
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-4 15:00 , Processed in 0.056507 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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