你把位置数V变成一个数组了,int没法用一组数组对函数进行积分,你只要提供V上下限就行了。
修改如下:
可以在matlab中查看int的用法。
MATLAB程序运行时出现错误找出错误 *** 作方法
对于初学者来说,开发MATLAB程序时,经常回出现诸多错误。MATLAB程序运行时出现错误后,可通过适当的方法定位和查找, *** 作步骤如下所列。
下述方法描述中,采用如下实例程序进行说明;
2MATLAB程序运行错误后,切换到MATLAB命令行中,观察命令行中的错误信息,确定错误原因;
3在错误信息中,查找源程序中错误代码的行数,点击行数链接,可以直接定位错误语句;
4错误语句定位后,自动跳转到代码编辑器中,在代码编辑器中通过光标标识错误代码的位置;
5确定错误语句后,通过F12快捷键在错误语句处设定断点;
6断点设定完成后,通过F5快捷键重新执行程序,程序会在断点处停止运行,进入调试状态;
7在调试状态下有多个步骤可以查找程序问题的原因。
使用matlab的int函数可以方便的计算积分,以及多重积分。
设二重积分还是表达式为 z=z(x,y),积分域为下限 y1(x) 上限 y2(x),从 x1 到 x2,则二重积分代码为:
int(int(z,y,y1,y2),x,x1,x2)
需要先定义符号变量 x,y,以及表达式 z,y1,y2 和数值 x1,x2 的值。
下面举例在半径为1,以原点为圆心的圆上,对 z=x^2+y^2+xy 做二重积分:
向左转|向右转
int ,函数功能强大,可以计算积分、定积分、广义积分以及一些特殊积分(如 sin(x)/x 的无穷积分、高斯积分、伽马积分等),对于学习高等数学的同学很有应有价值。
L1000转换为int32类型(有符号32位整数)的数值。
int32是MATLAB的基本数据类型之一,也是同名的构造函数。取值范围 -2,147,483,648 ~ 2,147,483,647。类似的还有int8, int16, int64,以及对应的无符号类型uint8, uint16, uint32, uint64。
参考资料:
>> z=int('exp(-x^2/2)/sqrt(2pi)','x',0,1)
z =
1/2erf(1/22^(1/2))
>> a=vpa(z)
a =
34134474606854294858523254563204
>>
MATLAB中 intvar(5,10)是什么意思?能同时定义多个问题吗?
intvar是Yalmip工具箱的函数,用于创建符号整数变量数。
intvar(5,10)的意思是创建五行十列的符号整数变量矩阵。
根据intvar()函数的要求,只能定义一组问题的变量,不能同时定义多个问题。
下图为一个具体例子的计算结果。
clear all
syms x; % 定义符号
y0=@(x)(-2680); % 定义被积函数
y1=int(y0,x); %符号积分-2680x
xx=0:01:1;
y2=double(subs(y1,x,xx)) %带入数值并化为双精度数值
plot(xx,y2)
k=[1 2 3 4 5 6 7];
xk=[03 05 07 09 11 13 15];
fxk=[03895 06598 09147 11611 13971 16212 18325];
s1=sum(fxk(1:end-1)(diff(xk))); %矩形
s2=trapz(xk,fxk); %梯形
矩形公式就是把将微分的面积元看成是矩形 ΔS(i)=fxk(i)Δx(i)
梯形公式就是把将微分的面积元看成是梯形 ΔS(i)=(fxk(i)+fxk(i+1))/2Δx(i)
矩形
梯形
一般梯形的面积计算更为精确
1、polyint(p,k),其中p是多项式系数组成的行向量,k是一个标量。这个函数的作用是对多项式p进行积分,把k作为积分后的常数项(因为对多项式积分后常数项不确定)。
2、polyint(p),作用和上面一样,默认k=0。
例如:
p = [1 1]; % p=x+1k1 = polyint(p)
k1 = 05 1 0 % 积分结果为 05x^2 + x,常数项默认为0
k = 1;
k2 = polyint(p,k)
k2 = 05 1 1 % 积分结果为 05x^2 + x + 1,常数项为k,即1
以上就是polyint的用法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)