这个超越方程怎么解决?
有一个超越方程,我希望用matlab解出,求哪位给个方案。k*tan(a)=tan(k*a)
其中,a从pi/12,pi/11,pi/10...一直变化到pi/3,求解相应的k值。
回复
这个问题只要作一个循环,用 fzero 就可以求解. 但是fzero的语法是 X = FZERO(FUN,X0)其中x0表示寻找x0附件的根。这个要猜测呀,麻烦高手把m文件做出来看看哈。
回复
这个问题只要作一个循环,用 fzero 就可以求解.
回复
给定求解区间,k向量即给定;初值可以这样选取:
内循环求解时,每次以k(n)为初值,这样就可以依次求出给定区间上的所有根。
求救,高手帮我调调这个程序吧
就是为了求解上面的问题,我编了一下程序,但是总出错,请高手指导一下!主程序:ii=0;
for i=12:-1:3
ii=ii+1;
a=pi/i;
j=0;
k=fzero(tzero,j);
while k==0
j=j+1;
k=fzero(tzero,j);
end
kk(ii)=k;
end
子函数:function tzero(k,a)
y=k*tan(a)-tan(k*a);
出错信息:??? Error using ==> tzero
Too many output arguments.
Error in ==> C:\MATLAB6p5\work\main.m
On line 6==> k=fzero(tzero,j);
回复
你犯了一个低级错误: "function tzero(k,a)" 应改为 "function y=tzero(k,a)".另:再重复一遍"给定求解区间,k向量即给定;初值可以这样选取:内循环求解时,每次以k(n)为初值,这样就可以依次求出给定区间上的所有根。"
[ 本帖最后由 xjzuo 于 2006-11-16 23:52 编辑 ] 原帖由 northwood77 于 2006-11-15 00:11 发表
但是fzero的语法是 X = FZERO(FUN,X0)
其中x0表示寻找x0附件的根。这个要猜测呀,麻烦高手把m文件做出来看看哈。
回复
这个问题只要作一个循环,用 fzero 就可以求解.
你用x = fzero(fun,x0,options,P1,P2,...)格式调用吧
其中P1等是用户自定义的传递变量
在这里你就可以用来传递a
页:
[1]