发布网友
共1个回答
热心网友
fsolve不行你可以试试fzero,另外,程序总是采用就近搜索的办法求解的,所以解的情况和你的初始值很有关系,再说你这里还有tan函数,搞不好你取了个初始值导致它迭代到90度附近的区域也未可知。你最好还是说下具体报的什么错比较好,这样有针对性。下面是我给的一个函数程序:
function a = myfun(t,H,h,k,c,x0)
% x0 is initial point.
g = @(ksi,t,H,h,k,c) sqrt(3)/4*H/k/h*tan(h^2*k*(c*t-ksi))-ksi;
a = fzero(@(ksi) g(ksi,t,H,h,k,c),x0);
这就是函数的.m文件内容,你把它存到当前目录下,然后运行myfun,输入你的参数数值就行了。我简单试了myfun(.98,1,2,3,4,5),可以算,-0.0032。
热心网友
fsolve不行你可以试试fzero,另外,程序总是采用就近搜索的办法求解的,所以解的情况和你的初始值很有关系,再说你这里还有tan函数,搞不好你取了个初始值导致它迭代到90度附近的区域也未可知。你最好还是说下具体报的什么错比较好,这样有针对性。下面是我给的一个函数程序:
function a = myfun(t,H,h,k,c,x0)
% x0 is initial point.
g = @(ksi,t,H,h,k,c) sqrt(3)/4*H/k/h*tan(h^2*k*(c*t-ksi))-ksi;
a = fzero(@(ksi) g(ksi,t,H,h,k,c),x0);
这就是函数的.m文件内容,你把它存到当前目录下,然后运行myfun,输入你的参数数值就行了。我简单试了myfun(.98,1,2,3,4,5),可以算,-0.0032。
热心网友
fsolve不行你可以试试fzero,另外,程序总是采用就近搜索的办法求解的,所以解的情况和你的初始值很有关系,再说你这里还有tan函数,搞不好你取了个初始值导致它迭代到90度附近的区域也未可知。你最好还是说下具体报的什么错比较好,这样有针对性。下面是我给的一个函数程序:
function a = myfun(t,H,h,k,c,x0)
% x0 is initial point.
g = @(ksi,t,H,h,k,c) sqrt(3)/4*H/k/h*tan(h^2*k*(c*t-ksi))-ksi;
a = fzero(@(ksi) g(ksi,t,H,h,k,c),x0);
这就是函数的.m文件内容,你把它存到当前目录下,然后运行myfun,输入你的参数数值就行了。我简单试了myfun(.98,1,2,3,4,5),可以算,-0.0032。
热心网友
fsolve不行你可以试试fzero,另外,程序总是采用就近搜索的办法求解的,所以解的情况和你的初始值很有关系,再说你这里还有tan函数,搞不好你取了个初始值导致它迭代到90度附近的区域也未可知。你最好还是说下具体报的什么错比较好,这样有针对性。下面是我给的一个函数程序:
function a = myfun(t,H,h,k,c,x0)
% x0 is initial point.
g = @(ksi,t,H,h,k,c) sqrt(3)/4*H/k/h*tan(h^2*k*(c*t-ksi))-ksi;
a = fzero(@(ksi) g(ksi,t,H,h,k,c),x0);
这就是函数的.m文件内容,你把它存到当前目录下,然后运行myfun,输入你的参数数值就行了。我简单试了myfun(.98,1,2,3,4,5),可以算,-0.0032。