vansen 发表于 2008-8-3 09:25

利用匿名函数组合解方程

发个题目,解一下附件里的方程(公式编辑器编的不能直接贴上来,只能截图了)
想了半天了,最后还是觉得用两个匿名函数的组合解方程比较简单。g=@(c) (quad(@(x) (x.^2+c*x+1), 0, 1));

解释一下:
1. 将x.^2+c*x+1写成一个匿名函数,但不必把它指定给变量:@(x) (x.^2+c*x+1)
2. 把函数句柄作为参数传递给积分函数quad : quad(@(x) (x.^2+c*x+1), 0, 1)
3. 把c作为输入参数,对整个方程构造匿名函数:g=@(c) (quad(@(x) (x.^2+c*x+1), 0, 1));


下面对c赋值,验证一下结果,取c=2
>>g=@(c) (quad(@(x) (x.^2+c*x+1), 0, 1));
>> g(2)
ans =
2.3333各位有其他的解法请贴上来交流!共同探讨,共同提高!

[ 本帖最后由 vansen 于 2008-8-3 09:27 编辑 ]

rossbin 发表于 2014-11-24 22:37

或许这个代码更简单:g=@(c) quad((@(x) x.^2+c.*x+1),0,1)
页: [1]
查看完整版本: 利用匿名函数组合解方程