机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
首先来个简单2 P+ |8 j4 r( \( F4 C6 a& B
3 A8 |, S5 w( f" @4 _
>> syms t r a b q - v' N0 r, x% G; d$ Z
>> x=r*cos(t)+a;, W5 U4 Q4 b4 z1 E# \
>> y=r*sin(t)+b;
6 z/ f4 R* s) m6 D>> X=-x*cos(q)-y*sin(q);
# a2 m9 G9 y; W9 {0 z. W" l1 }>> simplify(X)
' R" W# a& `+ X& O# u3 I+ c
' M! E! S9 |; S# c& {4 L# Tans =
7 s9 _$ M* I  a8 Z - ^$ h% V6 z, s$ O# R5 @5 ~
- a*cos(q) - b*sin(q) - r*cos(q - t)   
# v0 }+ p: ~0 r7 S( z# |; y; P0 r' u. c( \+ _1 ]# @
复杂点   就不化简了
  a9 H8 k8 o# _. \8 g* Y, }
>> syms t r a b k q A: O( V" g3 D) I; a' {3 F
>>  x=r*cos(t)+a;
( h- u! x4 I) d3 k! D>> y=r*sin(t)+b;6 e; t* s2 l2 L, x' |
>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];+ q5 w$ N. y7 ^; n
>> M=[x;y;A];
) M7 b9 j' J! v& O0 m4 ?>> NM=N*M, G  ~8 P- Q6 a
- i/ W3 ^) [& Z; n2 p  R! |" m' }
NM =
1 N0 e0 a' i8 r7 B6 _$ l - Q, G! U7 `  s
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))) f+ t; l' b- g* R& _6 ]
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
* x$ [& R" g* S$ n$ A' h' ~   c# i4 S7 k( z
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));& J: a; H3 h* Q- ?" q2 V0 D
>> simplify(x1)
( e( I) C- o- U' S % b* a5 O8 G& M5 {+ I9 G& b
ans =
: }/ g0 d1 Q4 i2 U8 \; p) p
7 w- ?8 F  ?. z: u% Z7 HA*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  

% }0 R1 R3 d9 h/ h' Z/ t
2 l0 H" D& s8 u( p9 F
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t), ^# D( w( I5 `; n0 A# U
* x# N* Y7 \- i$ E2 x* {
>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);
9 L0 B3 p' n, p>> simplify(y1)7 k9 j- O, P( w: D4 Y! h
! N- ~% j  \; D" K. y$ U( q$ B
ans =
( x$ {8 _/ H) ]( @# d  z# `
+ k2 C1 v& i7 Ycos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)

, z3 \5 A# d' ^$ f4 w, H& T
  I% a8 U- }  P/ K* A! m0 k
回复

