如何用matlab求exp(x^2)在1到2 的积分?
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 01:18:28
如何用matlab求exp(x^2)在1到2 的积分?
实际上我想求的是函数exp(y*z^2/2-z^3/3)对z在-1到1上的积分,按照你们给的code还是求不出来,可以再帮我编一个吗
实际上我想求的是函数exp(y*z^2/2-z^3/3)对z在-1到1上的积分,按照你们给的code还是求不出来,可以再帮我编一个吗
由于无法求得exp(x^2)的原函数,我们只能用数值算法来求解,可以用复化梯形公式、Romberg公式、Gauss公式等,有好多种.我用Matlab编了一个用Gauss公式求解积分的函数.
function S=GaussIntegrate()
%运用Gauss求积公式计算数值积分
%f为被积函数,Rho为权函数,二者均为符号函数
x=sym('x');
f=exp(x^2);
Rho=1;
%a,b分别为求积区间的左界和右界
a=1;
b=2;
%n表示求积结点的个数,是一正整数
n=8;
%本程序利用线性变换将区间[a,b]变换到[-1.1],
%同时令g=f*Rho为被积函数,然后利用
%古典的Gauss求积公式进行计算,此时直交多项式即为Legendre多项式
if nb
error('错误,区间的左界a一定不大于右界b!');
end;
%计算n次Legendre多项式
syms x;
P=1/(2^n*factorial(n))*diff((x^2-1)^n,n);
w=roots(sym2poly(P));
%计算数值积分
A=zeros(1,n);
S=0;
for k=1:n
A(k)=2/((1-w(k)^2)*(subs(diff(P),w(k))^2));
t=a+(b-a)/2*(w(k)+1);
g=(b-a)/2*subs(f*Rho,t);
S=S+A(k)*g;
end;
--------------------------------
我取了8个结点,计算精度就已经达到了小数点后8位,效率还是很高的.
注意:由于Matlab调用Maple的符号计算工具箱,第一次运行时会加载一小会,耐心等待.
以后再运行速度就很快了.
再问: 实际上我想求的是函数exp(y*z^2/2-z^3/3)对z在-1到1上的积分,能用你给的code再帮我编一次吗,谢了
再答: exp(y*z^2/2-z^3/3),y等于多少啊?这个你直接把f和积分区间[a,b]修改一下就行了。
function S=GaussIntegrate()
%运用Gauss求积公式计算数值积分
%f为被积函数,Rho为权函数,二者均为符号函数
x=sym('x');
f=exp(x^2);
Rho=1;
%a,b分别为求积区间的左界和右界
a=1;
b=2;
%n表示求积结点的个数,是一正整数
n=8;
%本程序利用线性变换将区间[a,b]变换到[-1.1],
%同时令g=f*Rho为被积函数,然后利用
%古典的Gauss求积公式进行计算,此时直交多项式即为Legendre多项式
if nb
error('错误,区间的左界a一定不大于右界b!');
end;
%计算n次Legendre多项式
syms x;
P=1/(2^n*factorial(n))*diff((x^2-1)^n,n);
w=roots(sym2poly(P));
%计算数值积分
A=zeros(1,n);
S=0;
for k=1:n
A(k)=2/((1-w(k)^2)*(subs(diff(P),w(k))^2));
t=a+(b-a)/2*(w(k)+1);
g=(b-a)/2*subs(f*Rho,t);
S=S+A(k)*g;
end;
--------------------------------
我取了8个结点,计算精度就已经达到了小数点后8位,效率还是很高的.
注意:由于Matlab调用Maple的符号计算工具箱,第一次运行时会加载一小会,耐心等待.
以后再运行速度就很快了.
再问: 实际上我想求的是函数exp(y*z^2/2-z^3/3)对z在-1到1上的积分,能用你给的code再帮我编一次吗,谢了
再答: exp(y*z^2/2-z^3/3),y等于多少啊?这个你直接把f和积分区间[a,b]修改一下就行了。
在matlab中如何用for循环来求x^n*exp(x-1)的积分?
如何用MATLAB求[x^2.*sqrt(2.*x^2+3)]在1到5上的定积分?
如何用matlab计算x^3/(exp(x)-1)的积分
用MATLAB对函数exp(-1/x)在区间(2,x)上求积分.怎么求?
用MATLAB计算0到1/2的exp(811x^2)定积分 求具体代码
怎么用matlab编程求(1/sqrt(2*pi))*exp(-t^2/2)在-inf到x上的积分呐?
如何用Matlab计算exp(2x)sin(3x)=2?求x
如何用matlab画出函数y=x*exp(-2X)的图像?
∫x^(1/2)exp(-x)dx在0到正无穷的积分,
如何用matlab做sqrt(1-x^2)*x*log(2+x)的数值积分
如何用matlab画出y=exp(-0.2*x)*sin(0.5*x)在区间[0,2*pi]上的曲线绕x轴旋转形成的曲面
exp(-ix^2)到正负无穷的积分怎么求?