声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: xjzuo

[编程技巧] [示例] 关于带参数的积分问题

  [复制链接]
发表于 2012-6-6 13:48 | 显示全部楼层
http://forum.vibunion.com/forum. ... mp;extra=#pid644417
楼主,我看我的这个二重积分也是带参数的,一直没积分出来。。能指点一下不?拜谢!
回复 支持 反对
分享到:

使用道具 举报

发表于 2012-7-22 12:29 | 显示全部楼层
恩。 讲得真的是非常的水平。
发表于 2012-12-22 18:31 | 显示全部楼层
支持一下,很好的例子
发表于 2013-1-19 16:22 | 显示全部楼层
附件中是要求的函数,谢谢!有哪位大师可以帮下忙,在matlab中如何求解并画出此函数图形!谢谢

新建 Microsoft Word 文档 (3).doc

16 KB, 下载次数: 3

发表于 2013-3-15 16:22 | 显示全部楼层
同求二重積分。。。
发表于 2013-11-26 19:04 | 显示全部楼层

老师,在下面的代码中我定义了一个核函数的积分句柄,想调用您编的fredholm2.m程序,但是出错了,麻烦老师您帮我看一下,我先谢谢啦  
format long;
syms x t s;
f1 =1/t^2*s*exp(-x/t);
f1 = matlabFunction(f1);
ker= @(x,s) integral(@(t)f1(t,x,s), 0, Inf, 'ArrayValued',true);
f=@(x)(1-3*x);
lambda=1;n=3;
[ybar,ybarSym]=Fredholm2(ker,f,lambda,0,1,n)
发表于 2013-11-28 14:04 | 显示全部楼层
zhshp 发表于 2013-11-26 19:04
老师,在下面的代码中我定义了一个核函数的积分句柄,想调用您编的fredholm2.m程序,但是出错了,麻烦老师 ...

您好,Fredholm2函数的一个参数ker,暂时只能是数学表达式的句柄,调用了MATLAB积分函数的表达式暂时不支持。
发表于 2013-11-28 18:56 | 显示全部楼层
rocwoods 发表于 2013-11-28 14:04
您好,Fredholm2函数的一个参数ker,暂时只能是数学表达式的句柄,调用了MATLAB积分函数的表达式暂时不支 ...

谢谢老师指点!那请问老师对于这样一类的fredholm积分方程,核函数是定积分形式且只能数值求解的话,无法调用您的程序函数,那么在老师看来可有matlab自带的积分函数能求的?或者得自己编写程序来求解?如果是只能后者的话,那以老师经验判断,对于初学者来说这样做的难度大吗?因为时间关系需要快速解决这个问题,所以才这么问一下,希望老师为我指点一下这类fredholm积分方程的求解之道。
发表于 2013-12-2 09:11 | 显示全部楼层
zhshp 发表于 2013-11-28 18:56
谢谢老师指点!那请问老师对于这样一类的fredholm积分方程,核函数是定积分形式且只能数值求解的话,无法 ...

根据我的了解,似乎没有自带的函数。自己求解的话,对于初学者有一定难度,不过如果你们专业有其他现成的算法到可以尝试一下。

评分

1

查看全部评分

发表于 2013-12-2 17:45 | 显示全部楼层
rocwoods 发表于 2013-12-2 09:11
根据我的了解,似乎没有自带的函数。自己求解的话,对于初学者有一定难度,不过如果你们专业有其他现成的 ...

恩的,谢谢老师,我再看看
发表于 2013-12-9 23:26 | 显示全部楼层
受教了哈哈。。
发表于 2013-12-12 15:58 | 显示全部楼层
谢谢版主的精彩例子,这对于积分上限不是很大的震荡函数时是很有效的,但是如果积分上限非常大的时候,函数就剧烈震荡,得出的曲线极不光滑,并且随着参数细化而剧烈变化,即算的不准了,这个时候应该考虑用什么积分函数呢?quadgk我试过了,此时也不能用。请斑竹指点一下,谢谢了先

K = arrayfun(@(k) quadgk(@(p) p.*cos(k.*p).*cos(0.5.*p),0,800),linspace(0,1,100));
    plot(linspace(0,1,100),K)
IIAHH`BZ_}QSK75OSV8UAQN.jpg
发表于 2014-9-24 14:50 | 显示全部楼层

关于典型带参积分求最小值

本帖最后由 springcars 于 2014-9-24 14:59 编辑

%%% 作k的一个循环, k作为 inline函数的参数即可.
clear all
k=linspace(0,5);
for i=1:length(k)
    kk=k(i);
    fun=strcat('sin(',num2str(kk),'*x).*x.^2');
    y(i)=quadl(inline(fun),1,5);
end
plot(k,y)
%%%==============================%%%

这么典型的好题,提个问题,如果就这个函数,求最小值,以及所对应的k值,怎么求?
图上反映k取1.1左右,函数最小值-25左右,怎么求具体值



补充内容 (2014-9-25 15:53):
没人理我。、。。。。。哎!!!!!!!!!哭。。。。。。。。。。。
发表于 2014-10-1 14:25 | 显示全部楼层
springcars 发表于 2014-9-24 14:50
%%% 作k的一个循环, k作为 inline函数的参数即可.
clear all
k=linspace(0,5);

help min
发表于 2014-10-7 20:59 | 显示全部楼层
学习了,谢谢
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-1 15:04 , Processed in 0.067130 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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