机械必威体育网址

找回密码
注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 | 倒序浏览 | 阅读模式
首先来个简单$ o7 G2 o9 `# O1 f# f

& w, u3 B6 A. l0 d* r' r0 J: U
>> syms t r a b q
* M" y% u5 a/ V, O>> x=r*cos(t)+a;( [5 l! s5 D/ s
>> y=r*sin(t)+b;& h, w# r5 t8 Z# l7 k' G& `3 p5 x
>> X=-x*cos(q)-y*sin(q);' Y9 Y6 \' r) @% @/ ?6 q
>> simplify(X)+ y( A+ }* P7 ~
& P) b7 Q% ?0 E! Y
ans =
. L- {. w* L. ?( b
! B( N8 E& k; P7 l F! t R8 g! r- a*cos(q) - b*sin(q) - r*cos(q - t)7 s5 ]9 ]3 V- o6 Q0 S

2 \4 d5 n0 s' @2 u8 W6 t复杂点 就不化简了5 X+ U# v. {/ h# Y7 t
>> syms t r a b k q A. r* u; d' X! [6 N
>> x=r*cos(t)+a;! @% x* T: f* ^1 R& y. p& _
>> y=r*sin(t)+b;
+ }* d" b. p7 B- y# ?( L1 d>> N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];
) F- H! ]+ }7 t3 d7 Z>> M=[x;y;A];
& P5 |; [) B( x! i5 z! N( i& L k>> NM=N*M
6 N% m1 p( D+ P! B; W- j& W
4 Q# L0 R- T% Q" B/ j N- B: vNM =
' a) ^& v& q! l: n. B
4 a; f4 e7 i5 E& A8 jA*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))
3 }5 Z( w2 M3 F6 q0 s8 V8 ccos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q). \# I2 v8 M+ C6 m
; e+ F7 V: D0 U2 h( v+ K
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
( F$ p r. j3 F; z" J, y>> simplify(x1)
7 `2 D3 N* G% |9 I) X
+ p% `1 ~* l& L; \ans =
0 w* s+ j5 p1 n7 U# k6 I) @- [4 n
! u* {) q7 F3 D3 z9 W% BA*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))化简无效果 按正常应该是

