matlab function定义函数,并且用fsolve求解这个函数。代码如下:
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab function定义函数,并且用fsolve求解这个函数。代码如下:相关的知识,希望对你有一定的参考价值。
function F=myfun(U)
a1=4.15;
a2=62.5;
n1=1.4681;
n2=1.4628;
lambda=1.55;
V=2*pi/lambda*a1*sqrt(n1^2-n2^2)
W=sqrt(V^2-U^2);
J=(-besselj(1,U)/U+besselj(0,U))/(U*bessel(1,U));
K=-besselk(0,W)-besselk(1,W)/W;
f1=J;
f2=(1+n2^2/n1^2)*K;
f3=(1+n2^2/n1^2)*K^2;
f4=4*n2^2/n1^2*K^2;
f5=4*(1/U^2+1/W^2)*(1/U^2+n2^2/n1^2*1/W^2);
F=f1-1/2*(-f2-(f3-f4+f5)^2)
U = fsolve(@(U) myfun(U),[0,2.0966923092])
%[0,2.0966923092]为U的取值范围,是这样调用fsolve和function函数吗???第一次用matlab,请高手解答。若方便,请将更改后的代码发至邮箱569409606@qq.com
x = fzero(fun,x0)
fun为待求函数,x0为初始值
没细看你的程方程
命令行输入:
U = fzero(@myfun,2)
PS:我觉得你可以采用二分法来求解。追问
已经解决,多谢
参考技术A 不是MATLAB画信号频谱的子函数
输入信号序列和采样率,该子函数可以画出该信号的频谱图。
function [f,spec,NFFT]=spec_fft_plot(sample,L,Fs) % 输入数据说明: % sample:信号序列; % L:信号序列的长度; % Fs:该信号的采样频率。 % 输出数据说明: % f:频率; % spec:频谱图纵坐标; NFFT = 2^nextpow2(L); % NFFT = L; spec=abs(fft(sample,NFFT)./L); flag = 1; if flag ==1 f = Fs/2*linspace(0,1,NFFT/2+1); spec=spec(1:length(f)); else f = Fs/2*linspace(-1,1,NFFT); spec = fftshift(spec); end
以上是关于matlab function定义函数,并且用fsolve求解这个函数。代码如下:的主要内容,如果未能解决你的问题,请参考以下文章
百度matlab有啥函数可以自己命名后保存wav音频文件?注意!!!