机械必威体育网址

找回密码
注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 | 倒序浏览 | 阅读模式
首先来个简单
0 k6 h! ?5 s- E3 d$ E
2 T# h* Y* ^* t
>> syms t r a b q- M% @- W( C; F8 |4 U
>> x=r*cos(t)+a;
6 \9 l" M" e1 g1 O' A, d>> y=r*sin(t)+b;8 |9 D( G+ X# r6 Z: [
>> X=-x*cos(q)-y*sin(q);' U( l7 p' U. N# |* D' D( o- w& V0 W
>> simplify(X)8 C0 t: a, z6 M9 f' v
1 C( n, ]% _% B! A% a. o2 h! Y
ans =
) W* A' {5 v, ]8 _, l
+ z( \& X) n; O. r$ S2 w6 I- a*cos(q) - b*sin(q) - r*cos(q - t), ]1 t+ w2 _* C
" r* ]6 q4 n0 G; x8 @
复杂点 就不化简了) J! K4 Y5 e0 ^0 ]" M
>> syms t r a b k q A
4 H8 x$ L1 _! X, x# w3 B, R>> x=r*cos(t)+a;# G9 Y" R! ]' H# f" b2 M) p# p1 o
>> y=r*sin(t)+b;* e: a% x3 w' s
>> N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];; ]0 k/ j1 @8 Y( d2 W( S ?
>> M=[x;y;A];
8 F5 }: x6 _2 V3 e>> NM=N*M
F' V+ x6 j6 h8 G& p9 k
8 H' Y- o3 V, d, _. \NM =3 P3 c+ K! R4 a: n
8 ^; G8 Z+ |7 K5 ] ~% h. }
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))( u, Y1 ]+ c" f6 j+ ?* p
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)2 t' i% E/ L2 b! |, \
7 S+ v+ b0 m5 j, @( _1 A3 S
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
* P3 d& i' h4 w4 n! p; w>> simplify(x1)8 ^. E; G. T% J- z1 V- ^3 y

6 E. _1 x+ q0 m/ `8 Cans =) |1 D0 I8 ^% F+ v% s' \

( H4 Q6 i' G7 y' E" \1 Y i4 B R" v$ RA*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))化简无效果 按正常应该是

3 C1 [. `5 H9 B" e/ A
. v& M1 t& Z- ?( J' U9 W2 Q9 p
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t): V, o( N8 D* A) g

