matlab中simple函数的用法

 我来答
四舍五不入6
高粉答主

2019-11-17 · 还没有填写任何签名哦
四舍五不入6
采纳数:27 获赞数:71405

向TA提问 私信TA
展开全部

matlab中simple函数用于获取符号变量的最简形式,调用形式为:[R,HOW] = SIMPLE(S)

其中S输入参数,符号变量,R返回值,输入变量的最简形式,HOW 化简的方式,一个字符串

示例如下:

>> syms x

>> y = cos(x)^2+sin(x)^2;

>> R = simple(y)

R = 

1

>> [r,how] = simple(y)

r = 

 how =

simplify

>> [r,how] = simple(cos(x)+i*sin(x))  

r = 

exp(x*i)

how =

rewrite(exp)

扩展资料:

常用函数

realmax:系统所能表示的最大正实数,默认1.7977×10^308

realmin:系统所能表示的最小负实数,默认2.2251e×10^(-308)   

nargout:函数的输出引数个数

rat(x):将实数x化为多项分数展开

rats(x):将实数x化为分数表示

sign(x):符号函数(Signum function)。

sin(x):正弦函数

atan2(x,y):四象限的反正切函数

median(x): 向量x的元素的中位数

sort(x): 对向量x的元素进行排序(Sorting)

norm(x): 向量x的欧氏(Euclidean)长度

semilogx: x轴为对数刻度,y轴为线性刻度

semilogy: x轴为线性刻度,y轴为对数刻度

参考资料来源:百度百科-MATLAB

learneroner
高粉答主

推荐于2017-10-08 · 关注我不会让你失望
知道大有可为答主
回答量:1.1万
采纳率:91%
帮助的人:7777万
展开全部

matlab中simple函数用于获取符号变量的最简形式,调用形式为:[R,HOW] = SIMPLE(S),其中:

  • S 输入参数,符号变量

  • R 返回值,输入变量的最简形式

  • HOW  化简的方式,一个字符串

示例如下:

>> syms x
>> y = cos(x)^2+sin(x)^2;
>> R = simple(y)
 
R = 
1
 
>> [r,how] = simple(y)
 
r = 


how =
simplify

>> [r,how] = simple(cos(x)+i*sin(x))
 
r = 
exp(x*i)
 
how =
rewrite(exp)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
碧海生奇涛
推荐于2017-10-07 · TA获得超过450个赞
知道小有建树答主
回答量:178
采纳率:0%
帮助的人:151万
展开全部
simple('s'),s是字符串,如果是对某个字符函数如y=(2+x)/x;化简,直接用simple(y)就得到2/x+1;
有时表达式比较复杂,一次化简结果不太理想,就再次化简,可以用simple(simple(y))
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天蝎神经侠侣
高粉答主

2015-07-02 · 关注我不会让你失望
知道大有可为答主
回答量:7533
采纳率:67%
帮助的人:913万
展开全部
VAL: Execute string with MATLAB expression

eval(s)即 把字符串s的内容当作语句来执行

比如:eval_r('a=3*5') 和直接在command 窗口中输入 a=3*5 等效
(注:本文的eval()都被页面处于安全考虑而自动改成了 eval_r())

eval 一个经常用到的地方就是 将一些[符号表达式] 转换为 [数值]结果,比如用solve解一个方程得到 :
a=solve('x^2+4*x-9=0')
a =
- 13^(1/2) - 2
13^(1/2) - 2
为了得到直观的小数表示,我们输入 eval_r(a)就得到:
ans =
-5.6056
1.6056

ps:可以试试 eval('a')和eval_r(a) ,结果是不一样的,为什么?

还有一个经常用的地方就是
在循环中使用,可以对多个名字有规则的变量或文件进行操作,
比如:
for i=1:5
eval_r(['y',num2str(i),'=',num2str(i^2)])
end

以上语句等价于执行以下5句:

ynum2str(1)=num2str(1^2);
ynum2str(2)=num2str(2^2);
ynum2str(3)=num2str(3^2);
ynum2str(4)=num2str(4^2);
ynum2str(5)=num2str(5^2);

写在最后:eval在其他语言里面也有,比如HTML客户端脚本语言JavaScript,某些语言中eval容易造成安全隐患,(matlab不存在这问题)所以本文写的 eval(),保存博客以后总会变成 eval_r(),估计就是是页面js代码出于安全考虑给加了一个无用的后缀"_r"来使得eval功能失效。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
phineassky
2013-04-30
知道答主
回答量:9
采纳率:0%
帮助的人:5.7万
展开全部

  我运行没问题呀,可能是精简版功能不齐全,要不你试试加上syms x

  • >> y=sym('2*sin(x)*cos(x)');
    >> y
    y =
    2*cos(x)*sin(x)
    >> simple(y)
    simplify:
    sin(2*x)
    radsimp:
    2*cos(x)*sin(x)
    simplify(100):
    sin(2*x)
    combine(sincos):
    sin(2*x)
    combine(sinhcosh):
    2*cos(x)*sin(x)
    combine(ln):
    2*cos(x)*sin(x)
    factor:
    2*cos(x)*sin(x)
    expand:
    2*cos(x)*sin(x)
    combine:
    2*cos(x)*sin(x)
    rewrite(exp):
    2*((1/exp(x*i))/2 + exp(x*i)/2)*(((1/exp(x*i))*i)/2 - (exp(x*i)*i)/2)
    rewrite(sincos):
    2*cos(x)*sin(x)
    rewrite(sinhcosh):
    2*cosh(-x*i)*sinh(-x*i)*i
    rewrite(tan):
    -(4*tan(x/2)*(tan(x/2)^2 - 1))/(tan(x/2)^2 + 1)^2
    mwcos2sin:
    -2*sin(x)*(2*sin(x/2)^2 - 1)
    collect(x):
    2*cos(x)*sin(x)
    ans =
    sin(2*x)

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式