积分用matlab积不出来怎么办啊,有没有人帮我看看解答看我应该怎么改?
现在要做的是这个积分公式,得到y关于t的关系式。一开始我用解析解,得到于是我又尝试数值解,得到怎么办才能把它积分积出来啊????symsxty;>>t=89:170;>>...
现在要做的是这个积分公式,得到y关于t的关系式。
一开始我用解析解,得到
于是我又尝试数值解,得到
怎么办才能把它积分积出来啊????
syms x t y;
>> t=89:170;
>> myfun=@(x)(5*10^(-8)/log(1+sqrt(pi*10^(-8)*(t-89-x/2.1)/25/10^(-3))));
>> q=quad(myfun,0,2*(t-89))
??? Error using ==> quad at 70
The limits of integration must be scalars. 展开
一开始我用解析解,得到
于是我又尝试数值解,得到
怎么办才能把它积分积出来啊????
syms x t y;
>> t=89:170;
>> myfun=@(x)(5*10^(-8)/log(1+sqrt(pi*10^(-8)*(t-89-x/2.1)/25/10^(-3))));
>> q=quad(myfun,0,2*(t-89))
??? Error using ==> quad at 70
The limits of integration must be scalars. 展开
1个回答
展开全部
你这不是数值积分,对x积分之后是含有t的表达式。所以先对t赋值然后再数值积分。
更多追问追答
追答
你已经放弃符号积分了(无法计算显式表达式),用数值积分,所以就不要定义syms x t y了,毕竟只要数值对就好。(清楚所有变量可以用clear)
quad是标量求积分的函数,所谓标量就是只能处理一个数,不能处理一个向量;非要算很多,只能在for循环中一个个计算。所以t=89,只等于一个数。
不理解函数怎么这么特殊:
myfun=@(x)(5*10^(-8)/log(1+sqrt(pi*10^(-8)*(t-89-x/2.1)/25/10^(-3))))
myfun =
@(x)(5*10^(-8)/log(1+sqrt(pi*10^(-8)*(t-89-x/2.1)/25/10^(-3))))
>> myfun(2)
ans =
2.5000e-08 - 4.5705e-05i
定义完函数,代入2竟然出现虚数,这一点我无法理解,暂时还没有继续迭代,你也分析下吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询