matlab数值积分

如何用MATLAB求积分的数值解对于你问题,可以这样解决 。即x=double(solve(f2))根据你提供图片算式,发现你编写的算式代码有点问题 。正确方式为B=10^6;Tf=2*10^(-3);theta=10^(-3);beta=theta*Tf*B/log(2); syms y xeq0=(1/(x^(1/(beta+1))))*(1/(y^(beta/(beta+1))))*exp(-y/10);f=int(eq0,y,x,+inf)-10;x=double(solve(f))运行结果
matlab中怎样对二元函数中的一个变量做数值积分?不行的,数值积分必须给定其它参数 。

matlab中数值积分和符号积分的区别MATLAB中主要用int进行符号积分,用trapz,dblquad,quad,quad8等进行数值积分 。
int(s) 符号表达式s的不定积分
int(s,x) 符号表达式s关于变量x的不定积分
int(s,a,b) 符号表达式s的定积分,a,b分别为积分的上、下限
int(s,x,a,b) 符号表达式s关于变量x的定积分,a,b分别为积分的上、下限
trapz(x,y) 梯形积分法,x时表示积分区间的离散化向量,y是与x同维数的向量,表示被积函数,z返回积分值 。
quad8(‘fun’,a,b,tol) 变步长数值积分,fun表示被积函数的M函数名,a,b分别为积分上、下限,tol为精度,缺省至为1e-3.
fblquad(‘fun’,a,b,c,d)矩形区域二重数值积分,fun表示被积函数的M函数名,a,b分别为x的上、下限,c,d分别为y的上、下限.

怎样用Matlab求符号表达式的数值积分?f=@(x)sin(x)+cos(x);%定义被积函数
Intf=quad(f,0,1)%对f进行积分,下限为0,上限为1

如何用matlab 数值法算这个积分程序: fun=sin(0.5*pi*x./y);%% a=int(int(fun,y,sqrt(x),x),x,1,2); b=simple(a) %化简 I=vpa(b,4) %得到4位近似解,也可以任意N位解 结果: I = 0.2719

matlab 符号积分和数值积分MATLAB中主要用int进行符号积分,用trapz,dblquad,quad,quad8等进行数值积分 。
int(s) 符号表达式s的不定积分
int(s,x) 符号表达式s关于变量x的不定积分
int(s,a,b) 符号表达式s的定积分,a,b分别为积分的上、下限
int(s,x,a,b) 符号表达式s关于变量x的定积分,a,b分别为积分的上、下限
trapz(x,y) 梯形积分法,x时表示积分区间的离散化向量,y是与x同维数的向量,表示被积函数,z返回积分值 。
quad8(‘fun’,a,b,tol) 变步长数值积分,fun表示被积函数的M函数名,a,b分别为积分上、下限,tol为精度,缺省至为1e-3.
fblquad(‘fun’,a,b,c,d)矩形区域二重数值积分,fun表示被积函数的M函数名,a,b分别为x的上、下限,c,d分别为y的上、下限.

例1 计算二重积分
先编写四个M函数文件,
%二重积分算法文件dblquad2.m
function S=dblquad2(f_name,a,b,c_lo,d_hi,m,n)
%其中f_name为被积函数字符串,'c_lo'和'd_hi'是y的下限和上限函数 ,都是x的标量函数;a,b分别为x的下限和上限;m,n分别为x和y方向上的等分数(缺省值为100).
if nargin<7, n=100; end
if nargin<6, m=100; end
if m<2|n<2
error('Numner of intervals invalid');
end
mpt=m+1; hx=(b-a)/m; x=a+(0:m)*hx;
for i=1:mpt
ylo=feval_r(c_lo,x(i)); yhi=feval_r(d_hi,x(i));
hy=(yhi-ylo)/n;
for k=1:n+1 y(i,k)=ylo+(k-1)*hy; f(i,k)=feval_r(f_name,x(i),y(i,k)); end
G(i)=trapz(y(i,:),f(i,:));
end
S=trapz(x,G);
%被积函数eg3_fun.m
function z=eg3_fun(x,y)
z=1+x+y;
%积分下限函数eg3_low.m
function y=eg3_low(x)
y=-sqrt(1-x^2);
%积分上限函数eg3_up.m
function y=eg3_up(x)
y=sqrt(1-x^2);
保存后,在命令窗口用MATLAB代码:
>>clear;
>>dblquad2('eg3_fun',-1,1,'eg3_low','eg3_up')
结果为
ans =3.1383

