机械必威体育网址

 找回密码
 注册会员

QQ登录

只需一步,快速开始

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

matlab 符号运算的化简问题

[复制链接]
跳转到指定楼层
1#
发表于 2016-2-20 17:49:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先来个简单
9 E* s& t1 V; {
( W/ z2 c4 m$ k" L9 m- `
>> syms t r a b q
: [8 z& S$ }0 C/ W1 g8 _>> x=r*cos(t)+a;" _* R( x' p; [9 ~( O8 \1 g3 C
>> y=r*sin(t)+b;
7 _0 p! I! k  k8 b" a+ a6 c8 n>> X=-x*cos(q)-y*sin(q);
+ q+ i: H& u+ N5 C>> simplify(X)/ v' |: |; m0 k6 w5 z

2 h, F* }+ r0 I9 S0 _ans =9 O% i2 |6 z/ I) |

" N9 {$ M; |* ?. c- a*cos(q) - b*sin(q) - r*cos(q - t)    0 S- H+ }2 F. u5 n9 D
& W2 w7 ?) `& s, g1 C- P1 n& i! Q% W* g
复杂点   就不化简了" ?" f2 P$ Y1 |! w
>> syms t r a b k q A
3 h3 H1 B0 x& e* q) }>>  x=r*cos(t)+a;
% R/ `. R$ _1 |3 P! N4 D( j>> y=r*sin(t)+b;
' a8 ^; W1 t; d( }2 R  K>>  N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];. Z) c- K! U; }  p7 D) }# u) |
>> M=[x;y;A];) f* ]; _% m* n/ D; l7 r9 L1 V
>> NM=N*M
4 S7 P" {6 ]! U7 r9 V3 F0 H $ C) |7 Z0 T2 p
NM =- j  p8 j# r4 w- ^+ o6 D

2 G$ w- P5 n# h3 y# ~/ b! R A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))
: A( ?$ C# u; {7 ] cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
9 {# ?( d( z6 w* c+ x5 C , p+ f6 J. C5 H" ~1 a
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));; p- I( g  F+ M; l- U
>> simplify(x1)
" ]8 t. b8 L( P/ C! o1 U # c: U/ t, R) ^0 _
ans =
6 A, E# ]' i; P  f% r+ q: h) V: I
# g& p1 F4 v' L) y" ~" @A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))       化简无效果    按正常应该是  
4 T4 P: J; q1 S, I6 y, v

5 w. V" w: G9 h6 h% u5 d6 s- ~
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)3 o  u/ i% n6 i; F0 ?
  R- O. L. U- t! S0 M; G. U
>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);  Q: U2 ~! I. B* h2 s
>> simplify(y1)
0 g6 w! s8 C& @ ; ~$ V# ?% L- B" b" A* J. l
ans =
# N# _4 _( C' U
2 Q' S9 J; a: j) P$ C- D* I. Kcos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)

4 z2 B7 c8 G9 @) A! k3 B5 S+ |  R! W# b
回复

使用道具 举报

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

使用道具 举报

3#
 楼主| 发表于 2016-2-20 18:33:16 | 只看该作者
