装matlab提示error1711,关于matlab的积分问题,积不出来怎么办

结果表明没有显示解,也就是没有解析解。你定义了太多的符号。采用数值积分当然可以积出来啦www.mh456.com防采集。

像这类曲线积分的复表达式很制难求出解析表达式的,bai没有办法。

你的问题很简单,只要在程序后面加一个,vpa()函数就能得到t1积分数值解。即 。。。。。。 t1=pz1.*sqrt((a-x)./(a+x)); s=int(t1,x,-a,a); vpa(s,10)

用quad(数值积分)来求。(int是符号积分) 编写函数M文件比如函数名f 那么quad(@f,1,2)就能求出1到2的积分

从计算定du积分的角度zhi来说,你没必要过于纠结dao解析表达式,其实只要知道这是一个函数,只要给定了自变量,都能够求出函数值来,就够了。例如,按照你的要求,上限是一个具体的数例如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);

第一次积分能积出是因为:上限H/m2是关于H的,可在积分 式中与别的项计算,所以能积出来。 在第二个中,c和d都是数,与含H的项不能合并计算,因此找不到明确的关于x的解析式。 把d=2.5改为d=H或2H,就都能积出了。

然后,只要你指定a的值,就可以计算出定积分的结果来,例如>> J(7500)ans =  842.4111追问J = @(a) quadl(@(t)subs(sqrt((diff(y,x))^2+1),x,t),a,b)这句是什么意思追答

没有初等原函数的初等函数还是很多的,你随便写一个通常就是.比如exp(-x^2).没有初等原函数的初等函数还是很多的,你随便写一个通常就是.比如exp(-x^2).没有初等原函数的初等函数还是很多的,你随便写一个通常就是.比如exp(-x^2).没有初等原函数的

我把这句分解开解释:

matlab求解定积求解不出来是什么原因是没有使用点运算符。具体操作如图所示。

用quad(数值积分)来求。(int是符号积分) 编写函数M文件比如函数名f 那么quad(@f,1,2)就能求出1到2的积分

首先,这一句subs(sqrt((diff(y,x))^2+1),x,t)

应该不难懂吧?曲线积分的微元是关于x的函数,将x替换成变量t。注意:x是符号变量,而t可以是一个数值类型的量,相应的,返回的结果也会是数值类型。

用quad(数值积分)来求。(int是符号积分) 编写函数M文件比如函数名f 那么quad(@f,1,2)就能求出1到2的积分

然后,往外一层,定义一个匿名函数(自变量为t)@(t)subs(sqrt((diff(y,x))^2+1),x,t)

函数的参数是t,这样,就把原来的符号表达式转换成了数值表达式(与t的数值有关)。

用quad(数值积分)来求。(int是符号积分) 编写函数M文件比如函数名f 那么quad(@f,1,2)就能求出1到2的积分

再向外一层,又定义一个关于积分下限a的匿名函数J = @(a) quadl(@(t)subs(sqrt((diff(y,x))^2+1),x,t),a,b)

也就是,对于上面的关于t的函数进行积分,积分限为a和b,其中b由前面的赋值语句给定,而a则是匿名函数的参数——要理解这个概念:定义一个匿名函数,就意味着匿名函数的参数对于函数内部来说是已知的量。

用quad(数值积分)来求。(int是符号积分) 编写函数M文件比如函数名f 那么quad(@f,1,2)就能求出1到2的积分

其实,匿名函数和普通函数的作用一样,只不过,其定义形式更为简单(不需要function声明),而且,可以在脚本中使用,这对于不存在复杂逻辑判断的表达式来说是非常方便的。我在最近回答你的提问时多次用到了匿名函数,如果不搞清楚这个概念,我写的那些代码你是很难看懂的。

你的积bai分表达式太复杂了du,sqrt(diff(y,x)^2+1)的符号表达式有zhi很多项,非线性dao特别强,matlab无法求出的版符号解,在这种情况权下,只能先求出sqrt(diff(y,x)^2+1)的符号表达式,然后转换为函数表达式,再用数值解法求解。例如,我修改建议如下: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);y1=sqrt((diff(y,x))^2+1)y2=inline(y1)quad(y2,0,1) 再0-1内的定积分结果:ans = 1.0035希望对你有帮组追问我可不可以上限是一个具体的数,不如说:8133.2,但下限是a,想求出表达式可以吗追答数值积分不能带有变量符号。主要是这个表达式sqrt((diff(y,x))^2+1),太复杂,y1 = (((515700000000000000*(x/5070245000 - 31/266855))/exp((x - 589000)^2/10140490000) + (1892*((2*x)/1640961 - 23560/1640961))/(5*exp((x - 11780)^2/1640961)) + (3251*(x/3251250 - 1711/650250))/exp((x - 8555)^2/6502500))^2 + 1)^(1/2) matlab对x积分积不出符号解,我也给你试过了,int解不出,数值解是一种近似解,只能是具体的数值

内容来自www.mh456.com请勿采集。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值