f=load('1.txt');j=size(f,1); TolSh=cell(j,1);
for i=1:j
c1=f(i,1);c2=f(i,2);c3=f(i,3);o=f(i,4);Vp=f(i,5);Vs=f(i,6);p=f(i,7);
Km=0.5*(c1*36.6+c2*76+c3*6.85+(c1/36.6+c2/76+c3/6.85)^(-1));
Um=0.5*(c1*45+c2*26+c3*20.9+(c1/45+c2/26+c3/20.9)^(-1));
a=sqrt(Um/(Km+4/3*Um));G=0.9552+0.0448*exp(-c3/0.06714); m=1;
n=10^(0.426-0.235*log10(p))/m;syms Sh;
y=Vp*(G*a*(1-o)^n+sqrt(3.3*Sh/(((1-Sh)/2.29+Sh/7.9)^(-1)+4/3*3.3*Sh))*o*Sh)-Vs;
Sh=solve(y,Sh);TolSh{i}=subs(Sh)';
end
TolSh %% TolSh=cell2mat(TolSh) 终于弄出来了,感谢ChaChing老师的热心帮助!其实程序已经对了,只是1.txt行数太多,使程序无法完成。我将1.txt分成两半(2.txt和3.txt),分别载入到matlab中进行计算,可以得出结果,最后再将结果整合在一块就行了。在这里,我要将鲜花送给我们的ChaChing老师,表示最真诚的感谢!
f=load('1.txt');j=size(f,1); TolSh=zeros(j,2);
for i=1:j
c1=f(i,1);c2=f(i,2);c3=f(i,3);o=f(i,4);Vp=f(i,5);Vs=f(i,6);p=f(i,7);
Km=0.5*(c1*36.6+c2*76+c3*6.85+(c1/36.6+c2/76+c3/6.85)^(-1));
Um=0.5*(c1*45+c2*26+c3*20.9+(c1/45+c2/26+c3/20.9)^(-1));
a=sqrt(Um/(Km+4/3*Um));
G=0.9552+0.0448*exp(-c3/0.06714);
m=1;
n=10^(0.426-0.235*log10(p))/m;
syms Sh;
y=Vp*(G*a*(1-o)^n+sqrt(3.3*Sh/(((1-Sh)/2.29+Sh/7.9)^(-1)+4/3*3.3*Sh))*o*Sh)-Vs;
Sh=solve(y,Sh);
TolSh(i,:)=subs(Sh);
end
TolSh 下午忙一些事, 忘了说明一些事!
我使用11F程序跑LZ的资料, 报错又不同12F, 楼主是否又不小心搞乱了! 不会无解, 是解的数目不同!(v5.3)
刚刚我又试过v6.5 & v7.2, v6.5与v5.3相同情况, 但v7.2解的数目就相同了, 但为复数根!
因LZ的原始问题不是很清楚, 无法确定LZ的解应为如何! LZ自己判断! 谢谢!有的解为复数根是正常的,我用的V7.0版本,解的数目也是相同的,但计算的行数多了总是报错,后来将1.txt文件改成两个文本后再单独用17F的程序运行就好了。真正原因我也没搞懂。无论如何,谢谢ChaChing老师和各位的指导! LZ太客气! 个人都不太好意思了!
说真格的, 没有任何版主或网友有义务帮忙解决问题!
只是刚好你的话题, 个人刚好有兴趣试试并学习!
所以发问是个技巧, 要让人有兴趣愿意花时间试! 毕竟没有人有义务
还有一个问题, 若可能的话, 可否请LZ约略讲讲原始问题是甚? 到底是要解决什麽工程问题? 大家互相学习! 还有一个问题, 若可能的话, 可否请LZ约略讲讲原始问题是甚? 到底是要解决什麽工程问题? 大家互相学习!
解决的问题是利用岩石物性数据计算海底沉积物中的天然气水合物含量。我们在实验室内模拟海底温度压力环境,在沉积物孔隙中合成水合物。在实验过程中实时探测声速和含水量的变化情况,从而建立水合物含量(由孔隙度减去含水量算出)与声速的关系,并在此基础上检验前人的速度模型或建立新的速度模型。最后,利用合适的速度模型来计算某一海域的水合物蕴藏情况。
我上面是利用速度模型计算海底沉积物中的水合物含量,同行或感兴趣的朋友可以多多交流,相互学习!以后可能还会碰到很多问题,到时再向大家求教。谢谢!
[ 本帖最后由 airhoo1 于 2009-2-14 21:57 编辑 ]
页:
1
[2]