加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

给符号函数的变量赋值并求函数值

(2013-04-04 21:31:49)
分类: 菜B学MATLAB
开始学matlab时觉得这玩意忒麻烦了,譬如说想写一个函数 y(x)=sin(x)+2*x;就必须要用到这么一个概念:符号函数。
符号函数使用方法如下:
f=sym('sin(x)+2*x');  //函数名 = sym('函数表达式');
但,又遇到一个问题。如何对x进行赋值,并计算函数值?甚至更简单的,如何让matlab知道函数自变量是‘x’。
搜索资料,总结几种方法如下:

1.最简单的方法是使用内联函数 “inline”
FunctionName=inline(‘任何有效的matlab表达式’, ‘p1’,’p2’ ,….) ,其中‘p1’,’p2’ ,…是出现在表达式中的所有变量的名字。
代码如下:
syms x;
y=sin(x)+2*x;
y1=inline(y,x);
则y1(x0) 即可求得y在x=x0 处的值。

2.使用匿名函数
这是函数句柄的一种高级用法, 这样产生的函数句柄变量不指向特定的函数, 而是一个函数表达式. 其语法:
变量名=@(输入参数列表)运算表达式。
代码如下:
 y1=eval_r(['@(x)' vectorize(y)]); //建立y的匿名函数
则y1(x0)即为x=x0处的值。

3.使用subs函数
例:
a=subs(y,x,1); //把y中的x换为1则可得到f(1)的值。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有