机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先来个简单
0 N- X4 Y$ a7 K
) }  Q, w$ r2 A! B* S/ q
>> syms t r a b q
) L. Y7 G5 F3 [* h/ b9 m; X>> x=r*cos(t)+a;
; q' {; C3 C5 p>> y=r*sin(t)+b;
  N: N0 d; j+ g" d9 j+ I. c>> X=-x*cos(q)-y*sin(q);* R7 {0 D( Q7 s+ ]0 B, N- z* `
>> simplify(X)+ ]3 H% }+ D: K
( ], [! `  w# q" f5 `* T) R! X
ans =! c- |7 N8 c( a

! a" O$ C5 d( m, M, R) T- a*cos(q) - b*sin(q) - r*cos(q - t)   
. t; l& Y, g+ C0 a4 T" Y* B% T
* {" M' b. |( \/ p* C) ?$ r复杂点   就不化简了# q7 h; Y9 ~) ^5 G3 w+ @0 N
>> syms t r a b k q A
( T- V2 I: M$ B5 D; _>>  x=r*cos(t)+a;4 Z- a0 J2 m+ S: V
>> y=r*sin(t)+b;
, y9 _# r7 o& @9 R& ~' m>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];
0 B' R; U' G2 E1 e9 C; ]>> M=[x;y;A];
  n" L- T: L% P1 ^) |4 g" ?. M>> NM=N*M
/ J: G7 l. a; h& _3 g: ], |
, g. `) }. B* L$ b6 t) F& t/ JNM =/ H. z8 R  Z9 U9 [) E

0 c$ s- D8 P8 q A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))+ r9 u$ i2 f+ a$ g+ I: Y
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)% z# a5 ^7 C9 l# \# E
/ a( X( |' E1 ?) N# j
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
% f; `# z) `5 J& o; t>> simplify(x1)9 q6 X6 l" G' P- Y1 v
9 N' C$ F5 \$ X
ans =
2 h$ }5 U$ r  Z- V& V! ?
7 I$ K* ]8 [" b1 EA*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  
; ^" H! x! O+ s, w5 T+ c  F4 q% i- t

7 a$ r& K6 T) U; W
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)7 `) S( k8 c1 H

' p) e% N* _9 Z' ]) s>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);
" ]' \) U& c& z' g$ n>> simplify(y1)
$ ?; k. C! O( d& s9 G1 m6 t/ o/ e, L8 m 4 \' S% h7 J6 w" J
ans =9 g1 |$ ^& G3 n0 ^, T% L6 P

6 k; V+ F6 l. o# A  Vcos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)

  |) N0 n  f' i6 }8 ?) [9 S
* P1 t# [3 u( |& Z
回复

使用道具 举报

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

使用道具 举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27
+ p/ r% x2 Y3 Fsimplifty函数要有控制参数才会按照你想像的运算。

7 v6 U: W: \1 x7 v大侠   能举个例子吗   我这个不懂
回复 支持 反对

使用道具 举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33
3 [& c4 G& Y7 t8 Y: V+ o7 d大侠   能举个例子吗   我这个不懂
, y% A& K3 R: r: l
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
" c" c/ \- F2 S" F1 Q* z) c7 R# S( H# J6 U
3.带有附加条件的化简

, V3 i# h4 S* @# D, h>simplify(expr,{x*y=1});8 W2 X. e9 d% m" E$ i
>siderel:=x^2+y^2=1;
# s" B( L7 K1 B9 G>simplify(expr,{siderel},[y,x]);( F' l; l: C8 q0 h: A+ M8 Q" s+ j( E+ u
#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了; ~2 I2 X" H( I5 Q& |6 B+ n* Y
4.展开与组合
% ~: \: c" O2 @1 Z# Cexpand &combine5 m- z% E7 u5 j( C! ]5 T1 W/ R" R
combine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起1 {+ V0 q& y+ B- Z0 R7 H
) T5 X& I& F. C6 q7 E" |' \' e* p- S
; N# U% J. O) c* R! o

7 H6 L0 i* [/ ^) J7 Smatlab是用的maple的符号运算内核,使用规则一样。

" e  V& M; R" o, J9 M/ w& c5 s
, R- b9 g8 Y2 l/ q( W$ ^' t
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38
  q4 t& [. p: r# _& shttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html4 o9 C2 s0 |$ D6 Z

7 ?5 ~: L% p( P3.带有附加条件的化简
/ H; f2 J9 {9 z, O# R
多谢了   等下去试试$ H7 i+ S& h3 K2 w$ ?) [" }; W5 c
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38 ! `0 l  A: Q4 N7 ]5 I: i" _
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
1 Z$ A$ S- `7 c) w+ ?) \- Z1 t+ t( K
3.带有附加条件的化简

  J3 ]' G. q2 b# A2 d4 \0 @/ ]试了下还是不行   可能matlab和maple 使用不一样
+ d3 X! A9 F7 _# P8 [8 z2 o
>> syms x0 Y# m3 p8 B4 {) N
>> combine(sin(x)^2+cos(x)^2)    " L8 J7 g% D  C: b7 V! I4 d' a

4 m# c6 n- G7 x* b6 k
ans =* P2 g& [2 ?8 U4 G! \, j

8 G* p( K& `6 A( P5 zcos(x)^2 + sin(x)^2          这个不化简单
) Q2 A$ x9 Q* k- N 0 p: u4 Q7 i8 p
>> simplify(sin(x)^2+cos(x)^2)
: o, D& G; H& G/ V& @, h) ? & S/ O) |3 I2 v
ans =
4 G6 D( W# X4 S
) H! A! l/ M! k8 D0 s; W1
& \& q+ ]! \( L4 G1 b
- o$ a: u- @$ ?7 o  W6 b2 ~, _2 r6 g$ {" J2 m, I, I
>> syms x
, H. S/ h+ v7 L& b>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')  \5 a$ `+ O9 W
7 r2 u8 g; v8 g( `! T* H2 A4 f& \5 `
A =* M- h" M2 [9 L* m
0 n" P9 x+ |3 Y) f1 a5 H
log(3*x) + cos(x)^2 + sin(x)^2
' W# s1 ~$ U3 i( R5 j, C4 ^! C / |7 f: e3 z/ v8 Q
>> simplify(A)0 O1 l; Q- ~2 {. L

- N! F# Y- }: A2 K+ H* Wans =
& M2 u) U, w# P; B
, ?, C3 D4 |6 i6 t8 {: alog(3*x) + 1
# ^  |; J1 R8 s/ f% j5 ^8 a) [
, D9 `8 d5 ~8 d9 U0 x# K' L
' j( x  H6 l" r
& B5 X/ }4 a3 C; d) {
>> simplify(A,x)8 E3 e/ f2 A0 X. T: ^8 L
错误使用 sym/simplify (line 99)
2 m. J* n! B0 Q6 u8 c( }Too many input arguments.5 H9 a9 e8 g/ p2 F' W/ x
2 d/ G$ S+ A7 }

点评

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

使用道具 举报

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

使用道具 举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1)
8 ~! }1 F0 j, u2 Q1 ~' D* uans =
1 v* L: x5 |( R4 y5 E0 V' dA*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
# M# Y5 n4 w5 N>> 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)')
0 W! X1 J1 k  P5 aKMM =
- m6 c# J1 L' q$ L- {% C7 I: _  l# @A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)4 Q; q, g* r, _- V) m" W
>> simplify(KMM)7 Z, V0 C; p- L! `; d$ O: R
ans =) s4 n+ K9 h/ q' Z
A*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)# c" a% ?$ {( z2 E% i7 H

% s2 P; p: w7 L2 L要先展开然后合并
$ x9 y2 y7 Y/ z0 |' O) e% B
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 11:09 , Processed in 0.055154 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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