声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1638|回复: 4

[综合讨论] 讨论一下两种quad积分方式

[复制链接]
发表于 2008-7-24 15:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本人最近刚学MATLAB,在学习ik760218转帖的MATLAB 小技巧的时候发现了一下问题,还请大虾们指点一二,原帖地址:http://forum.vibunion.com/thread-2588-1-3.html

方法一:

  1. m=5;
  2. a = m;
  3. b = m + 1;
  4. K = m.^2;
  5. y = subs('sin(K*x)/x', 'K', sym(K, 'd') )
  6. quad( inline(vectorize(char(y))), a, b)

  7. y =

  8. sin(25.*x)/x


  9. ans =
  10.     0.0016
复制代码


方法二:

  1. m=5;
  2. a = m;
  3. b = m + 1;
  4. K = m.^2;
  5. sym x;
  6. l=sin(K*x)/x;
  7. y = subs('l', 'K', sym(K, 'd') );
  8. quad( inline(vectorize(char(y))), a, b)
  9. ans =
  10.     5.5000
复制代码


两个的计算结果为什么相差这么大呢?百思不得其解,还请各位大大指点!

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

发表于 2008-7-24 17:41 | 显示全部楼层

回复 楼主 的帖子

第2种是错的
y = subs('l', 'K', sym(K, 'd') );
无法自动识别l=sin(K*x)/x;
因为相当于重新定义了一个字符型l,把原来的覆盖了
 楼主| 发表于 2008-7-24 19:12 | 显示全部楼层
谢谢sigma665!
要是我被积的函数很复杂,比如不止3个参数( a,b,k )是在运行时确定的,可能有10+个,难道对于每一个不确定的参数都要用y = subs('sin(K*x)/x', 'K', sym(K, 'd') )运行一下,再求积分吗?

编了个有很多参数的程序,运行时报Not enough inputs to inline function.


  1. a=1;
  2. b=2;
  3. c=3;
  4. x=a+b;
  5. y=a+c;
  6. z=a*b;
  7. m = subs('x*y*z*k', 'x', sym(x, 'd'));
  8. m = subs('x*y*z*k', 'y', sym(y, 'd'));
  9. m = subs('x*y*z*k', 'z', sym(z, 'd'));
  10. quad( inline(vectorize(char(m))), a, b)
复制代码

??? Error using ==> inline.subsref at 14
Not enough inputs to inline function.
Error in ==> quad at 71
y = f(x, varargin{:});

[ 本帖最后由 vansen 于 2008-7-24 19:39 编辑 ]
发表于 2008-7-24 20:00 | 显示全部楼层
  1. 举个例子:
  2. 计算a*sin(x)+b*sqrt(log(x))+c^2*d这个表达式在x=10,20的积分。
  3. %经过大量计算得到a,b,c,d的值后
  4. 譬如a=1,b=2,c=3,d=4

  5. 定义f=@(x) a.*sin(x)+b.*sqrt(log(x))+c.^2.*d
  6. quad(f,10,20)
  7. 即可
  8. 注:@是匿名函数声明符号,7.0以上版本支持
复制代码

评分

1

查看全部评分

 楼主| 发表于 2008-7-25 09:36 | 显示全部楼层
问题解决了,谢谢各位热心的前辈们!
刚来这里不久,发现这里的学术氛围非常好,给新手们总结的索引贴真的非常好,而且对于每一个问题总有很多热心的人来帮忙解决,很有一种家的温馨的感觉。希望赶快成长,希望能有为大家服务的时候:@)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-23 07:34 , Processed in 0.056299 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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