声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1095|回复: 1

[编程技巧] [求助]关于带参数积分以及积分上下限也带参数的问题

[复制链接]
发表于 2009-3-27 09:17 | 显示全部楼层 |阅读模式

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

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

x
看了论坛上几篇关于带参数积分的帖子后,偶试着去做下面的积分,发现做不出,总是出现错误:

程序如下:
clear;clc; syms x i Q j; l=zeros(1,201); D(1:81)=0;
for Q=linspace(0,80,81)
    for i=-10000:100:10000
        for j=1:81
            q=Q(j);
            for k=1:201
                l=i(k);
               fun=inline(subs('(abs(x-i.*Q)).^2.*((0.0734/2).*exp((-0.0734).*abs(x)))', {Q,i},{q,l}));
               D(Q+1)=D(Q+1)+sum(quadl(fun,(i-1/2).^Q,(i+1/2).^Q));
            end
        end
    end
end
Q=linspace(0,80,81);
plot(Q,D)

错误信息:
??? Error using ==> sym.sym>char2sym at 414
Not a valid symbolic expression.
Error in ==> sym.sym at 95
   S = char2sym(x);
Error in ==> subs at 60
r = subs(sym(f),varargin{:});
Error in ==> DLaplace at 21
        fun=inline(subs('(abs(x-i.*Q)).^2.*((0.0734/2).*exp((-0.0734).*abs(x)))',...

[ 本帖最后由 maigicku 于 2009-3-27 09:19 编辑 ]
未命名.jpg

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

 楼主| 发表于 2009-3-31 09:02 | 显示全部楼层
哦,偶这个自己已经解决了。。就是太拘泥于积分函数了。。其实不用积分函数也可以做出来。。
先建立一个函数d(q):
function f = d(q)
delta_x = 1;
max_i =100;
min_i = -100;
f = 0;
for i = min_i:1:max_i
    temp = 0;
    for x = (min_i-0.5).*q:delta_x:(max_i+0.5).*q
        temp = temp + (x-i.*q)*(x-i.*q)*(0.0734/2).*exp((-0.0734).*abs(x));
    end
    f = f + temp;
end

然后运行:
clear;clc
q=linspace(0,80,81);
f=zeros(size(q));
for j=1:length(q)
    f(j)=d(q(j));
end
plot(q,f)

就可以了。。。

[ 本帖最后由 maigicku 于 2009-3-31 09:03 编辑 ]

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-19 02:24 , Processed in 0.061627 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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