为了得到更精确的数值解,需将区间更细化,比如x和y方向等分为1000分,MATLAB代码:
>>clear;dblquad2('eg3_fun',-1,1,'eg3_low','eg3_up',1000,1000)
结果为ans =3.1415 。
此题也可用int符号计算求解,MATLAB代码为:
>>clear; syms x y;
>>iy=int(1+x+y,y,-sqrt(1-x^2),sqrt(1-x^2));
>>int(iy,x,-1,1)
结果为
ans =pi

例2 quad8计算定积分
%M函数fun1.m
function y=fun1(x)
y=x.^4;
保存后,在命令窗口用MATLAB代码:
>>clear;
>>quad8('fun1',-2,2)
>>vpa(quad8('fun1',-2,2),10)%以10位有效数字显示结果
结果为
ans =12.8000
ans =12.80000000
对于变步长数值积分,常用的有quad,quad8两种命令,quad使用自适应步长Simpson法, quad8使用自适应步长8阶Newton-Cotes法,我们建议用quad8,它不但精度较高,且对假收敛和假奇异积分具有一定的适应性,而quad较差..

龙贝格积分法MATLAB程序代码
function [I,step]=Roberg(f,a,b,eps)
if(nargin==3)
eps=1.0e-4;
end;
M=1;
tol=10;
k=0;
T=zeros(1,1);
h=b-a;
T(1,1)=(h/2)*(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b));
while tol>eps
k=k+1;
h=h/2;
Q=0;
for i=1:M
x=a+h*(2*i-1);
Q=Q+subs(sym(f),findsym(sym(f)),x);
end
T(k+1,1)=T(k,1)/2+h*Q;
M=2*M;
for j=1:k
T(k+1,j+1)=T(k+1,j)+(T(k+1,j)-T(k,j))/(4^j-1);
end
tol=abs(T(k+1,j+1)-T(k,j));
end
I=T(k+1,k+1);
step=k;

自适应法求积分MATLAB程序代码
function I=SmartSimpson(f,a,b,eps)
if(nargin==3)
eps=1.0e-4;
end;
e=5*eps;
I=SubSmartSimpson(f,a,b,e);
function q=SubSmartSimpson(f,a,b,eps)
QA=IntSimpson(f,a,b,1,eps);
QLeft=IntSimpson(f,a,(a+b)/2,1,eps);
QRight=IntSimpson(f,(a+b)/2,b,1,eps);
if(abs(QLeft+QRight-QA)<=eps)
q=QA;
else
q=SubSmartSimpson(f,a,(a+b)/2,eps)+SubSmartSimpson(f,(a+b)/2,b,eps);
end

