使用matlab求定积分报错,说matlab输入参数不足足,求大神解惑

MATLAB求积分的数值解_百度知道
MATLAB求积分的数值解
我的程序及运行如下:
&& y=inline('0.579/((2*pi*0.*x^1.5)*exp(-(x-0.579)^2/(2*0.3176*x))','x');
&& int(x*exp(-3*x)*y(x),x,0,inf)
Warning: Explicit integral could not be found.
int((34912*exp(-3*x)*e...
我有更好的答案
用double()
化为数值型就可以了&& syms xy=inline('0.579/((2*pi*0.*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(3*x^(1/2)*exp(3*x)*exp((625*(x - 579/1000)^2)/(397*x))), x = 0..Inf) ans =
采纳率:67%
可以积分出来的,只是好像你的r和β怎么是反的:syms xr=0.3136;beta=0.579;y=r/((2*pi*beta)^0.5*x^1.5)*exp(-(x-r)^2/(2*beta*x));s=int(x*exp(-3*x)*y,x,0,inf);s=double(s)s =
为您推荐:
其他类似问题
matlab的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。matlab求积分,为什么总是出现错误,这应该怎么改_百度知道
matlab求积分,为什么总是出现错误,这应该怎么改
f=quad('(sqrt(1-(sin(0).*(-0.265.*cos(0).*cos(x)).^2)/(sin(0).*(-0.265.*cos(0).*cos(x))).^2./2',0..)
出现错误The integrand function must return an output vector of the same length as the input vect...
我有更好的答案
求积分为什么总是出现错误的主要问题是代码书写不正确。应按下列形式更改func=inline('(sqrt(1-(sin(0)*(-0.265*cos(0).*cos(x)).^2)./(sin(0)*(-0.265*cos(0).*cos(x))).^2/2','x') & %自定义积分函数f=quad(func,0..) & &%计算积分
采纳率:80%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。在matlab中怎样求带有参数的定积分_百度知道
在matlab中怎样求带有参数的定积分
在matlab中怎样求带有参数的定积分
我有更好的答案
设被积函数为f=ax+b,积分区间为(c,d)MATLAB代码如下:f=a*x+b;answer=int(f,x,c,d).
采纳率:50%
为您推荐:
其他类似问题
您可能关注的内容
定积分的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。博客访问: 1042555
博文数量: 49
博客积分: 10237
博客等级: 上将
技术积分: 2764
注册时间:
分类: IT业界 10:23:09
一、Z = trapz(X,Y,dim)梯形数值积分,通过已知参数x,y按dim维使用梯形公式进行积分例1 计算int(sin(x),0,pi)
%by dynamic%all rights reserved by www.matlabsky.com>>x=0:pi/100:2*>>y=sin(x);>>z=trapz(x,y)%或者说使用z = pi/100*trapz(y)z =1.>>z = pi/100*trapz(y)
二、[q,fcnt]= quad(fun,a,b,tol,trace,p1,p2...)自适应simpson公式数值积分,适用于精度要求低,被积函数平滑性较差的数值积分注意事项:1.被积函数fun必须是函数句柄2.积分限[a,b]必须是有限的,因此不能为inf3.p1为其他需要传递的参数,一般是数值可能警告:1.'Minimum step size reached'意味着子区间的长度与计算机舍入误差相当,无法继续计算了。原因可能是有不可积的奇点2.'Maximum function count exceeded'意味着积分递归计算超过了10000次。原因可能是有不可积的奇点3.'Infinite or Not-a-Number function value encountered'意味着在积分计算时,区间内出现了浮点数溢出或者被零除。例2 计算积分1/(x^3-2*x-p),其中参数p=5,积分区间为[0,2]
%by dynamic%all rights reserved by www.matlabsky.com>>F = @(x,n)1./(x.^3-2*x-n);>>Q = quad(@(x)F(x,5),0,2)%或者使用 quad(F,0,2,[],[],5)效果是一样的,只是前者使用的函数嵌套Q =-0.4605>>quad(F,0,2,[],[],5)ans =-0.4605
三、[q,fcnt] = quadl(fun,a,b,tol,trace,p1,p2...)自适应Lobatto数值积分,适用于精度要求高,被积函数曲线比较平滑的数值积分注意事项:同quad可能警告:同quad例3 计算积分1/(x^3-2*x-p),其中参数p=5,积分区间为[0,2]
%by dynamic%all rights reserved by www.matlabsky.com>>F=@(x,p)1./(x.^3-2*x-p);>>Q = quadl(F,0,2,[],[],5)%或者Q = quadl(@(x)F(x,5),0,2)Q =-0.4605
四、[q,errbnd] = quadgk(fun,a,b,param1,val1,param2,val2,...)自适应Gauss-Kronrod数值积分,适用于高精度和震荡数值积分,支持无穷区间,并且能够处理端点包含奇点的情况,同时还支持沿着不连续函数积分,复数域线性路径的围道积分法注意事项:1.积分限[a,b]可以是[-inf,inf],但必须快速衰减2.被积函数在端点可以有奇点,如果区间内部有奇点,将以奇点区间划分成多个,也就是说奇点只能出现在端点上3.被积函数可以剧烈震荡4.可以计算不连续积分,此时需要用到'Waypoints'参数,'Waypoints'中的点必须严格单调5.可以计算围道积分,此时需要用到'Waypoints'参数,并且为复数,各点之间使用直线连接6.param,val为函数的其它控制参数,比如上面的'waypoints'就是,具体看帮助出现错误:1.'Reached the limit on the maximum number of intervals in use'2.'Infinite or Not-a-Number function value encountered'例4 计算有奇点积分int(exp(x)*log(x),0,1)
%by dynamic%all rights reserved by www.matlabsky.com>>F=@(x)exp(x).*log(x);%奇点必须在端点上,否则请先进行区间划分>>Q = quadgk(F,0,1)Q =-1.3179
例5 计算半无限震荡积分int(x^5*exp(-x)*sin(x),0,inf)
%by dynamic%all rights reserved by www.matlabsky.com>>F=@(x)x.^5.*exp(-x).*sin(x);>>fplot(F,[0,100])%绘图,看看函数的图形>>[q,errbnd] = quadgk(F,0,inf,'RelTol',1e-8,'AbsTol',1e-12)%积分限中可以有inf,但必须快速收敛q =-15.0000errbnd =9.
例6 计算不连续积分,积分函数为f(x)=x^5*exp(-x)*sin(x),但是人为定义f(2)=1000,f(5)=-100,积分区间为[1 10]
%by dynamic%all rights reserved by www.matlabsky.com>>F=@(x)x.^5.*exp(-x).*sin(x);>>[q,errbnd] = quadgk(F,1,10,'Waypoints',[2 5])%显然2,5为间断点q =-10.9408errbnd =3.
例7 计算围道积分,在复数域内,积分函数1/(2*z-1),积分路径为由[-1-i 1-i 1+i -1+i -1-i]围成的矩形边框
%by dynamic%all rights reserved by www.matlabsky.com>>Waypoints=[-1-i 1-i 1+i -1+i -1-i];>>plot(Waypoints);%绘制积分路径>>xlabel('Real axis');ylabel('Image axis');axis([-1.5 1.5 -1.5 1.5]);>>Q = quadgk(@(z)1./(2*z - 1),-1-i,-1-i,'Waypoints',[1-i,1+i,-1+i])%注意各点间使用直线连接ans =0.0000 + 3.1416i>> quadgk(@(z)1./(2*z - 1),-1-i,-1-i,'Waypoints',Waypoints)%使用这个的效果也是一样的,就是说始末点可以随便包不包含在Waypoints中ans =0.0000 + 3.1416i
五、[Q,fcnt] = quadv(fun,a,b,tol,trace)矢量化自适应simpson数值积分注意事项:1.该函将quad函数矢量化了,就是一次可以计算多个积分2.所有的要求完全与quad相同例8 计算下面积分,分别计算n=1,2...,5时的5个积分值,被积函数1/(n+x),积分限为[0,1]
%by dynamic%all rights reserved by www.matlabsky.com>>for k = 1:5, Qs(k) = quadv(@(x)1/(k+x),0,1);QsQs =0.5 0.1 0.1823>>F=@(x,n)1./((1:n)+x);%定义被积函数>>quadv(@(x)F(x,5),0,1)%我们可以完全使用quadv函数替换上面循环语句的,建议使用后者ans =0.5 0.1 0.1823
六、q = dblquad(fun,xmin,xmax,ymin,ymax,tol,method)矩形区域二重数值积分,一般区域二重积分参见NIT(数值积分工具箱)的quad2dggen函数例9 计算下面二重积分
%by dynamic%all rights reserved by www.matlabsky.com>>F = @(x,y)y*sin(x)+x*cos(y);>Q = dblquad(F,pi,2*pi,0,pi)Q =-9.8696
七、q=triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol,method)长方体区域三重数值积分,注意此时没有一般区域的三重积分例10 计算下面三重积分
%by dynamic%all rights reserved by www.matlabsky.com>>F = @(x,y,z)y*sin(x)+z*cos(x);>>Q = triplequad(F,0,pi,0,1,-1,1)Q =2.0000
八、超维长方体区域多重积分quadndg:NIT工具箱函数,可以解决多重超维长方体边界的定积分问题,但没有现成的一般积分区域求解函数下面总结下:(1)quad:采用自适应变步长simpson方法,速度和精度都是最差的,建议不要使用(2)quad8:使用8阶Newton-Cotes算法,精度和速度均优于quad,但在目前版本下已被取消(3)quadl:采用lobbato算法,精度和速度均较好,建议全部使用该函数(4)quadg:NIT(数值积分)工具箱函数,效率最高,但该工具箱需要另外下载(5)quadv:quad的矢量化函数,可以同时计算多个积分(6)quadgk:很有用的函数,功能在Matlab中最强大(7)quad2dggen:一般区域二重积分,效率很好,需要NIT支持(8)dblquad:长方形区域二重积分(9)triplequadL:长方体区域三重积分(10)quadndg:超维长方体区域积分,需要NIT支持NIT数值积分工具箱下载参见这里
阅读(61119) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~
请登录后评论。如何利用matlab计算最小多项式
矩阵分析中常用的,每次手工计算,很烦,希望有高人解答
10-01-04 &匿名提问
7.1.1 分段线性插值所谓分段线性插值就是通过插值点用折线段连接起来逼近原曲线,这也是计算机绘制图形的基本原理。实现分段线性插值不需编制函数程序,MATLAB自身提供了内部函数interp1其主要用法如下:interp1(x,y,xi) 一维插值◆ yi=interp1(x,y,xi)对一组点(x,y) 进行插值,计算插值点xi的函数值。x为节点向量值,y为对应的节点函数值。如果y 为矩阵,则插值对y 的每一列进行,若y 的维数超出x 或 xi 的维数,则返回NaN。◆ yi=interp1(y,xi)此格式默认x=1:n ,n为向量y的元素个数值,或等于矩阵y的size(y,1)。◆ yi=interp1(x,y,xi,’method’)method用来指定插值的算法。默认为线性算法。其值常用的可以是如下的字符串。● nearest 线性最近项插值。● linear 线性插值。● spline 三次样条插值。● cubic 三次插值。所有的插值方法要求x是单调的。x 也可能并非连续等距的。正弦曲线的插值示例:&& x=0:0.1:10;&& y=sin(x);&& xi=0:0.25:10;&& yi=interp1(x,y,xi);&& plot(x,y,’0’,xi,yi)则可以得到相应的插值曲线(读者可自己上机实验)。Matlab也能够完成二维插值的运算,相应的函数为interp2,使用方法与interpl基本相同,只是输入和输出的参数为矩阵,对应于二维平面上的数据点,详细的用法见Matlab联机帮助。 7.1.2 最小二乘法拟合在科学实验的统计方法研究中,往往要从一组实验数据中寻找出自变量x 和因变量y之间的函数关系y=f(x) 。由于观测数据往往不够准确,因此并不要求y=f(x)经过所有的点 ,而只要求在给定点上误差按照某种标准达到最小,通常采用欧氏范数作为误差量度的标准。这就是所谓的最小二乘法。在MATLAB中实现最小二乘法拟合通常采用polyfit函数进行。函数polyfit是指用一个多项式函数来对已知数据进行拟合,我们以下列数据为例介绍这个函数的用法:&& x=0:0.1:1;&& y=[ -0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2 ]为了使用polyfit,首先必须指定我们希望以多少阶多项式对以上数据进行拟合,如果我们指定一阶多项式,结果为线性近似,通常称为线性回归。我们选择二阶多项式进行拟合。&& P= polyfit (x, y, 2)P=-9.3 -0.0317函数返回的是一个多项式系数的行向量,写成多项式形式为:为了比较拟合结果,我们绘制两者的图形:&& xi=linspace (0, 1, 100); %绘图的X-轴数据。&& Z=polyval (p, xi); %得到多项式在数据点处的值。当然,我们也可以选择更高幂次的多项式进行拟合,如10阶:&& p=polyfit (x, y, 10);&& xi=linspace (0, 1,100);&& z=ployval (p, xi);读者可以上机绘图进行比较,曲线在数据点附近更加接近数据点的测量值了,但从整体上来说,曲线波动比较大,并不一定适合实际使用的需要,所以在进行高阶曲线拟合时,“越高越好”的观点不一定对的。
7.2 符号工具箱及其应用在数学应用中,常常需要做极限、微分、求导数等运算,MATLAB称这些运算为符号运算。MATLAB的符号运算功能是通过调用符号运算工具箱(Symbolic Math Toolbox)内的工具实现,其内核是借用Maple数学软件的。MATLAB的符号运算工具箱包含了微积分运算、化简和代换、解方程等几个方面的工具,其详细内容可通过MATLAB系统的联机帮助查阅,本节仅对它的常用功能做简单介绍。7.2.1 符号变量与符号表达式MATLAB符号运算工具箱处理的对象主要是符号变量与符号表达式。要实现其符号运算,首先需要将处理对象定义为符号变量或符号表达式,其定义格式如下:格式1: sym (‘变量名’) 或 sym (‘表达式’)功能: 定义一个符号变量或符号表达式。例如:&& sym (‘x’) % 定义变量x为符号变量&& sym(‘x+1’) % 定义表达式x+1为符号表达式格式2: syms 变量名1 变量名2 …… 变量名n功能: 定义变量名1、变量2 ……、变量名 n为符号变量。例如:&& syms a b x t % 定义a,b, x,t 均为符号变量 7.2.2 微积分运算1、极限格式:limit (f, t, a, ‘left’ or ‘right’)功能:求符号变量t 趋近a 时,函数f 的(左或右)极限。‘left’ 表示求左极限,‘right’ 表示求右极限,省略时表示求一般极限;a省略时变量t 趋近0; t省略时默认变量为x ,若无x则寻找(字母表上)最接近字母x 的变量。例如:求极限的命令及结果为:&& syms x t&& limit ((1+2*t/x)^(3*x) , x, inf )ans=exp(6*t)再如求函数x / |x| ,当时的左极限和右极限,命令及结果为:&& syms x&& limit(x/abs(x), x, 0, ’left’) ans = -1&& limit(x/abs(x),x, 0, ’right’) ans = 1 2、导数格式: diff (f,t,n)功能: 求函数f 对变量 t的n 阶导数。当n省略时,默认 n=1;当t省略时,默认变量x, 若无x时则查找字母表上最接近字母x 的字母。例如:求函数f=a*x^2+b*x+c对变量 x的一阶导数, 命令及结果为&& syms a b c x&& f=a*x^2+b*x+c;&& diff(f)ans=2*a*x+b求函数f 对变量b的一阶导数(可看作求偏导), 命令及结果为&& diff(f,b) ans=x求函数f 对变量x的二阶导数, 命令及结果为&& diff(f,2) ans=2*a3、积分格式: int(f,t,a,b)功能: 求函数f 对变量 t从a 到b的定积分. 当a和b省略时求不定积分;当t省略时, 默认变量为(字母表上)最接近字母x的变量。例如:求函数f=a*x^2+b*x+c对变量x不定积分, 命令及结果为&& syms a b c x&& f=a*x^2+b*x+c;&& int(f)ans=1/3*a*x^3+1/2*b*x^2+c*x求函数f 对变量b不定积分, 命令及结果为&& int(f,b)ans=a*x^2*b+1/2*b^2*x+c*b求函数f 对变量x 从 1到5的定积分, 命令及结果为&& int(f,1,5)ans=124/3*a+12*b+4*c4、级数求和格式: symsum (s,t,a,b)功能:求表达式s中的符号变量t从第a项到第b项的级数和。例如: 求级数的前三项的和, 命令及结果为&& symsum(1/x,1,3) ans=11/67.2.3 化简和代换MATLAB符号运算工具箱中,包括了较多的代数式化简和代换功能,下面仅举出部分常见运算。simplify 利用各种恒等式化简代数式expand 将乘积展开为和式factor 把多项式转换为乘积形式collect 合并同类项horner 把多项式转换为嵌套表示形式例如:进行合并同类项执行&& syms x&& collect(3*x^3-0.5*x^3+3*x^2)ans=5/2*x^3+3*x^2)进行因式分解执行&& factor(3*x^3-0.5*x^3+3*x^2)ans=1/2*x^2*(5*x+6)7.2.4 解方程1、代数方程格式:solve (f,t)功能:对变量t 解方程f=0,t 缺省时默认为x 或最接近字母x 的符号变量。例如:求解一元二次方程f=a*x^2+b*x+c的实根,&& syms a b c x&& f=a*x^2+b*x+c;&& solve (f,x)ans=[1/2/a*(-b+(b^2-4*a*c)^ (1/2))][1/2/a*(-b-(b^2-4*a*c)^ (1/2))]2、微分方程格式:dsolve(‘s’, ’s1’, ’s2’,…, ’x’)其中s为方程;s1,s2,……为初始条件,缺省时给出含任意常数c1,c2,……的通解;x为自变量,缺省时默认为t 。例如:求微分方程的通解&& dsolve(‘Dy=1+y^2’)ans=tan(t+c1)7.3 优化工具箱及其应用在工程设计、经济管理和科学研究等诸多领域中,人们常常会遇到这样的问题:如何从一切可能的方案中选择最好、最优的方案,在数学上把这类问题称为最优化问题。这类问题很多,例如当设计一个机械零件时如何在保证强度的前提下使重量最轻或用量最省(当然偷工减料除外);如何确定参数,使其承载能力最高;在安排生产时,如何在现有的人力、设备的条件下,合理安排生产,使其产品的总产值最高;在确定库存时如何在保证销售量的前提下,使库存成本最小;在物资调配时,如何组织运输使运输费用最少。这些都属于最优化问题所研究的对象。MATLAB的优化工具箱被放在toolbox目录下的optim子目录中,其中包括有若干个常用的求解函数最优化问题的程序。MATLAB的优化工具箱也在不断地完善。不同版本的MATLAB,其工具箱不完全相同。在MATLAB5.3版本中,对优化工具箱作了全面的改进。每个原有的常用程序都重新编制了一个新的程序。除fzero和fsolve外都重新起了名字。这些新程序使用一套新的控制算法的选项。与原有的程序相比,新程序的功能增强了。在MATLAB5.3和6.0版本中,原有的优化程序(除fzero和fsolve外)仍然保留并且可以使用,但是它们迟早会被撤消的。鉴于上述情况,本书将只介绍那些新的常用的几个优化程序。
请登录后再发表评论!
7.1.1 分段线性插值所谓分段线性插值就是通过插值点用折线段连接起来逼近原曲线,这也是计算机绘制图形的基本原理。实现分段线性插值不需编制函数程序,MATLAB自身提供了内部函数interp1其主要用法如下:interp1(x,y,xi) 一维插值◆ yi=interp1(x,y,xi)对一组点(x,y) 进行插值,计算插值点xi的函数值。x为节点向量值,y为对应的节点函数值。如果y 为矩阵,则插值对y 的每一列进行,若y 的维数超出x 或 xi 的维数,则返回NaN。◆ yi=interp1(y,xi)此格式默认x=1:n ,n为向量y的元素个数值,或等于矩阵y的size(y,1)。◆ yi=interp1(x,y,xi,’method’)method用来指定插值的算法。默认为线性算法。其值常用的可以是如下的字符串。● nearest 线性最近项插值。● linear 线性插值。● spline 三次样条插值。● cubic 三次插值。所有的插值方法要求x是单调的。x 也可能并非连续等距的。正弦曲线的插值示例:&& x=0:0.1:10;&& y=sin(x);&& xi=0:0.25:10;&& yi=interp1(x,y,xi);&& plot(x,y,’0’,xi,yi)则可以得到相应的插值曲线(读者可自己上机实验)。Matlab也能够完成二维插值的运算,相应的函数为interp2,使用方法与interpl基本相同,只是输入和输出的参数为矩阵,对应于二维平面上的数据点,详细的用法见Matlab联机帮助。 7.1.2 最小二乘法拟合在科学实验的统计方法研究中,往往要从一组实验数据中寻找出自变量x 和因变量y之间的函数关系y=f(x) 。由于观测数据往往不够准确,因此并不要求y=f(x)经过所有的点 ,而只要求在给定点上误差按照某种标准达到最小,通常采用欧氏范数作为误差量度的标准。这就是所谓的最小二乘法。在MATLAB中实现最小二乘法拟合通常采用polyfit函数进行。函数polyfit是指用一个多项式函数来对已知数据进行拟合,我们以下列数据为例介绍这个函数的用法:&& x=0:0.1:1;&& y=[ -0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2 ]为了使用polyfit,首先必须指定我们希望以多少阶多项式对以上数据进行拟合,如果我们指定一阶多项式,结果为线性近似,通常称为线性回归。我们选择二阶多项式进行拟合。&& P= polyfit (x, y, 2)P=-9.3 -0.0317函数返回的是一个多项式系数的行向量,写成多项式形式为:为了比较拟合结果,我们绘制两者的图形:&& xi=linspace (0, 1, 100); %绘图的X-轴数据。&& Z=polyval (p, xi); %得到多项式在数据点处的值。当然,我们也可以选择更高幂次的多项式进行拟合,如10阶:&& p=polyfit (x, y, 10);&& xi=linspace (0, 1,100);&& z=ployval (p, xi);读者可以上机绘图进行比较,曲线在数据点附近更加接近数据点的测量值了,但从整体上来说,曲线波动比较大,并不一定适合实际使用的需要,所以在进行高阶曲线拟合时,“越高越好”的观点不一定对的。
7.2 符号工具箱及其应用在数学应用中,常常需要做极限、微分、求导数等运算,MATLAB称这些运算为符号运算。MATLAB的符号运算功能是通过调用符号运算工具箱(Symbolic Math Toolbox)内的工具实现,其内核是借用Maple数学软件的。MATLAB的符号运算工具箱包含了微积分运算、化简和代换、解方程等几个方面的工具,其详细内容可通过MATLAB系统的联机帮助查阅,本节仅对它的常用功能做简单介绍。7.2.1 符号变量与符号表达式MATLAB符号运算工具箱处理的对象主要是符号变量与符号表达式。要实现其符号运算,首先需要将处理对象定义为符号变量或符号表达式,其定义格式如下:格式1: sym (‘变量名’) 或 sym (‘表达式’)功能: 定义一个符号变量或符号表达式。例如:&& sym (‘x’) % 定义变量x为符号变量&& sym(‘x+1’) % 定义表达式x+1为符号表达式格式2: syms 变量名1 变量名2 …… 变量名n功能: 定义变量名1、变量2 ……、变量名 n为符号变量。例如:&& syms a b x t % 定义a,b, x,t 均为符号变量 7.2.2 微积分运算1、极限格式:limit (f, t, a, ‘left’ or ‘right’)功能:求符号变量t 趋近a 时,函数f 的(左或右)极限。‘left’ 表示求左极限,‘right’ 表示求右极限,省略时表示求一般极限;a省略时变量t 趋近0; t省略时默认变量为x ,若无x则寻找(字母表上)最接近字母x 的变量。例如:求极限的命令及结果为:&& syms x t&& limit ((1+2*t/x)^(3*x) , x, inf )ans=exp(6*t)再如求函数x / |x| ,当时的左极限和右极限,命令及结果为:&& syms x&& limit(x/abs(x), x, 0, ’left’) ans = -1&& limit(x/abs(x),x, 0, ’right’) ans = 1 2、导数格式: diff (f,t,n)功能: 求函数f 对变量 t的n 阶导数。当n省略时,默认 n=1;当t省略时,默认变量x, 若无x时则查找字母表上最接近字母x 的字母。例如:求函数f=a*x^2+b*x+c对变量 x的一阶导数, 命令及结果为&& syms a b c x&& f=a*x^2+b*x+c;&& diff(f)ans=2*a*x+b求函数f 对变量b的一阶导数(可看作求偏导), 命令及结果为&& diff(f,b) ans=x求函数f 对变量x的二阶导数, 命令及结果为&& diff(f,2) ans=2*a3、积分格式: int(f,t,a,b)功能: 求函数f 对变量 t从a 到b的定积分. 当a和b省略时求不定积分;当t省略时, 默认变量为(字母表上)最接近字母x的变量。例如:求函数f=a*x^2+b*x+c对变量x不定积分, 命令及结果为&& syms a b c x&& f=a*x^2+b*x+c;&& int(f)ans=1/3*a*x^3+1/2*b*x^2+c*x求函数f 对变量b不定积分, 命令及结果为&& int(f,b)ans=a*x^2*b+1/2*b^2*x+c*b求函数f 对变量x 从 1到5的定积分, 命令及结果为&& int(f,1,5)ans=124/3*a+12*b+4*c4、级数求和格式: symsum (s,t,a,b)功能:求表达式s中的符号变量t从第a项到第b项的级数和。例如: 求级数的前三项的和, 命令及结果为&& symsum(1/x,1,3) ans=11/67.2.3 化简和代换MATLAB符号运算工具箱中,包括了较多的代数式化简和代换功能,下面仅举出部分常见运算。simplify 利用各种恒等式化简代数式expand 将乘积展开为和式factor 把多项式转换为乘积形式collect 合并同类项horner 把多项式转换为嵌套表示形式例如:进行合并同类项执行&& syms x&& collect(3*x^3-0.5*x^3+3*x^2)ans=5/2*x^3+3*x^2)进行因式分解执行&& factor(3*x^3-0.5*x^3+3*x^2)ans=1/2*x^2*(5*x+6)7.2.4 解方程1、代数方程格式:solve (f,t)功能:对变量t 解方程f=0,t 缺省时默认为x 或最接近字母x 的符号变量。例如:求解一元二次方程f=a*x^2+b*x+c的实根,&& syms a b c x&& f=a*x^2+b*x+c;&& solve (f,x)ans=[1/2/a*(-b+(b^2-4*a*c)^ (1/2))][1/2/a*(-b-(b^2-4*a*c)^ (1/2))]2、微分方程格式:dsolve(‘s’, ’s1’, ’s2’,…, ’x’)其中s为方程;s1,s2,……为初始条件,缺省时给出含任意常数c1,c2,……的通解;x为自变量,缺省时默认为t 。例如:求微分方程的通解&& dsolve(‘Dy=1+y^2’)ans=tan(t+c1)7.3 优化工具箱及其应用在工程设计、经济管理和科学研究等诸多领域中,人们常常会遇到这样的问题:如何从一切可能的方案中选择最好、最优的方案,在数学上把这类问题称为最优化问题。这类问题很多,例如当设计一个机械零件时如何在保证强度的前提下使重量最轻或用量最省(当然偷工减料除外);如何确定参数,使其承载能力最高;在安排生产时,如何在现有的人力、设备的条件下,合理安排生产,使其产品的总产值最高;在确定库存时如何在保证销售量的前提下,使库存成本最小;在物资调配时,如何组织运输使运输费用最少。这些都属于最优化问题所研究的对象。MATLAB的优化工具箱被放在toolbox目录下的optim子目录中,其中包括有若干个常用的求解函数最优化问题的程序。MATLAB的优化工具箱也在不断地完善。不同版本的MATLAB,其工具箱不完全相同。在MATLAB5.3版本中,对优化工具箱作了全面的改进。每个原有的常用程序都重新编制了一个新的程序。除fzero和fsolve外都重新起了名字。这些新程序使用一套新的控制算法的选项。与原有的程序相比,新程序的功能增强了。在MATLAB5.3和6.0版本中,原有的优化程序(除fzero和fsolve外)仍然保留并且可以使用,但是它们迟早会被撤消的。鉴于上述情况,本书将只介绍那些新的常用的几个优化程序。
请登录后再发表评论!
%%%%%%%%%%%%%%%%%%x= poly(0, 'x');y= 3*x^5 + 4*x^3 -5*x^2 -7.2*x + 5;roots(y)%%%%%%%%%%%%%%%%%% ans  =    0.5967376  - 1.0066415    1.0190185  - 0.3045573 + 1.6217272i  - 0.3045573 - 1.6217272i
请登录后再发表评论!

我要回帖

更多关于 matlab怎么求定积分 的文章

 

随机推荐