机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先来个简单
2 R' e, L5 v2 N$ b( s, R* j: \; P- @* A4 m6 u* w& a/ l. O; U
>> syms t r a b q
3 X) Z$ @. B3 E8 N, d>> x=r*cos(t)+a;
  d1 s: X- g# @, K/ _! K>> y=r*sin(t)+b;
9 l" r  o- K7 z; P1 L4 Y# t>> X=-x*cos(q)-y*sin(q);
/ A3 i' e; L+ m+ d>> simplify(X)
0 }4 f# U- U( ^) z9 b4 H
$ Z& a2 i0 n% W" F* Fans =
/ I& t, }  ]& V" Y6 N 7 H  b! i1 Q0 x: x' K
- a*cos(q) - b*sin(q) - r*cos(q - t)    ! G+ n/ j  }! j1 b. B9 @* ]

3 L2 A$ n0 @1 z, t6 m' N1 U9 t复杂点   就不化简了
  K. Z! E! k. S& e4 {0 X  o+ N
>> syms t r a b k q A" B, D( }) w7 g( m( b- i- [; z+ N
>>  x=r*cos(t)+a;
6 G; {% L+ h$ f- ?- Z1 |& k1 r. b>> y=r*sin(t)+b;! [  Y+ T! m( J8 u" q9 k
>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];4 W; v* a1 g8 i
>> M=[x;y;A];
% d/ ?; f5 K( ]! l>> NM=N*M
; Z; r8 h! I7 c; _! j  V4 O" y 4 ^" s4 q" k8 s% n
NM =5 @' _& c0 y' T

" Z: f6 T3 x( ?$ q A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))7 B  p; D' j* @1 C
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
' k0 l9 e, ?/ T2 d% V! {
0 Y1 @- A* T! x1 P. X+ W>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
. f/ h, ^1 q( k! @>> simplify(x1)8 B* k  h0 n  w: ]" h& r; y7 |. l
7 ~; g. s* Q! o; z' s0 f
ans =! G. {2 D/ @7 \! ?
9 u9 Q( f5 [5 _% z
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  

; T1 p3 l; c: b2 g, a+ M
, u. F# a3 E/ p* _
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)
$ Q2 |; j) H2 N! e
- b8 @) K  q/ [8 ?& q  M) ~>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);' t" i( |) v. E9 z
>> simplify(y1)! e9 u' s) D. b" K- z2 S$ }; V

' c% H) L. h, O& L* T% aans =
( V8 c& G: z5 F2 Z9 }
; n  d8 D3 y- u" `. y+ }cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)

; X( R# p1 M" k8 b$ l
# m: u/ l4 J! ?9 n, X1 y$ C
回复

使用道具 举报

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

使用道具 举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27
9 K' s( Q- O# U; Isimplifty函数要有控制参数才会按照你想像的运算。

' Q$ ~# i/ d; P大侠   能举个例子吗   我这个不懂
回复 支持 反对

使用道具 举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33 & C5 n( S( N: A  x; `
大侠   能举个例子吗   我这个不懂
# j5 x7 }1 G: o& X
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
3 ^1 o( n. H: I7 _' h" |  y- A4 j
3.带有附加条件的化简
/ k4 P8 `7 B" D' R# S
>simplify(expr,{x*y=1});
9 ^9 L: E) F" B6 m>siderel:=x^2+y^2=1;
+ k0 d# R! u# W7 u>simplify(expr,{siderel},[y,x]);
# N# A% X8 m9 D( i#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了
3 c' |4 h. `+ I( p& P9 \' A4.展开与组合
* D( V- U/ y! L5 }expand &combine" d) \2 p( A, ^
combine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起
+ h! k: t/ c8 w0 m3 {6 ^$ U
0 u5 ~* Y" O7 _; E0 Y( T4 x6 \, C) q6 T% c7 E5 }
( v; Z: w8 _9 h0 |9 w) U
matlab是用的maple的符号运算内核,使用规则一样。
+ G; M+ s1 v; Y: s
1 r5 X( A. H  P5 d3 X$ T
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38
/ c) C: G- o; F6 p5 y' Uhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html+ V/ E8 Q. j; N4 T; T
* }# r* f( |% b9 q8 o2 C
3.带有附加条件的化简

6 W) `5 W! F' f! U! p多谢了   等下去试试4 A/ W) z3 m* i- t0 r' N& ]
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38
8 c/ a/ `. v, K( r( p3 o; D4 shttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
/ P& y# o6 @8 s. k+ h! @. ^3 e
2 f! \) E7 a+ C# p3.带有附加条件的化简

* F0 N. s0 {% \6 J9 a9 z试了下还是不行   可能matlab和maple 使用不一样/ P7 \- n+ W: {
>> syms x) _0 Y8 S- H- n1 q0 T# Z/ [5 e( h; G
>> combine(sin(x)^2+cos(x)^2)    2 Y" q) k- ^, m: J4 _2 z

& B# d& E/ l& f
ans =
5 C5 h2 ~$ r, K. m. P
& Y7 j2 N0 `' m# e. ]+ scos(x)^2 + sin(x)^2          这个不化简单; K8 Q% m$ H  r
  c, [1 z! Y/ e& R; V
>> simplify(sin(x)^2+cos(x)^2)3 W$ i' x. I2 h; H
" B# u2 d' C4 d
ans =
8 j  r. O3 N1 p2 r0 C5 f
: [" z: i8 ~6 p# r) }' Q6 a19 \: \  i2 p4 X1 g! v; m0 N- M

' L/ v  k0 z' A" e5 m) N" b; L# ~) w( X$ g' P$ e% @3 _$ t' M
>> syms x# _; ?( ?- I2 }0 X( |/ O5 }3 {- u
>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')
1 _( F2 R, w6 r" B- [: l+ x2 z
! |4 g) z, @1 z6 D8 Z2 pA =1 h, w0 p3 t' e6 Q6 {6 j
- b0 J: S6 I" n" N0 `$ Z  @3 `
log(3*x) + cos(x)^2 + sin(x)^29 t6 K$ b8 Y+ a6 S: _' C2 O( B+ ^' L
: {  a) z4 o: C# {
>> simplify(A)0 L, X2 n9 m6 z. f. Q" j

- q. s9 p. d0 O6 a1 B. Gans =$ g5 Y. {+ s7 s6 P! L2 S- N( L
( O$ n: r; F: d) I5 h( p3 y
log(3*x) + 1
* k$ s/ h8 }  [, @0 v* E 5 C$ m% ?2 U# c6 L, |
1 Z, q' J/ O! B7 e: W( D6 G6 S

- c8 }2 Z3 W# x8 X; z>> simplify(A,x)
4 v6 ?, {7 B' V2 R4 z4 C4 R错误使用 sym/simplify (line 99)9 j0 G: d* R* o* x7 u! G" W
Too many input arguments.
7 b! p. e9 }5 l; Y/ p# ~! S% u
- H+ S( Q: s* ~  J: _

点评

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

使用道具 举报

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

使用道具 举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1)
& I6 X  q+ q' ^% C  O" V# jans =
! M) `# L  A( f+ C$ V# X* q% ?A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
. U4 n# @2 p4 U* J* b>> 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 G& V/ A0 n$ r' V3 H! s
KMM =) H& f9 [$ S! P, q3 o
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)+ `; ?4 m5 p6 e  g" U# G' N1 @
>> simplify(KMM); p% n- a. t4 l0 p- B: C
ans =
5 ]7 F4 I/ g9 s- _8 XA*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q). [; x5 e: ~; T& Z4 X

: m% h* v' p/ j# m/ j! P要先展开然后合并
0 i7 E9 W* M9 z1 J$ g% M' q( J6 N
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 15:19 , Processed in 0.056942 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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