24小时热门版块排行榜    

CyRhmU.jpeg
查看: 422  |  回复: 1

bwklkx

铜虫 (小有名气)

[求助] 关于非线性方程 已解决

用matlab解非线性方程的时候建立了两个m文件。
————————————————————————————————————————
以下是两个自定义的m文件。

%二分法求解方程
function [x,k]=demimethod(a,b,f,emg)
% a,b :求解区间的两个端点
% f :所求方程的函数名
% emg :精度指标
% x:所求近似解
% k: 循环次数
fa=feval(f,a);
fab=feval(f,(a+b)/2);
k=0;
while abs(b-a)>emg
if fab==0
x=(a+b)/2;
return;
elseif fa*fab<0
b=(a+b)/2;
else
a=(a+b)/2;
end
fa=feval(f,a);
fab=feval(f,(a+b)/2);
k=k+1;
end
x=(a+b)/2;

------------------------------------------------------------------------------------------------------
第二个文件,是建立函数的文件。
function fxz1=abcd(t)

xz=t

K11=14.8;
K33=15.8;
K=(K11-K33)/K33;
E0=8.85; %空气的介电常数
Ev=9.72; %垂直介电常数
Ep=4.11; %平行介电常数
E=Ev-Ep; %介电各向异性
r=E/Ep;
Vth=pi*sqrt(K33/(E*E0)); %阈值电压
V=10; %施加电压
d=10000; %液晶盒厚度单位nm
no=1.484;
ne=1.636;
xo=0;
l=532;%入射光波长,nm
ZD=2;%衍射屏距观察屏距离,m
xm=1.5707;
X=(sin(xm))^2;
sxm1=12.665;


a=xo;%此处修改预倾角
b=xz;
n1=1000;%此处修改多少小区间数目
% n1,n分别为小区间、大区间的个数。
% h为其步长。
% s1,s2为函数在大区间、小区间的端点的函数值之和。
n=n1/2;
h=(b-a)/n;
for i=1:n
    Xk(i)=a+(i-1)*h;
end
s1=0;
for i=2:n
    f1(i)=1/(Xk(i)*Xk(i)-1);
    s1=s1+f1(i);
end
s2=0;
for i=1:n
    Xl(i)=Xk(i)+h/2;
    f2(i)=1/(Xl(i)*Xl(i)-1);
    s2=s2+f2(i);
end
sz=((b-a)/6)*(sqrt((1+r*X*sin(a)^2)*(1+K*X*sin(a)^2)/(1-X*sin(a)^2)...
    +4*s2+2*s1...
    +sqrt((1+r*X*sin(b)^2)*(1+K*X*sin(b)^2)/(1-X*sin(b)^2))));
oo=(0:0.1:0.5);
for i=1:6
fxz1=0.5*sz/sxm1-oo(i);
end
———————————————————————————————————————

下一步是执行的命令:t=demimethod(-pi/2,pi/2,'abcd',10^-7);
想要得到的是t的6个解,但是运算得出的只是一个解。运算出的是fxz1=0.5*sz/sxm1-oo(6)的解。请问如何修改文件,能够解出fxz1=0.5*sz/sxm1-oo(i)所有循环的解,而不只是最后一个循环的解。


已解决,谢谢。

[ Last edited by bwklkx on 2011-6-30 at 20:53 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
2楼2011-07-06 14:32:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 bwklkx 的主题更新
信息提示
请填处理意见