matlab中quad.m函数,我把它简化了,function [Q] = quad2(funfcn,a,b)f = fcnchk(funfcn);h = 0.13579*(b-a);x = [a a+h a+2*h (a+b)/2 b-2*h b-h b];y = f(x);[Q(1)] = ...quadstep(f,x(1),x(3),y(1),y(2),y(3));[Q(2)] = ...quadstep(f,x(3),x(5),y(3),y(4),y

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/14 14:27:46

matlab中quad.m函数,我把它简化了,function [Q] = quad2(funfcn,a,b)f = fcnchk(funfcn);h = 0.13579*(b-a);x = [a a+h a+2*h (a+b)/2 b-2*h b-h b];y = f(x);[Q(1)] = ...quadstep(f,x(1),x(3),y(1),y(2),y(3));[Q(2)] = ...quadstep(f,x(3),x(5),y(3),y(4),y
matlab中quad.m函数,我把它简化了,
function [Q] = quad2(funfcn,a,b)
f = fcnchk(funfcn);
h = 0.13579*(b-a);
x = [a a+h a+2*h (a+b)/2 b-2*h b-h b];
y = f(x);
[Q(1)] = ...
quadstep(f,x(1),x(3),y(1),y(2),y(3));
[Q(2)] = ...
quadstep(f,x(3),x(5),y(3),y(4),y(5));
[Q(3)] = ...
quadstep(f,x(5),x(7),y(5),y(6),y(7));
Q = sum(Q);
function [Q] = quadstep(f,a,b,fa,fc,fb)
tol = 1.e-6;
h = b - a;
c = (a + b)/2;
x = [(a + c)/2,(c + b)/2];
y = f(x);
fd = y(1);
fe = y(2);
% Three point Simpson's rule.
Q1 = (h/6)*(fa + 4*fc + fb);
% Five point double Simpson's rule.
Q2 = (h/12)*(fa + 4*fd + 2*fc + 4*fe + fb);
% One step of Romberg extrapolation.
Q = Q2 + (Q2 - Q1)/15;
if abs(Q2 - Q)

matlab中quad.m函数,我把它简化了,function [Q] = quad2(funfcn,a,b)f = fcnchk(funfcn);h = 0.13579*(b-a);x = [a a+h a+2*h (a+b)/2 b-2*h b-h b];y = f(x);[Q(1)] = ...quadstep(f,x(1),x(3),y(1),y(2),y(3));[Q(2)] = ...quadstep(f,x(3),x(5),y(3),y(4),y
三个句点(...)表示续行符(Continuation),即从版面上换行,但语法上认为没换行,类似于C语言中行尾的反斜线(\);
那一段不可以删.quadstep是递归函数,那一段是递归的出口,本质上是用两种不同阶次的积分方法进行积分,如果二者误差比较大就对积分区间进一步细分.你如果删掉递归的出口,很自然就会不停的进行递归调用,直到超出允许的递归次数RecursionLimit.
楼上的回答基本不靠谱,完全是治标不治本的方法.

matlab中quad.m函数,我把它简化了,function [Q] = quad2(funfcn,a,b)f = fcnchk(funfcn);h = 0.13579*(b-a);x = [a a+h a+2*h (a+b)/2 b-2*h b-h b];y = f(x);[Q(1)] = ...quadstep(f,x(1),x(3),y(1),y(2),y(3));[Q(2)] = ...quadstep(f,x(3),x(5),y(3),y(4),y matlab中 如何用quad函数积上下限带变量的函数 matlab中,定义匿名函数时有嵌套看匿名函数的嵌套时,看到这一句,不懂myfhd=@(a)(quad(@(x)(a.*x.^2+1./a^2),0,1)我知道,quad(fun,a,b)是积分函数,前一个@也明白,第二个@怎么回事?如果写成myfhd=@(a)(quad(a.*x.^2+1 matlab 关于inline的问题我不懂matlab,想用它求个积分,但遇到个很久结的问题,我想用matlab求函数y=x2(x的平方)的定积分,积分区间从1到2,下面是我的程序:format long syms x;w=x.^2;f=inline('w');a=quad(f,1, matlab积分函数quad用法syms sita;Ra=60*quad('(((cos(2*pi*cos(sita)*x)-cos(2*pi*x))/sin(sita))^2)*sin(sita)',0,pi); 我写的这个不知怎么回事,一直有错 matlab怎么表示含参变量的积分matlab中,我想表示一个函数g(a)=(函数f(a,x)在[0,a]上对x的积分)终于知道怎么做了,很直接地function F=g(a)F=quad(@(x)myfun(x,a),0,a);我一直不清楚的是含两个自变量的函数 quad函数如何积带变量上下限的函数matlab中的积分问题 一个matlab中rand函数的问题matlab中rand这个函数能产生[0,1]之间的随机数,但matlab的这个随机性我似乎理解错了.我打开matlab,输入rand(3,3),产生一个结果;然后我把matlab整个关掉,再重新打开它,再次 如何在符号函数中表达分段函数?我想写一个符号函数 y(h):当 h>a 时,y(h)=y1(h);当 h我用matlab编写程序,定义了好几个自变量h的函数,如x(h),y(h),然后准备对x(h)*y(h)用quad积分,所以将h定义为符号 matlab 积分上下限 变量请问:上面的积分,最终想得到数值解,如何用matlab写,当然,上面的积分直接能得到闭式解,手算很简单,我只是举个例子,我平时都用quad相关的函数求,但是quad要求积分上下 matlab中怎样对二元函数中的一个变量做数值积分?例如函数y=f(a,b)怎样只对b积分?另外,quad()命令里会将已赋值符号也当做变量,当我需要对a赋值后再对b积分,应该怎样做? Matlab 中为什么不能运用trapz或quad或程序求解广义积分? matlab中求定积分中int与quad的区别是什么?还有quad跟inline有什么关系么.而不是拷贝别人的 关于matlab多项式的表达在计算的时候,使用quad函数,quad('1./(x.^3-2*x-5)',0,2),请问式中‘1.’ ‘x.^3’ 中的1和x后面为什么加点‘.’而在有些时候多项式中x的后面不加点? matlab中求定积分中 int 与quad的区别?例如:被积函数为cos(15x),积分下上限分别为0,3*pi/2用int==>syms x;a1=int('cos(15*x)',x,0,3*pi/2);用quad=>f=inline('cos(15*x)','x');quad(f,0,3*pi/2);上一个答案为1/15,后者答案为:0.0 matlab中如何把m序列转成2维矩阵,或者是把余弦函数转成一维矩阵 matlab的积分问题我用了两种方式来求积分,但我不太了解两种方法的异同.第一种function f=hcurve(t)f=将代码存为“hcurve.m”>> len1=quad(@hcurve,0,3*pi);>> len2=quad(@hcurve,0,3*pi);显示>> len1len1 =17.2220>> len2len2 matlab中 积分函数quad使用问题 function y=density(x)xd=[-0.1:0.001:0.1];h=1.05*std(xd)*(length(xd)^(-1/5));y=1/(length(xd)*h)*sum(1/sqrt(2*pi)*exp(-(((x-xd)/h).^2)/2));end%%%quad(@density,0,1)%%运行上述语句发生错误 为什么?Error u