线性振动响应分析的wilson θ积分法MATLAB代码
% see also http://www.matlabsky.com
% contact me matlabsky@gmail.com
% 2010-02-26 16:52:12
%
clc
clear
% 结构运动方程参数
M=1500000;
K=3700000;
C=470000;
% 威尔逊参数θ
theta=1.4;
dt=0.02; % 时间间隔
tau=dt*theta;
% 数据处理
eqd=load('acc_ElCentro_0.34g_0.02s.txt'); % 加速激励,第一列是时间,第二列是加速度
n=size(eqd,1);
t=0:dt:(n-1)*dt;
xg=eqd(:,2)*9.8; % 对加速度进行处理
dxg=diff(xg)*theta; %
F=-M*xg;
% D2x 加速度; Dx 速度; x 位移
D2x=zeros(n,1);
Dx=zeros(n,1);
x=zeros(n,1);
for i=1:n-1
K_ba=K+3/tau*C+6/tau^2*M;
dF_ba=-M*dxg(i)+(M*6/tau+3*C)*Dx(i)+(3*M+tau/2*C)*D2x(i);
dx=dF_ba/K_ba;
dD2x=(dx*6/tau^2-Dx(i)*6/tau-3*D2x(i))/theta;
D2x(i+1)=D2x(i)+dD2x;
Dx(i+1)=Dx(i)+D2x(i)*dt+dD2x/2*dt;
x(i+1)=x(i)+Dx(i)*dt+D2x(i)*dt^2/2+dD2x/6*dt^2;
end
subplot(311)
plot(t,x) % 位移
subplot(312)
plot(t,Dx) % 速度
subplot(313)
plot(t,D2x)% 加速度

常微分方程求解方法之四阶龙格-库塔算法matlab程序代码
function [x,y] = MyRunge_Kutta(fun,x0,xt,y0,PointNum,varargin)
%Runge-Kutta 方法解微分方程形为 y’(t) = f(x,y(x))
%此程序可解高阶的微分方程 。只要将其形式写为上述微分方程的向量形式
% x范围为[x0,xt],初值为 y0, PointNum为离散点数,varargin为可选输入项可传适当参数给函数f(x,y)
if nargin < 4 | PointNum <= 0
PointNum= 100;
end
if nargin < 3
y0 = 0;
end
y(1,:) = y0(:)’; %初值存为行向量形式
h = (xt-x0)/(PointNum-1); %计算步长
x = x0+[0:PointNum]‘*h; %得x向量值
for k = 1:PointNum%迭代计算
f1 = h*feval_r(fun,x(k),y(k,:),varargin {:});
f1 = f1(:)’; %得公式中k1
f2 = h*feval_r(fun,x(k) + h/2,y(k,:) + f1/2,varargin{:});
f2 = f2(:)’; %得公式中k2
f3 = h*feval_r(fun,x(k) + h/2,y(k,:) + f2/2,varargin{:});
f3 = f3(:)’; %得公式中k3
f4 = h*feval_r(fun,x(k) + h,y(k,:) + f3,varargin{:});
f4 = f4(:)’; %得公式中k4
y(k + 1,:) = y(k,:) + (f1 + 2*(f2 + f3) + f4)/6; %

Matlab中几个数值积分函数的比较和优缺点积分精度由低到高分别为:1矩形数值法积分cumsum,2梯形法数值积分trapz,3辛普森数值积分quad,4科滋数值积分quadl,1
2求离散积分值,3
4求解析式 。

matlab 求解积分函数∫(0,1)e²x dx求解函数 的数值积分和符号积分并比较结果符号
syms
x;
int(exp(2*x),x,0,1)
ans
=
exp(2)/2
-
1/2
数值
f=@(x)exp(2*x);quad(f,0,1)
ans
=
3.1945
符号积分精确度高但速度慢,有时候有些函数没有解析解,就得用数值积分,并且数值积分速度快,但精确度不高

MATLAB求定积分时,int()和integral()的区别在哪?

matlab数值积分

文章插图

