matlab 符号运算的化简问题
首先来个简单>> syms t r a b q
>> x=r*cos(t)+a;
>> y=r*sin(t)+b;
>> X=-x*cos(q)-y*sin(q);
>> simplify(X)
ans =
- a*cos(q) - b*sin(q) - r*cos(q - t)
复杂点 就不化简了
>> syms t r a b k q A
>>x=r*cos(t)+a;
>> y=r*sin(t)+b;
>>N=[-cos(k*q) -sin(k*q) cos(q);-sin(k*q) cos(k*q) sin(q)];
>> M=;
>> NM=N*M
NM =
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t))
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
>> x1=A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t));
>> simplify(x1)
ans =
A*cos(q) - cos(k*q)*(a + r*cos(t)) - sin(k*q)*(b + r*sin(t)) 化简无效果 按正常应该是
A*cos(q) - a*cos(k*q) - b*sin(k*q)-r*cos(k*q-t)
>> y1=cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q);
>> simplify(y1)
ans =
cos(k*q)*(b + r*sin(t)) - sin(k*q)*(a + r*cos(t)) + A*sin(q)
simplifty函数要有控制参数才会按照你想像的运算。 明月山河 发表于 2016-2-20 18:27 static/image/common/back.gif
simplifty函数要有控制参数才会按照你想像的运算。
大侠 能举个例子吗 我这个不懂 shouce 发表于 2016-2-20 18:33 static/image/common/back.gif
大侠 能举个例子吗 我这个不懂
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
3.带有附加条件的化简
>simplify(expr,{x*y=1});
>siderel:=x^2+y^2=1;
>simplify(expr,{siderel},);
#maple在表达式中作代换y^2=1-x^2,然后再试图对x^2做代换,由于找不到,就停止了
4.展开与组合
expand &combine
combine是与expand相反的命令,它可以按照数学规则将表达式中的某些项组合在一起
matlab是用的maple的符号运算内核,使用规则一样。
明月山河 发表于 2016-2-20 18:38 static/image/common/back.gif
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
3.带有附加条件的化简
多谢了 等下去试试
明月山河 发表于 2016-2-20 18:38 static/image/common/back.gif
http://blog.sina.com.cn/s/blog_636a8b120100jnyt.html
3.带有附加条件的化简
试了下还是不行 可能matlab和maple 使用不一样
>> syms x
>> combine(sin(x)^2+cos(x)^2)
ans =
cos(x)^2 + sin(x)^2 这个不化简单
>> simplify(sin(x)^2+cos(x)^2)
ans =
1
>> syms x
>> A=sym('ln(3*x)+sin(x)^2+cos(x)^2')
A =
log(3*x) + cos(x)^2 + sin(x)^2
>> simplify(A)
ans =
log(3*x) + 1
>> simplify(A,x)
错误使用 sym/simplify (line 99)
Too many input arguments.
matlab大学里学完了,我就在也没有用过了,已经看不懂了 >>expand(x1)
ans =
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
>> 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)')
KMM =
A*cos(q) - b*sin(k*q) - a*cos(k*q) - r*cos(k*q)*cos(t) - r*sin(k*q)*sin(t)
>> simplify(KMM)
ans =
A*cos(q) - a*cos(k*q) - b*sin(k*q) - r*cos(t - k*q)
要先展开然后合并
页:
[1]