. P, @# k: }! @>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);
" @6 A/ F6 }8 y0 J( u0 s8 B>> simplify(y1)
' ^1 }" J$ \* \7 R
0 ~5 S3 ^) z9 u& x: gans =
$ D* f2 r+ W( o% E7 K5 T0 n9 M& Z0 a- U( y0 ?% [4 ~
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
e- D0 @# u/ ]8 B/ }' q( s- q8 g

2 P$ T* x" U0 h: Z W3 v
2#
发表于 2016-2-20 18:27:03 | 只看该作者
simplifty函数要有控制参数才会按照你想像的运算。
3#
楼主 | 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27 ; R. q E8 b2 i* F1 a# [0 a# P# g$ R
simplifty函数要有控制参数才会按照你想像的运算。

# B" X l }0 z3 U大侠 能举个例子吗 我这个不懂
4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33 6 C0 P7 u: \, ]9 B5 C6 i1 {
大侠 能举个例子吗 我这个不懂
9 ~" R' T: K) m/ p
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
$ t; H6 \. C, n+ d# y2 l0 m: W2 g' e8 n0 v4 h! X
3.带有附加条件的化简

9 b' G$ y2 z* K' y- v5 |# Q>simplify(expr,{x*y=1});
2 m. m+ T. ?9 \9 O>siderel:=x^2+y^2=1;
3 ^2 R( ~9 R6 |>simplify(expr,{siderel},[y,x]);
# C v/ ?3 q/ Q#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了
+ e2 R0 h! u! B$ }0 x7 B0 f ^! j4.展开与组合
, r6 z9 o4 I9 `5 |- L# Hexpand &combine- E( x# Y7 [ T& l" ^
combine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起P# D; C$ }; T% W$ _) j+ j
" t! W' b5 r+ b, D
7 J* j* G; m& P6 N" t9 ~) U4 Q
4 X( @# i8 _1 q( B; I. J
matlab是用的maple的符号运算内核,使用规则一样。
' c! P5 T4 d& T3 p+ [- P' w! z/ \

( h$ c) A$ C5 J! a3 n" K
5#
楼主 | 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38
3 ^4 x" `9 p2 k5 qhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html " P+ I0 T2 Q: v) {
! m4 c- m4 E( q4 B# e
3.带有附加条件的化简

) x* \0 [3 ^% r8 x5 V多谢了 等下去试试5 }# h' R3 f6 s1 W
6#
楼主 | 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38
" M$ a& B5 A0 N! L- Uhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
9 @1 [) X3 w; p$ B$ v ) [+ [$ X- D# u+ n7 W* l( ]
3.带有附加条件的化简

- S0 m+ ~! I* V m. }3 j9 [. Z. |试了下还是不行 可能matlab和maple 使用不一样* [; s3 m0 R+ ?" G& y' u. A8 B' [
>> syms x) U! _( |% i7 I6 v- a C8 \" e
>>combine(sin(x)^2+cos(x)^2)
3 m& l$ a2 E" U2 T' l9 m) Z
' U7 r9 M& {+ @/ P+ U
ans =$ p' p9 R3 V) u2 S
l- k/ B. |$ D' H
cos(x)^2 + sin(x)^2这个不化简单
! X/ x# B& {/ U% A7 p* I7 S# J! T5 U; @+ c0 M0 h/ O# G
>> simplify(sin(x)^2+cos(x)^2)
4 B6 ]& E3 m9 t2 a4 y# b+ u: f9 d8 P ?' e$ i( _' D# B
ans =( f f; L/ X+ M7 c, c1 F$ p! o

& Y/ P$ d. b1 s" X1$ M; \9 d% h E2 H& x0 \- q
" C9 S( E& R# `. v

: O \; @' K9 B: @6 I; {, L
>> syms x
; s3 U9 i0 c8 j9 T( X>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')1 _1 e- N7 z* B5 Q

7 s- }' W% R/ z n1 V3 p1 uA =! W! O# d K4 I4 m2 G( P
6 N" V4 K m. V& `5 V/ S/ r ]
log(3*x) + cos(x)^2 + sin(x)^2. @8 q/ {' q6 r) F& T7 @8 U
) H% Q5 G; n; G0 A8 m/ M* K
>> simplify(A)
6 J/ I5 @, _4 Y$ n
p1 J5 ?4 X1 k) {& b4 u5 Qans =5 x0 H' ]! t$ u/ Q/ W. [: M
8 t) H+ v0 W% x, i+ Z# W5 f
log(3*x) + 1
1 z( a3 W' }: D3 I- j
) V/ I& i& a7 _5 x8 k! r* [ i
9 ?9 g& x) {3 Z9 o0 K1 |9 a
3 {/ y9 J5 s/ p- B
>> simplify(A,x)
: p7 r. L' n, t6 T& ~0 Y错误使用 sym/simplify (line 99)0 d: I( ]& ^5 P* d9 G
Too many input arguments.
( j+ \( D3 G$ F/ Z4 G
3 }' i2 ?9 @! N6 N: a. p

点评

那就不清楚了。 发表于 2016-2-20 19:38
7#
发表于 2016-2-20 19:28:09 | 只看该作者
matlab大学里学完了,我就在也没有用过了,已经看不懂了
8#
楼主 | 发表于 2016-3-23 23:44:22 | 只看该作者
>> expand(x1)6 J# P5 [+ S1 V4 w: g# h
ans =
4 F, _7 W8 F4 \5 y: e/ ~A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
3 d: N: s& G1 C# T* `) X4 }>> 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)'). }% b% V: o! R2 D
KMM =7 ^! `6 L( r9 C( m
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)" C6 F; \( \- B! m$ ]
>> simplify(KMM)
* s* m8 A& ]) J, W% z! W9 N2 K% Pans =0 ?! K( c# [: U, X! ^3 j# g5 Y+ i
A*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)' U1 }) z1 O4 m& N8 w

+ h% I! T4 T% I5 p要先展开然后合并

- N( g% @; o% u o" e- g2 x7 r) Z
您需要登录后才可以回帖 登录| 注册会员

本版积分规则

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

GMT+8, 2024-6-27 14:46, Processed in 0.055124 second(s), 20 queries , Gzip On.

Powered byDiscuz!X3.4Licensed

? 2001-2017Comsenz Inc.

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