明月山河 发表于 2016-2-20 18:27 / y% g* o( [/ a: x$ `
simplifty函数要有控制参数才会按照你想像的运算。

% S. z1 `# a4 |  c* B! a4 d3 ?' `大侠   能举个例子吗   我这个不懂
回复 支持 反对

使用道具 举报

4#
发表于 2016-2-20 18:38:11 | 只看该作者
shouce 发表于 2016-2-20 18:33
0 U5 `# O  H: w( F5 K0 f大侠   能举个例子吗   我这个不懂
1 X0 h; ]0 a. j, h' g, L. z
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
5 i9 K" a! |! e0 |5 }6 r0 N7 W  ]* |9 h; V# Y$ Y
3.带有附加条件的化简

( P' k8 f0 b- J& L, ]>simplify(expr,{x*y=1});; l  w) ~+ n/ m( C! H/ l- U
>siderel:=x^2+y^2=1;
& l0 o  o0 A" N7 C0 t/ o" e  k>simplify(expr,{siderel},[y,x]);* y% W" {  D6 i8 Q6 U6 h* _8 W* H
#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了
+ F* U' \: Y2 D' o% `* C+ }+ n9 ^4 @4.展开与组合
! J! a& t$ U4 o" ^5 d! k" yexpand &combine
6 X: D6 g1 ^3 I* acombine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起1 O" ?5 V4 A: ~- X& _
/ q+ I  v+ {4 E2 V' V

2 z! D, n+ g; X( s# s' {. Y1 F  `7 y. ]* k$ r+ s' A
matlab是用的maple的符号运算内核,使用规则一样。

5 r6 g7 k% Y& m* J  h! b9 g

+ H+ N  p1 q( k  g
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2016-2-20 18:42:54 | 只看该作者
明月山河 发表于 2016-2-20 18:38
' T- Q( [; }* Jhttp://blog.sina.com.cn/s/blog_636a8b120100jnyt.html9 V8 \- A9 \* M. u. N0 e$ J

; ~$ R9 B& @0 z# f8 M$ o3.带有附加条件的化简
/ Z' S+ n2 X) I, F1 ]7 s7 k
多谢了   等下去试试
0 H. m" J2 t! K3 m
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2016-2-20 19:09:49 | 只看该作者
明月山河 发表于 2016-2-20 18:38 ' e* O* b* Z0 t5 |3 G+ C* ~- h
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html/ W% Y' P( ]2 o
* h& Q( D% c/ `2 @
3.带有附加条件的化简

# [* @! f; F6 L2 T( {试了下还是不行   可能matlab和maple 使用不一样
! A# d" E$ `. U7 ]- W! _8 {
>> syms x; q  e, {8 a) q7 w. p- e  |: g
>> combine(sin(x)^2+cos(x)^2)   
3 y, g" g* X! D. t2 {
- S% x1 d0 R' G; @. n7 }
ans =
+ x! Q1 |& ]* M6 ?9 `5 @# d1 {# ` ) n% K5 b& T% @. t6 K
cos(x)^2 + sin(x)^2          这个不化简单
1 G1 s) ]% {- r# g) [8 t1 R
+ _! [0 G) l, G% M/ O0 K' G>> simplify(sin(x)^2+cos(x)^2)
6 B. Q2 D  R, x! ?( \& X3 V! Q + j1 \! z" z# D2 _" L% n- s% C
ans =
' |5 H( j! O5 W  R2 P: [7 N# [+ G + f! O9 F# j1 q: x" `4 \, ^9 {
1. f: T/ O; ~$ Y( X5 G" J. F7 U

, f& ?& j- A" B% |% C' g
4 V4 e; R( L$ K$ G4 F% t7 S
>> syms x! x8 a! h1 k- L( i0 _% b, W, B
>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')
& ?' z4 j& J0 l5 n2 u% w2 g
# g$ F6 y* F& [4 d. ~) j& x- s& L2 UA =
4 j* \0 ]# l" }
2 G; A8 ?0 N8 g; g; J, Rlog(3*x) + cos(x)^2 + sin(x)^2
0 q! d. e5 B0 L6 c( P7 V+ {
$ q$ [/ U% U" T& w& p, I" S; \# U% A/ A>> simplify(A)' G3 w( U- A/ Q

4 M$ b- c0 z6 L" K- o5 vans =
6 V: Q: _$ r3 }. s* r , {8 |" Q6 j' g/ C1 |; s+ c+ m
log(3*x) + 1
7 p+ _8 A; }1 K5 a
6 e. p" f% g& R. p, Y
1 P3 _: B5 `) c1 C% r7 W
4 u3 I% Z! V9 U, k
>> simplify(A,x)
/ I" Y5 W. |9 y/ r9 U错误使用 sym/simplify (line 99)# Y8 t( _9 M! C
Too many input arguments.& Z, T5 A1 l- h" w0 d# q
4 v0 @& ~3 S; K( ]* q) e

点评

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

使用道具 举报

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

使用道具 举报

8#
 楼主| 发表于 2016-3-23 23:44:22 | 只看该作者
>>  expand(x1)0 M- M' S0 f6 R* N( [$ J
ans =
% N$ y* }. {  U( B6 UA*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)) v$ S8 @' r; V/ 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)')
  }- E- D; M  e6 z% AKMM =
' q8 P% |8 w9 \8 s' [A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
' m8 y) {2 O+ v! K* x>> simplify(KMM)0 s) q- J/ O2 K; j4 g
ans =" x" M* n7 h# v* M( g1 B
A*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q). Y$ b; \( \. A. g9 t" k
" }) K- K5 F  g% l0 ~1 [
要先展开然后合并
" V; u! @. @6 a. `+ i! q, N7 j9 F, f
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-19 07:08 , Processed in 0.068529 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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