MATLAB求定积分时,int()和integral()的区别在:1、在精度上是一样的;2、在书写上有区别,一个代码比较多,另一个代码比较简洁;例如:求被积函数为1./(x.^3-2*x-5)的定积分1、用int()求:syms xf = 1./(x.^3-2*x-5);Q = int(f,0,2);Q =vpa(Q,5)2、用integral()求: f = @(x) 1./(x.^3-2*x-5)Q = integral(@(x)f(x),0,2)扩展资料:1、int是符号积分 。2、integral是数值积分,在R2012版本以上才支持 。3、int()适用于低版本,但高版本也可以用 。4、integral()适用于高版本
matlab中M文件中积分怎么表示MATLAB中主要用int进行符号积分,用trapz,dblquad,quad,quad8等进行数值积分 。
int(s) 符号表达式s的不定积分
int(s,x) 符号表达式s关于变量x的不定积分
int(s,a,b) 符号表达式s的定积分,a,b分别为积分的上、下限
int(s,x,a,b) 符号表达式s关于变量x的定积分,a,b分别为积分的上、下限
trapz(x,y) 梯形积分法,x时表示积分区间的离散化向量,y是与x同维数的向量,表示被积函数,z返回积分值 。

MATLAB中怎么定义积分函数int(s,v,a,b):以v为自变量,对被积函数s在区间[a,b]上的定积分 。
a和b可以是两个具体的数,也可以是一个符号表达式,还可以是无穷(inf) 。
例:
syms x%定义符号变量
f=int(x^3,x,1,2)% 求x^3在区间[1,2]上的定积分

如何用matlab对这个函数进行积分 。
matlab数值积分

文章插图

1、双击matlab软件图标,打开matlab软件,如下图所示 。2、使用syms命令,创建七个符号变量a、b、c、d、x、y、z,如下图所示 。3、这里进行一个较为复杂的积分举例,使用符号变量a、b、x、y、z,创建多元函数A,其中A=32*a+b^5+sin(7*z)+x*y,如下图所示 。4、使用函数int(A,'a'),求解多元函数A关于变量a的积分,得出答案,如下图所示 。5、使用函数int(A,'b'),求解多元函数A关于变量b的积分,得出答案,如下图所示 。6、使用函数int(A,'z'),求解多元函数A关于变量z的积分,得出答案,如下图所示 。7、使用函数int(A,'x'),求解多元函数A关于变量x的积分,得出答案,如下图所示 。
MATLAB如何积分出来表达式syms r
R=int(1/(6*r+3*r+2*r^2));
F=simple(R);
F
运行结果为:
F =

log(r)/9 - log(r + 9/2)/9

你的 问题,将x(r)等三个函数都给它赋上函数式 。也就是:

syms r;a=6*r;
b=3*r;
c=2*r^2;R=int(1/(a+b+c));
F=simple(R);
F
运行结果为:
F =

log(r)/9 - log(r + 9/2)/9

定积分:

>> L=int(F,10,r)

L =

(29*log(29/2))/18 - (10*log(10))/9 + (r*(log(r) - 1))/9 - ((log(r + 9/2) - 1)*(r + 9/2))/9 - 1/2

如何用matlab如何实现数值积分CenaTP 发表于 2013-8-26 18:16


登录/注册后可看大图

感觉用trapz和用sum直接求和差不多~
trapz
和 cumtrapz
函数都是基于梯形积分的函数,其本质是将积分区间划分为一定数量的等间距的子区间,然后将每段子区间上的函数曲线用一段直线近似,该直线经过由小区间端点对应的原曲线上的两个端点 。所以,从本质上讲,梯形积分只不过是一种
“分段线性近似” 。所以,对于高次函数(次数>=2)时,梯形积分在划分区间数目一定的情况下可能会很变得不精确(尤其是当被积函数不连续或震荡性很大时),而且,在子区间数固定的情况下,被积函数次数越高,梯形积分精度就越差 。所以,为了使得梯形积分变得更加精确,你需要用更小的间隔来划分更多的子区间,即用更多的子区间来近似 。

但是,对于已知离散数据的情况下,数据量是固定的,即无法进一步划分子区间,所以,用梯形积分可能造成很大的误差 。如果已知被积函数可能的次数的话,可以考虑用大于等于该次数的多项式拟合,将被积函数表达式拟合出来,一旦有了函数表达式,用符号积分
int 或数值积分 quadgk 或 integral
都可以 。即使不知道被积函数的次数,也可以用高次函数你和出被积函数,再做积分

