求助:想把这个程序改成不用数组运算的。谢谢各位了
			 
			 
			
		
		
		
			
			这是一个扫描求根的程序,因为最后的式子有很大,所以不想用数组运算 想改造成循环解决 实在是不知道怎么调整,整了两天也没结果,求助各位大侠 
function y=funs(w) 
      %y=2.*w.^3+2.*w.^2-3.*w-3 
y=1987416747626931/17592186044416*sinh(3389730675253695/144115188075855872*(w.^2).^(1/4)).*sin(3389730675253695/144115188075855872*(w.^2).^(1/4))./(w.^2).^(1/2)   %(这个式子 还是比较小可以用数组运算,但是我算的另一个更多 比这个还大 加数组不好算) 
 
 
function [k,w]=yuanpinlv(a,b,h,tol) 
% 输入的量--- a和b是闭区间[a,b]的左、右端点; 
%---h是步长; 
%---tol是预先给定的精度. 
% 运行后输出的量---k是搜索点的个数; 
%  --- r是方程 在[a,b]上的实根的近似值,其精度是tol; 
X=a:h:b;Y=funs(X);n=(b-a)/h+1;m=0; 
X(n+1)=X(n);Y(n+1)=Y(n); 
for k=2:n 
   X(k)=a+k*h;Y(k)=funs(X(k)); %程序中调用的funs.m为函数 
sk=Y(k)*Y(k-1); 
 if sk<=0, 
    m=m+1;w(m)=X(k); 
 end 
 xielv=(Y(k+1)-Y(k))*(Y(k)-Y(k-1)); 
 if (abs(Y(k))<tol)&( xielv<=0) 
   m=m+1;w(m)=X(k); 
 end 
end 
 
[k,w]=yuanpinlv(900,20000,10,0.0001) 
 
谢谢 各位了
		 
		
		
		
		
		
		
		
	 |