用matlab求反函数,求不出来是怎么回事,请帮我看一下是什么问题 数值的精度低,会有误差的。用字母的就好了。例如下面解同样的精度数值是不一样的。对于字母的函数finverse用两次会一样;数值的会有累计误差。p=[1 0-2-5]r=roots(p)p=1 0-2-5r=2.09461.0473+1.1359i1.0473-1.1359isyms x;A=solve('x^3-2*x-5')vpa(A)ans=2.09455148154232659148238654057931.1359398890889281862454926290294*i-1.04727574077116329574119327028971.1359398890889281862454926290294*i-1.0472757407711632957411932702897
求助:matlab中的求一个反函数? t=solve('(c/2+k)*exp(-m*t)+(d-k)*exp(-m*t)=a/b+c/2','t')t=log((2*a+c*b)/b/(c+2*d))/m
用matlab求反函数 ^求反函数,设变量2113为y,则展开之后5261为关于x的四次方程,可以求出解析解。代码4102如下1653:syms xk=sym(1000);h=sym(0.20);l=sym(0.125);e=k.*h./(h.^2+(x+l).^2)-k.*h./(h.^2+(x-l).^2);syms yx=solve(e-y,x)color='rgbm';for i=1:length(x)h=ezplot(x(i),[-3200 3200]);set(h,'color',color(i))hold onendaxis([-3500 3500-0.8 0.8])title('')lstr=arrayfun(@(i){sprintf('x(%i)',i)},1:4);legend(lstr{:})可以求出x关于y的表达式。上述代码绘制出来的图形:由图可见,x(2)、x(3)是所需的反函数(按不同区间取不同的表达式)。由于x的表达式过于复杂,这里不列出。上面说到求解析解的方法,得到的表达式过于复杂而不方便直接应用。更实用的方法是采用多项式拟合(也就是你所说的幂级数)。多项式拟合的参考代码如下:n=7;p=polyfit(e,x,n);x1=polyval(p,e);plot(e,x,e,x1,'r-')axis tightlegend('原始数据','拟合函数')其中n为拟合多项式的阶次,可根据需要选择。p为拟合多项式的系数。取n=7时的效果如下图:当然,也可以利用MATLAB绘图窗口中的Basic Fitting(位于Tools菜单)来对多种阶次的拟合结果进行比较。