结果表明没有显示解,也就是没有解析解。你定义了太多的符号。采用数值积分当然可以积出来啦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请勿采集。