如何用matlab进行积分运算在生活或研究中可能会遇到需要积分运算的情况,比如计算一个不规则图形的面积等等 。matlab有很强的数据处理能力,只要给出任意可积的函数和积分上下线,用它可以进行积分运算 。具体操作如下:

工具/原料


matlab软件
方法/步骤


以f(x)=e^2x+sin(x+π/3),积分下限:a=0,积分上限:b=π/4为例 。

首先,建立被积函数M文件 。
点击New,选择Function.

在编辑器中输入指令:
function f=f(x)
f=exp(2*x).*sin(x+pi/3);
(注意,用.* )

保存函数文件到自己的工作路径,比如G:\matlab\work 。
输入指令:
cd G:\matlab\work
是该路径成为当前路径 。

matlab中计算积分的两种指令:
1.
F=quad('fname',a,b,tol,trace)Simpson数值积分法
2.
F=quad8('fname',a,b,tol,trace)Newton-Cotes数值积分法
其中:
fname是被积函数表达式或函数名,a,b分别是上下限,tol可以控制积分精度,省略则取0.001;trace=1则用图形表示积分过程,trace=0,没有图形 。
两者 比较,quad8精度更高 。

调用积分函数squad进行计算 。输入指令:
F=quad('f(x)',0,pi/4)
如图,回车后可得到计算结果1.8612 。
其他函数,只要修改函数文件中的表达式即可 。

大家帮忙用matlab进行数值积分,并列出命令行用matlab可以如下数值积分法,来求解定积分、二重积分、三重积分的数值解问题 。
1、梯形数值积分计算 trapz()
X = 0:pi/100:pi;
Y = sin(X);
Z = pi/100*trapz(Y)
2、自适应辛普森数值积分计算 quad()
F = @(x)1./(x.^3-2*x-5);
Q = quad(F,0,2);
3、自适应Lobatto积分计算 quadl()
function y = myfun(x)
y = 1./(x.^3-2*x-5);
end
Q = quadl(@myfun,0,2);
4、自适应Gauss Kronrod quadrature积分计算 quadgk()
function y = myfun(x)
y = exp(-x.^2).*log(x).^2;
end
Q = quadgk(@myfun,0,Inf)
5、平面区域的二重积分的数值计算 quad2d()
fun = @(x,y) 1./( sqrt(x + y) .* (1 + x + y).^2 )
ymax = @(x) 1 - x
Q = quad2d(fun,0,1,0,ymax)
6、矩形区域的的二重积分数值计算dblquad()
function z = integrnd(x, y)
z = y*sin(x)+x*cos(y);
end
Q = dblquad(@integrnd, pi, 2*pi, 0, pi)
7、三重积分数值计算triplequad()
function f = integrnd(x, y, z)
f = y*sin(x)+z*cos(x);
end
Q = triplequad(@integrnd, 0, pi, 0, 1, -1, 1)
以上是最基本的求解数值积分方法 。

利用matlab 进行计算复杂函数积分像这种复杂函数用int求出解析结果的可能性微乎其微,可以考虑求数值积分,但需要给出所有的参数 。

matlab计算数值积分(复杂,希望给出关键语句)关键是写出正确被积函数,对其进行采样 。
x0 = 0;
b = 1;
f = @(x) sqrt(1+(exp((x-x0).^2/(-2*b^2))).^2); % 被积函数
xs = (x0:0.01:x0+sqrt(log(8*b))).'; % 采样点
fs = f(xs);
bl = trapz(xs, fs)/3; % 积分

如何用matlab求积分?于无法求得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 n=0||n~=floor(n)
error('错误,n必须是一个非负整数!');
end;

if a>b
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的符号计算工具箱,第一次运行时会加载一小会,耐心等待 。
以后再运行速度就很快了 。

