【求助】matlab如何求解sinc函数的反函数

【求助】matlab如何求解sinc函数的反函数,第1张

for k=1:length(y)

f=@(x)y(k)x-sin(x);

ezplot(f);%画图,观察函数零点在x0(k)附近

z(k)=fzero(f,x0(k));%调用fzero函数找零点

endsxf2012(站内联系TA)%%以y为一个数据为例,假设y值为y0,则令

%f=@(x)y0-sin(x)/x;%%用命令:%ezplot(f);

%%画图,观察函数,随便找零点附近的一个坐标x0

%% 则,要求的零点为

%z=fzero(f,x0);%调用fzero函数找零点

%比如y0=06,通过令

f=@(x)06-sin(x)/x;%画图ezplot(f)hold onplot(,,'r')

%观察知,零点在-2和2附近,用

z1=fzero(f,-2)

%计算得零点为x=-166

z2=fzero(f,2)

%计算得零点为x=166

这是y=sinx/x的曲线图。我的情况是y的值是已知的,我需要把x的全部值求出来,即想通过反函数来求得。但是问题是,y=1时x是一个值,但y=08是两个值,y=01就是许多值。

这是y=sinx/x的曲线图。我的情况是y的值是已知的,我需要把x的全部值求出来,即想通过反函数来求得。但是 在你画的区间上,函数不是单调的,所以其反函数不存在的,或者说是个多值函数。

数值的精度低,会有误差的。用字母的就好了。

例如下面解同样的精度数值是不一样的。对于字母的函数finverse用两次

会一样;数值的会有累计误差。

p=[1 0 -2 -5]

r=roots(p)

p =

1 0 -2 -5

r =

20946

-10473 + 11359i

-10473 - 11359i

syms x;

A=solve('x^3-2x-5')

vpa(A)

ans =

20945514815423265914823865405793

11359398890889281862454926290294i - 10472757407711632957411932702897

- 11359398890889281862454926290294i- 10472757407711632957411932702897

帮你编写了一个求正态分布的分布函数的反函数的程序,请保存成inversNormCDFm。基本思路是二分法求方程的解。

function x=inversNormCDF(y)

xup=-100;

xlow=100;

for i=1:100

xmiddle=(xup+xlow)/2;

if normcdf(xmiddle)>y

xlow=xmiddle;

elseif normcdf(xmiddle)<y

xup=xmiddle;

else

x=xmiddle;

return

end

end

x=(xup+xlow)/2;

保存好了以后,在matlab命令行里输入如下命令,可以得到你想要的结果。

x=inversNormCDF(06)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/11670738.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存