使用道具 举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1)
+ h7 U/ L( M0 m4 c! |8 {' H7 sans =
& k8 S" K) j$ r) `A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
" D/ ~9 I2 f9 M8 e. c+ h+ @>> 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)')
/ M3 R! q, a# LKMM =
9 _0 T( c8 n+ r+ _A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
; ~4 L: c2 ~, V- T. Z- X+ e# F>> simplify(KMM)! b! j9 a/ h( D4 t
ans =% h! E7 O. M) l: a6 t
A*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)- P. k" {1 A9 w' B3 o
' Z# Q$ t. J/ x8 o8 w
要先展开然后合并
# P" U" B5 u6 g  H
回复 支持 反对

使用道具 举报

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

使用道具 举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38
. B. Q7 Q( g. e! A# U/ Hhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
* @! r6 [" L( i  H  d' ^( [/ }
4 ?2 ^; H7 F' H3.带有附加条件的化简

$ E1 J/ ?( ]$ a0 r9 O: K  [3 f试了下还是不行   可能matlab和maple 使用不一样, \7 i: Y& d; U+ r! }' m
>> syms x: t$ g# H* L1 u7 A8 C/ Y% v/ b
>> combine(sin(x)^2+cos(x)^2)    ' i8 Y& N# z' T* B/ L3 S- ?1 f$ w
3 ^7 I* S$ E! T: T: d! d' M, z
ans =4 E5 \4 f& P! V2 J0 z

4 s9 O1 T. N# I! Y/ vcos(x)^2 + sin(x)^2          这个不化简单  w0 R2 G' C) M) C' @" ?

7 J3 [: E# f5 v: ^+ P; J>> simplify(sin(x)^2+cos(x)^2)
- d4 P5 Z0 O9 d) W6 Q$ V - e/ ?2 ^; K1 M2 u/ W
ans =
9 S, s6 q: n5 X. l% ~
- c. m" S& |6 \' E1
( p8 J+ j8 v: Z  i9 ?" ^
7 X" h7 q7 \1 Q/ P: Q4 b" Z6 P  `+ g9 g9 W9 D5 j5 ~
>> syms x
; l" d/ ^, Y* m; ^! ]9 D>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')8 |6 D9 _6 R8 q* _

  ^% g) ~  D% |  LA =
" K0 e% D6 s6 i! U5 J6 h/ R + D; h& o5 }2 G0 }
log(3*x) + cos(x)^2 + sin(x)^2
8 D% g- n) V/ d2 m7 M
8 @  s' [9 V6 h' _4 |1 _; J>> simplify(A)
( C+ ?: i2 o2 ?! q2 J2 J9 ~
% B  f  d. d: e7 z7 u- T- M! ^ans =/ H" Q4 z  J) M& E7 q

" l; l* g) _+ _0 t% l5 y! {4 V1 I% ]log(3*x) + 15 z/ B/ ~& d( b& F# d

) i) u9 M7 S' O8 e6 C0 L! s6 U+ c; X& X/ j) \

) V/ @/ X- B5 R' |, q: ~- g>> simplify(A,x)/ B" t$ r5 g3 w
错误使用 sym/simplify (line 99)
9 d1 r) Z: x: `: ~: T. k* ~, MToo many input arguments.( t2 S- g& S0 O7 z: C. }# p
5 J+ G7 r, N! r* t3 I/ \

点评

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

使用道具 举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38
1 d4 ^0 K! `8 A6 O$ N7 ihttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html3 V2 p; _4 i( c4 h2 G

; ~9 g1 E: B1 u3.带有附加条件的化简
+ a1 \1 n( \/ j4 `+ ^0 {
多谢了   等下去试试
! b. z' b, I9 N( K! `
回复 支持 反对

使用道具 举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33
2 ^2 l8 T5 m, ^- U0 P大侠   能举个例子吗   我这个不懂
, q, S$ d3 @6 f) {
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
1 K# n9 a. ]: d2 {! j6 ^7 r; W
0 d3 X% D; N( u7 T, o3.带有附加条件的化简

/ c* T- I3 w9 k0 @* V3 @1 L>simplify(expr,{x*y=1});
* B- @3 @7 Z0 N# g& x>siderel:=x^2+y^2=1;
4 s. D) k4 w0 L+ t( T" l( J>simplify(expr,{siderel},[y,x]);8 D$ a9 b* X9 D
#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了8 d  e8 L0 X: W; M1 r$ M; Y
4.展开与组合& v8 `9 M* }' ~% t% F" ~
expand &combine8 s; Z$ C+ f# N; e: ~
combine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起
+ J7 L) X& L, W% v/ L6 u2 X
1 s' o5 e6 \4 t4 s. m4 Z+ t6 D' C* f/ Y5 `  Y

, ]$ `4 ?5 J3 z; A6 I& H, x2 K0 d" s8 ]matlab是用的maple的符号运算内核,使用规则一样。
' j2 T' X2 o" w7 T( a
8 a: D7 ^% ?' K- A
回复 支持 反对

使用道具 举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27
- {- z8 y. N5 _8 }simplifty函数要有控制参数才会按照你想像的运算。
8 b0 ]/ H- b4 E+ i* n, j; {+ T7 j" i
大侠   能举个例子吗   我这个不懂
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-13 19:59 , Processed in 0.057727 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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