怎么用Matlab编程计算积分!!!int
Integrate symbolic expression

Syntax
int(expr)
int(expr, v)
int(expr, a, b)
int(expr, v, a, b)

算了,给你举两个例子吧

x^2 积分:
>> syms x;
>> int(x^2,x)
ans =
x^3/3

x^2 从 1 积分到 5:
>> int(x^2,x,1,5)
ans =
124/3

注意前面一句话,syms表示定义变量
自己遇到问题多看手册或者自己谷歌,百度知道上面专业人士不多的

怎么用matlab求含字母的定积分?int(s,v,a,b):以v为自变量,对被积函数s在区间[a,b]上的定积分 。
a和b可以是两个具体的数,也可以是一个符号表达式,还可以是无穷(inf) 。
例:
syms
x
%定义符号变量
f=int(x^3,x,1,2)
%
求x^3在区间[1,2]上的定积分

matlab中的积分运算如何进行int函数
比如求y=x^2+2*x+1的几分可以这样写:
y=x^2+2*x+1
int(y)
如果是定积分,就写成int(y,a,b),期中a,b分别是几分的上下限

如何用matlab求积分?
matlab数值积分

文章插图

1、使用int函数,函数由integrate缩写而来,int 函数表达式,变量,积分上限,积分下限 。2、比如求一个Fx = a*x^2,在区间(m,n)对x进行积分,首先要将 m,x,a,b 这四个变量定义为符号变量syms m x a b;Fx = a*x^2;int(Fx,x,m,n)3、通过上面这个方法,就能够求得任意一个函数在给定区间的积分,如果想看到书写的格式,可以用pretty命令,这样显示更接近平常的表示方法 。1、在matlab中,积分运算有多种方式,为了便于查看不同方式处理异同,以下面这个积分为例:2、梯形积分法第一种,采用最简单的方式,以函数trapz为例,z = trapz(x,y) 其中x表示积分区间的离散化向量,y是与x同维数的向量,表示被积函数,z是返回的积分近似值 。clc,clear 。% 梯形积分法x = -1:0.001:1,y = exp(-x.^2),s = trapz(x,y)% 计算结果: s =1.49363、高精度数值积分(1)为了克服梯形积分法精度低的问题,可以采用高精度积分方式,第一种可以采用 z = quad(Fun,a,b) 该方式是自适应步长Simpson计分法求得函数Fun在区间[a,b]上定积分,如下:clc;clear;% 梯形积分法s = quad(inline('exp(-x.^2)'),-1,1)% 计算结果: s =1.49364、高精度数据积分(2)采用高精度Lobatto积分法,格式: z = quadl(Fun,a,b)clc;clear;% 梯形积分法s = quadl(inline('exp(-x.^2)'),-1,1)% 计算结果: s =1.4936
MATLAB求积分的数值解用double()化为数值型就可以了



>> syms x
y=inline('0.579/((2*pi*0.3176)^0.5*x^1.5)*exp(-(x-0.579)^2/(2*0.3176*x))','x');
A=int(x*exp(-3*x)*y(x),x,0,inf)
double(A)
Warning: Explicit integral could not be found.

A =

int(81487005757734912/(198810802005279125*x^(1/2)*exp(3*x)*exp((625*(x - 579/1000)^2)/(397*x))), x = 0..Inf)

ans =
0.0940
>>

怎样用matlab求以下积分方程的数值解,谢谢!编程观察了下F1(t)/F0(t) - t函数,图像如下:也就是说a / K需要是个正数才行 。你给的数据a是正的,K是负的,无解 。给定a,K,计算yita的程序是:%% 示例a = 1; K = 2;Fn = @(n, yita)quadgk(@(x)x.^n./(1+exp(x-yita)), 0, inf);f = @(yita)2*Fn(1,yita)/Fn(0,yita) - yita - a/K;yita = fsolve(f, 0)
matlab求大神编求积分数值解的程序int是用来求符号积分的,求数值解的方法如下:
12Q = @(x)quadgk(@(t)exp(-t.^2/2)/sqrt(2*pi), x, inf)Q(0)

