资源描述:
《实验7 非线性方程求解.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验7非线性方程求解实验目的:1.1. 掌握用MATLAB软件求解非线性方程和方程组的基本用法,并对结果作出初步的分析2.2. 练习用非线性方程组建立实际问题的模型并进行求解实验内容:6-3.(1)小张夫妇以按揭方式贷款买了一套价值20万的房子,首付了5万元,没有还款1000元,15年还清。问贷款利率是多少?(2)某人与贷款50万元购房,他咨询了两家银行,第一家银行开出的条件是每月还4500元,15年还清;第二家银行开出的条件是每年还45000元,20年还清。从利率方面看,那家银行较优惠(简单的假设年利率=月利率*12)?解:(1)问题的建模:假设需付的
2、款为,每月付款b元,经n年后还清,付款利率为r,于是对与按揭付款的方式不难列出以下的方程组:于是有:如果对于年利率则不用考虑第一次要付的钱,所以易得:按照上述的关系得到了本题的m文件:functiony=rate(x,a0,n,b,opt)ifopt>=0%如果是〉0则按照月利率算y=a0*(1+x)^(n*12)-b*((1+x)^(n*12)-1)/x;%计算月利率,elsey=a0*(1+x)^n-b*((1+x)^n-1)/x;%计算年利率end主文件:clearall;a0=150;b=1;n=15;a1=500;b1=4.5;
3、n1=15;a2=500;b2=45;n2=20;x0=1;[x1,fv1,ef1,out1]=fzero(@rate,x0,[],a0,n,b,1);%对第一题小张夫妇买方月利率问题进行求解[x2,fv2,ef2,out2]=fzero(@rate,x0,[],a1,n1,b1,1);%对二问第一家银行的利率求解[x3,fv3,ef3,out3]=fzero(@rate,x0,[],a2,n2,b2,-1);%对二问第二家银行的利率求解formatlong;[x1,x2,x3]%输出其中x1匙小张夫妇买房的月利率,x2是第一家银行的月利率,x3市第二家
4、银行的年利率x2=x2*12,x3%比较第一家与第二家银行的利率大小 运行MATLAB结果:ans= 0.002081163889460.005850792582840.06394877709239x2= 0.07020951099414 x3= 0.06394877709239结论:小张夫妇的贷款的银行的月利率是0.21%,第一家银行的年利率是7.02%,第二家银行的年利率是6.39%,所以第二家银行的利率较低。6-6.给定4种物质对应的参数和相互作用矩阵如下:=18.607,=15.841,=20.443,=19.293;=2
5、643.31,=2755.64,=4628.96,=4117.07;=239.73,=219.16,=252.64,=227.44;Q=[1.00.1922.1691.6110.3161.00.4770.5240.3770.3601.00.2960.5240.2822.0651.0]在压强=760mmHg下,为了形成均相共沸混合物,温度和组分分别是多少?请尽量找出所有可能的解。 解:均相共沸混合物的组分问题:模型:所谓的共沸混合物,使之有两种或以上物质组成的液体混合物,当在某种压力下背蒸馏后或局部气化时,在气体状态下和在液体状态下保持相同的组分。设该混合
6、物由n个可能的祖坟组成,组分i所占的比例为,则:(1)均相共沸混合物一概满足问题条件,即公沸混合物的每个组分在气体状态下和在液体状态下具有相同的化学势,在压强P不大的条件下,这个条件可以表示为:(2)(2)式中是组分的饱和汽相压强,与温度T有关,可以根据如下表达式确定:(3)其中为常数。(2)式中是组分i的液相活度系数,可以根据如下的表达式确定:(4)其中表示组分i和组分j的交互作用参数,构成交互作用的矩阵Q,Q不一定是对称阵。对(2)式两边取对数,并将(3),(4)式代入:(5)只有当组分i参与到该共沸混合物中时才需要满足(5),所以将(5)式改写为于
7、是从上面的分析可以对本题进行解答,对于本题参数:a=[18.607,15.841,20.443,19.293]';b=[2643.31,2755.64,4628.96,4117.07]';c=[239.73,219.16,252.64,227.44]';交互矩阵Q=[1.00.1922.1691.6110.3161.00.4770.5240.3770.361.00.2960.5240.2822.0651.0];于是:便可以得到m文件:functionf=azeofun(XT,n,P,a,b,c,Q)x(n)=1;fori=1:n-1x(i)=XT(i);
8、x(n)=x(n)-x(i);endT=XT(n);p=log(P);fori=