$ ~ m/ ~; P, r" V8 M4 U( K
3 a* ^. f2 v; Y6 l* A7 V
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)/ {$ f( M' O1 X& _/ R# W- m; Q: s

: X T- s' Z# j E>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);) c4 L# f* @: q
>> simplify(y1)
; x2 F7 l7 b! _" G0 j }
9 B$ @* k4 i% L- Tans =
% D! S+ i: n/ c5 w* \( G% Y0 V9 x
5 q- e" a) @3 W: ~5 v. Dcos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
3 G2 T4 S* S7 E& Y( e8 O
( W2 `' q. L5 `& Z
2#
发表于 2016-2-20 18:27:03 | 只看该作者
simplifty函数要有控制参数才会按照你想像的运算。
3#
楼主 | 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27
8 {/ P; A4 U, z1 F/ a8 qsimplifty函数要有控制参数才会按照你想像的运算。
- g3 l2 H/ p6 }8 r v6 s
大侠 能举个例子吗 我这个不懂
4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33 . {6 x- i6 X: d; D2 w3 E0 P9 }
大侠 能举个例子吗 我这个不懂

: J) _: n- d2 vhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html# e# v9 f4 T* Z

) p4 F2 F5 n9 G8 n3.带有附加条件的化简

4 _( A: _1 z" d8 w- q>simplify(expr,{x*y=1});5 [( P- }% n* t, G/ \( a% T7 Q
>siderel:=x^2+y^2=1;
$ _$ n& x+ j6 U! y7 k' J/ A9 T2 L>simplify(expr,{siderel},[y,x]);! g' A' f4 R! U
#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了+ G* F+ S$ @8 A" D/ }
4.展开与组合* D0 s) L) S: m. t
expand &combine% V3 D( `' @9 p
combine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起
5 h: ?; @- f: W
( O5 \. ~( \2 [9 l( z/ T* |. J0 D# [; _9 Z" T% ?
8 x6 \3 S4 B/ d* m2 b( a% n6 t
matlab是用的maple的符号运算内核,使用规则一样。

+ K$ t; H' K& \; A5 A& C

3 p [; ~( L& z2 y4 d) x
5#
楼主 | 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38 / ^; k2 f3 |5 w1 l+ ^ `9 O
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
l( J! z. r1 [: Q+ h $ F" d) [7 v- C' o+ B
3.带有附加条件的化简

2 I# N! p' T0 G* }+ m多谢了 等下去试试( F3 t) T2 G+ r6 b0 G
6#
楼主 | 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38
" d5 `; z7 T3 J# hhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html - Z a" U0 K$ P& `) V7 c
@! k! ^& x# x: C2 y0 ~% E% U
3.带有附加条件的化简

! s7 O B, N: B试了下还是不行 可能matlab和maple 使用不一样0 s/ _& h& |, f3 p
>> syms x
* V$ A+ s2 [! j4 R>>combine(sin(x)^2+cos(x)^2)
% p `5 O1 r7 ^' e1 l0 T7 v
! m2 F( f2 `) n5 v6 v
ans =
, c: I& C. ]* K6 y) I9 `+ W( `6 e' {8 U: ~
cos(x)^2 + sin(x)^2这个不化简单
. d k/ @* ~+ f. S
: a. D& w0 R: }# K. B>> simplify(sin(x)^2+cos(x)^2)
( X- f! y7 E9 I* o/ R( @1 n
w H/ O' s2 A# |ans =. M! d" O; R& O2 D

2 ?2 ^5 R4 H+ U' ?3 b1
- e# K4 D- U$ W
& w' ?* K% {) _4 z( Y% G
8 ]" m# c* j, U0 [ i
>> syms x0 g: a: Y! S& p1 M U
>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2'); P" X4 x6 q: m0 ^0 k1 X

" Z7 [% q4 R8 I2 [" x0 sA =! f& b1 K2 s% S5 Z6 R/ c. e
% W/ ?+ C* Y" I2 b2 V4 U' a
log(3*x) + cos(x)^2 + sin(x)^2' x: ~; _1 i) l1 u6 J+ k

" y- H8 I# R; D- P0 X! g>> simplify(A)6 |/ J! X1 Z+ g' @/ r0 p) i
+ }, x% K" E, ~; V0 y1 c' w
ans =
- C* h* E1 ^$ Y3 t, b( J) X# z( z. W3 I) R9 H: w
log(3*x) + 1
, V1 J7 m% A1 |. e( L
$ Q# n4 Y6 z4 ?$ z( A( _) }2 a6 a7 l z9 V' [1 m

* p7 c% }* Q; b+ a>> simplify(A,x)
: O) P- q: P# M5 D错误使用 sym/simplify (line 99)
2 K+ i# T5 D' d8 D0 \Too many input arguments.
! t- ~) @0 Y: a" }/ F% ~) z' x2 ?# E# `% A# }+ u/ b

点评

那就不清楚了。 发表于 2016-2-20 19:38
7#
发表于 2016-2-20 19:28:09 | 只看该作者
matlab大学里学完了,我就在也没有用过了,已经看不懂了
8#
楼主 | 发表于 2016-3-23 23:44:22 | 只看该作者
>> expand(x1)
% ]% }0 t2 e4 T3 n: t* k1 Ians =3 S2 D* ?, T$ d# V9 W. y
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
1 B, i* P7 }5 G>> 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)')
) g. K8 z F' V r; T5 Q5 PKMM =3 H) j4 H0 q: @4 w
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)3 O7 Y! y1 `$ U7 I6 ?
>> simplify(KMM)
, _" g; s% m' Cans =
/ z' K0 z! `) ^1 F6 A/ GA*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)4 B$ B0 R5 w/ a! {* E8 e

' ?( `6 }' s5 ^8 a. `要先展开然后合并

9 \3 R& J3 @0 O* B- O
您需要登录后才可以回帖 登录| 注册会员

本版积分规则

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

GMT+8, 2025-4-24 02:06, Processed in 0.065728 second(s), 21 queries , Gzip On.

Powered byDiscuz!X3.4Licensed

? 2001-2017Comsenz Inc.

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