求教大神用matlab数值解积分方程这个方程无解 。如果 |x| < 1,积分项会出现复数,而另一项为实数,无解 。而当 |x| >= 1时,积分项的值大于0.5,另一项最大为0.5,仍然无解 。可以很容易画出方程左端的函数图像:syms x e realezplot(int(sqrt(x^2-e^2),e,0,1)-1/(x^2+1),[-2 2])由图可见,函数值始终为正(其中-1~1区间为复数的实部),所以方程无解 。
MATLAB 求积分时无法输出数值解,一直是积分表达式syms t x0=1753000;y0=0;z0=0;vx0=0;vy0=1700;vz0=0;x1=1738000*cosd(10);y1=1738000*sind(10);z1=0;vx1=0;vy1=0;vz1=0;u=4.9*10^12 ;r0=1753000;a0=1.6243;b0=0;c0=0;a1=(-6*(a0*t^2+(vx1+3*vx0)*t-4*(x1-x0)))/t^3;b1=(-6*(b0*t^2+(vy1+3*vy0)*t-4*(x1-x0)))/t^3;c1=(-6*(c0*t^2+(vz1+3*vz0)*t-4*(x1-x0)))/t^3;a2=(6*(a0*t^2+2*(vx1+2*vx0)*t-6*(x1-x0)))/t^4;b2=(6*(b0*t^2+2*(vy1+2*vy0)*t-6*(y1-y0)))/t^4;c2=(6*(c0*t^2+2*(vz1+2*vz0)*t-6*(z1-z0)))/t^4;ax=a0+a1*t+a2*t^2;ay=b0+b1*t+b2*t^2;az=c0+c1*t+c2*t^2;x=x0+vx0*t+a0*t^2/2+a1*t^3/6+a2*t^4/12;y=y0+vy0*t+b0*t^2/2+b1*t^3/6+b2*t^4/12;z=z0+vz0*t+c0*t^2/2+c1*t^3/6+c2*t^4/12;r=sqrt(x^2+y^2+z^2);gx=(-u*x)/r^3;gy=(-u*y)/r^3;gz=(-u*z)/r^3;apx=ax-gx;apy=ay-gy;apz=az-gz;ap=sqrt(apx^2+apy^2+apz^2);fun=inline(vectorize(char(eval(ap))),'t');tt=0:200;yy=fun(tt);plot(tt,yy);V=quad(fun,1,200);由于函数太复杂,不能得到精确的解析积分这里可以完全用数值办法fun=inline(vectorize(char(eval(ap))),'t');将原来ap的内容转为inline函数fun(t)我们可以画出其在0~200范围内的图像当tt趋向于0时,yy趋向于无穷大,所以函数的0点奇点[0 200]区间内的积分是发散的所以这里计算了[1 200]区间内的积分V=quad(fun,1,200);
用matlab求解指数积分限函数方程,数值解即可如按题主给定的等式,是呼得不到δ的解 。请题主再审视一下等式的正负号 。如将-28.5改为28.5,可以得到δ的解 。求解结果,δ≈0.53841
matlab如何计算定积分int(S,v,a,b)S~被积表达式v~积分变量a,b~积分下限,积分上限

Matlab怎么计算定积分求f在区间[a,b]上对t的定积分 。
符号解:例如f=t^2*exp(-t);a=0,b=1
>> clear
>> syms t%定义符号变量
>> f=t^2*exp(-t);
>> int(f,t,0,1)

ans =

