以Matlab函数积分问题,怎么解决
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.4936
3、高精度数值积分(1)
为了克服梯形积分法精度低的问题,可以采用高精度积分方式,第一种可以采用 z = quad(Fun,a,b) 该方式是自适应步长Simpson计分法求得函数Fun在区间[a,b]上定积分,如下:
clc;clear;
% 梯形积分法
s = quad(inline('exp(-x.^2)'),-1,1)
% 计算结果: s = 1.4936
4、高精度数据积分(2)
采用高精度Lobatto积分法,格式: z = quadl(Fun,a,b)
clc;clear;
% 梯形积分法
s = quadl(inline('exp(-x.^2)'),-1,1)
% 计算结果: s = 1.4936
% 注:在编写完代码后,要按如下图红色箭头所指处运行程序才会有输出!
像这类曲线积分的表达式很难求出解析表达式的,没有办法。
从计算定积分的角度来说,你没必要过于纠结解析表达式,其实只要知道这是一个函数,只要给定了自变量,都能够求出函数值来,就够了。例如,按照你的要求,上限是一个具体的数例如8133.2,但下限是a,那么我们就可以定义一个匿名函数J(a):
syms x;y=3251*exp(-(x-8555)^2/2550^2)+378.4*exp(-(x-1.178e+004)^2/1281^2)... + 5.157e+017*exp(-(x-5.89e+005)^2/1.007e+005^2);b = 8133.2;J = @(a) quadl( @(t) subs(sqrt((diff(y,x))^2+1),x,t), a, b);然后,只要你指定a的值,就可以计算出定积分的结果来,例如
>> J(7500)ans = 842.4111
用Matlab的函数可以求解积分问题,对于一般的积分问题,可以用int()函数,对于复杂的积分问题,可以用integral, quad, trapz等函数来解决。例如:
>> syms x
>> Q =int(1/(x^3-2*x-5),0,2);
>> vpa(Q)
ans =-0.46050153384673289099951059054732
>> func =@(x) 1./(x.^3-2*x-5);
>> Q = quad(func,0,2)
Q = -0.4605
kron是什么函数?
Matlab中有kron函数用来计算Kronecker积。函数 kron:格式 C=kron (A,B) , %A为m×n矩阵,B为p×q矩阵,则C为mp×nq矩阵。kron即为Kronecker积,所谓Kronecker积是一种矩阵运算,其定义可以简单描述成:X与Y的Kronecker积的结果是一个矩阵:X11*Y X12*Y … X1n*YX21*Y X22*Y … ...
在matlab中如何求积分,用什么函数?
1、在matlab中,积分运算有多种方式,为了便于查看不同方式处理异同,以下面这个积分为例:2、梯形积分法 第一种,采用最简单的方式,以函数trapz为例,z = trapz(x,y) 其中x表示积分区间的离散化向量,y是与x同维数的向量,表示被积函数,z是返回的积分近似值。clc,clear。梯形积分法 x = -1...
如何用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'),求解...
如何用matlab求多项式乘积?
如何用matlab求多项式乘积,可以直接用conv()函数来计算。其使用格式:w = conv(u,v) %u 和 v 是多项式系数的向量 例如:(x²+1)×(2x+7)第一步, 创建包含多项式 x²+1 和 2x+7 的系数的向量 u 和 v。即 u = [1 0 1];v = [2 7];第二步,使用conv函数,...
matlab 中怎么输入一个要求积的函数
matlab中使用log表示自然对数,所以把你的ln改为log即可 syms x ;f=(1\/(x*(-5.9599)*sqrt(2*pi)))*exp(-(log(x)-(-15.4345))^2\/(2*(-5.9599)^2));vpa(int(f,x,0.1,9.97)) ans = -0.012321806527468792913495012096701 ...
matlab怎样计算积分?
matlab计算积分,可以用int函数,具体实现如下:syms x; % 定义变量xy = x*exp(-x); % 函数形式int(y, 0, inf); % 计算y在0到正无穷的定积分% 以上程序运行后,输出1 int函数的一般调用形式为:int(s):没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号...
MATLAB中的阶乘函数是什么?
MATLAB中的阶乘函数是factorial()。在MATLAB中该函数运用规则是这样的:语法 f = factorial(n)说明 f = factorial(n) 返回所有小于或等于 n 的正整数的乘积,其中 n 为非负整数值。如果 n 为数组,则 f 包含 n 的每个值的阶乘。f 与 n 具有相同的数据类型和大小。n 的阶乘通常使用感叹号字符...
matlab如何表示积分
b) 符号表达式s关于变量x的定积分,a,b分别为积分的上、下限;trapz(x,y) 梯形积分法,x时表示积分区间的离散化向量,y是与x同维数的向量,表示被积函数,z返回积分值。MATLAB 可以用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
如何用matlab求取函数的不定积分与定积分
用matlab求函数的不定积分与定积分的函数是int(),其具体使用格式为 1、不定积分 int(S)S——单变量被积函数表达式,f(x)例1:syms x;int(-2*x\/(1 + x^2)^2)结果,1\/(x^2 + 1)int(S,v)S——多变量被积函数表达式,f(x,y)v——积分变量x或y 例2:syms x z;int(x\/(1...
求助matlab 求两个函数围成的面积的积分程序?
function out=mypolynomial(x)out=-0.0339*x.^2+1.7225*x-1.0157;(这个函数是题目中两个函数的差)然后 a=fzero('mypolynomial',[0,10]);得到a = 0.5967;b=fzero('mypolynomial',[50,60]);得到b = 50.2145;最后 s=quad('mypolynomial',0.5967,50.2145);得到 s = ...
殷勤例露畅: 用Matlab的函数可以求解积分问题,对于一般的积分问题,可以用int()函数,对于复杂的积分问题,可以用integral, quad, trapz等函数来解决.例如:>> syms x>> Q =int(1/(x^3-2*x-5),0,2); >> vpa(Q) ans =-0.46050153384673289099951059054732>> func =@(x) 1./(x.^3-2*x-5);>> Q = quad(func,0,2) Q = -0.4605
河源市15130794512: matlab 求解积分函数∫(0,1)e²x dx求解函数 的数值积分和符号积分并比较结果求解积分函数∫(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 符号积分精确度高但速度慢,有时候有些函数没有解析解,就得用数值积分,并且数值积分速度快,但精确度不高
河源市15130794512: 如何用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
河源市15130794512: 用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]上的定积分
河源市15130794512: 怎样用matlab编程求解积分 - ?
殷勤例露畅: int函数 例如s = sin(x),求积分int('s'),即可
河源市15130794512: 怎么用MATLAB求积分 - ?
殷勤例露畅: 基本不管多复杂的式子,MATLAB都能解决,只要你输入正确,解出来只是时间问题,我给你一个解题的参考格式.设f为你的被积函数,只能自己输,别输错;x为积分变量,a,b分别为积分下限和上限.MATLAB中计算函数f的不定积分的格式如下: syms x;int(f,x) 计算定积分的格式如下: syms a b x;int(f,x,a,b).
河源市15130794512: 用matlab求积分 - ?
殷勤例露畅: 用quad函数,例如求f(x)=1./(x.^3-2*x-5)从0到2的积分: F = @(x)1./(x.^3-2*x-5); %生成函数句柄 Q = quad(F,0,2);
河源市15130794512: matlab中怎么求函数的积分 - ?
殷勤例露畅: 用 quad 命令: 具体用法如下:1 2y = @(x)(sin(x)); quad(y,0,pi)
河源市15130794512: 怎样用matlab解积分方程 - ?
殷勤例露畅: syms a x y y=int(x^2+a,x,0,a) 然后运行 solve('1/3*a^3+a^2=3','a'); vpa(a) 这结果出来了,三个.自己根据需要选择合适解.一般是第一个,后面俩个是复数解
河源市15130794512: MATLAB 利用复合梯形公式求解积分(x+1)sin(x)dx 在0到1区间 - ?
殷勤例露畅:[答案] 可以利用matlab的trapz函数命令 x=0:0.00001:1;%x用来储存积分点 y=(x+1).*sin(x);%y用来求解积分点x处的函数值 I=trapz(x,y) I = 0.7608663730793 验证该问题的解析解 syms x y=(x+1)*sin(x);%被积函数表达式 II=int(y,0,1) II = sin(1) - 2*cos(1) + 1 %II...