2 - 5*exp(-1)
数值解:例如例如f=t^2*exp(-t^3);a=0,b=1
>> clear
>> t=0:0.0001:1;%中间的0.0001是步长
>> f=t.^2.*exp(-t.^3);%求节点处的函数值 。这一句的"^"和"*"前面的"."表示对应元素乘方、相乘 。因为t是向量,只有方阵才可以乘方,矩阵乘法也必须满足相应的维数关系
>> sum(f*0.0001)%节点处的函数值相当于矩形的高,步长相当于矩形的宽,乘积再求和就得到总面积的近似值 。

ans =

0.2107

请问怎么用“matlab”软件算定积分?
matlab数值积分

文章插图

以f(x)=e^2x+sin(x+π/3),积分下限:a=0,积分上限:b=π/4为例 。1.首先,建立被积函数M文件 。点击New,选择Function.2.在编辑器中输入指令:function f=f(x)f=exp(2*x).*sin(x+pi/3);(注意,用.* )3.保存函数文件到自己的工作路径,比如G:\matlab\work 。输入指令:cd G:\matlab\work是该路径成为当前路径 。4.调用积分函数squad进行计算 。输入指令:F=quad('f(x)',0,pi/4)如图,回车后可得到计算结果1.8612 。其他函数,只要修改函数文件中的表达式即可 。
matlab 怎么快速算定积分用matlab的int()函数可以快速算相对简单的定积分 。
使用格式:
int(S,v,a,b)
S——被积函数
v——积分变量
a,b——积分区间
syms x
F = int(cos(x)/sqrt(1 + x^2), x, 0, 10);
vpa(F, 5)

ans =
0.37571

怎么用matlab算含字母的定积分? 比如:
matlab数值积分

文章插图

方法和详细的操作步骤如下:1、第一步,创建一个M文件,单击“New”,然后选择“Function”,如下图所示 。2、第二步,完成上述步骤后,在编辑器中输入命令,代码见下图 。3、第三步,完成上述步骤后,将函数文件保存到相关工作路径,例如G:\ matlab \ work,如下图所示 。4、第四步,完成上述步骤后,调用积分函数squad进行计算,代码如下,按“ Enter”键后,可以得到计算结果1.8612 。如下图所示 。这样,以上的问题就解决了 。
MATLAB数值积分quad(@(x)3/20/sqrt(2*pi)*exp(-9*(x-170).^2/800), 165, 175, 1e-4)ans =0.5467

利用matlab进行数值积分计算#include #include #define pi 3.1415926#define eps 0.0001#define g pi/2double f(double x){return sqrt(400*cos(x)*cos(x)+100*sin(x)*sin(x));}void main(){ float T[20][4];int k,m,i;double t=0;T[0][0]=23.5619445; T[1][0]=38.98796225;for(k=1;k=4)if(fabs(T[k-3][3]-T[k-4][3])<eps)break;}printf("%lf\n",4*T[k-3][3]);}

matlab多参数数值积分【matlab数值积分】你要是只对x做一维积分,只需要给出x的范围就行,就是只需要给出积分限
可以改成
z=quadl(@(x)myfun(x,t1,t2,t3),0,1);

当然t1,t2,t3前面也需要给出定值
我说的定值,就是代入参数,就是子函数mufunction的输入参数,就是说t1,t2,t3不要也是积分变量就可以

另外,你的子函数是mufunction
而你quadl调用时,用的是myfun
你看我的例子
子函数是:
function Exf = Exfun(theta,k,rp,thetap )
Exf=sqrt(cos(theta)).*sin(theta).*(1+cos(theta)).*exp(-1i*k*rp.*cos(thetap).*cos(theta)).*besselj(0,-k*rp.*sin(theta).*sin(thetap))...
+sqrt(cos(theta)).*sin(theta).*(1-cos(theta)).*exp(-1i*k*rp.*cos(thetap).*cos(theta)).*besselj(2,-k*rp.*sin(theta).*sin(thetap));
end
调用时:
>> x=quadl(@(theta)Exfun(theta,5,7,pi),0,pi)

x =

-0.0256 + 0.0517i