当前位置:文档之家› 清华大学数学实验报告6

清华大学数学实验报告6

实验六非线性方程求解实验目的1. 掌握用matlab软件求解非线性方程和方程组的基本用法, 并对结果做初步分析.2. 练习用非线性方程和方程组建立实际问题的模型并进行求解.实验内容题目3(1)小张夫妇以按揭方式贷款买了1 套价值20 万元的房子,首付了5 万元,每月还款1000 元,15 年还清。

问贷款利率是多少?(2)某人欲贷款50 万元购房,他咨询了两家银行,第一家银行开出的条件是每月还4500 元,15 年还清;第二家银行开出的条件是每年还450000 元,20 年还清。

从利率方面看,哪家银行较优惠(简单地假设年利率=月利率×12)?建立模型:设房价为b,首付款为b0,银行按照月利率(复利)来计算,月利率为r,月付款(月末支付)为a,共需要支付的月数为n。

根据经济学中资金的时间价值概念,可以得到:房价在n个月之后的实际价值为:b(1+r)n按揭购房期间交的所有款项在第n个月末的实际价值为:b0(1+r)n+a(1+r)n−1+(1+r)n−2+⋯+1=b0(1+r)n+a×(1+r)n−1由于在第n个月末还清了贷款,因此上述两个时间价值相等,则得到下面的关系式,即为解答此问题的方程:b(1+r)n=b0(1+r)n+a×(1+r)n−1即:(b−b0)(1+r)n−a×(1+r)n−1=0(1)代入已知条件:b=200000,b0=50000,a=1000,n=180,利用MATLAB解此非线性方程,经过简单的估测之后,给定初始值为r0=0.001,得到结果为:r=0.0020812,即贷款月利率为0.20812%。

(2)I.第一家银行相应的已知条件为:b=500000,b0=0,a=4500,n=180,利用MATLAB计算,经过简单的估测之后,给定初始值为r0=0.005,得到结果为:r=0.0058508,即这家银行的贷款月利率为0.58508%。

II.第二家银行由于按照年利率计算,因此方程中相应参数的意义有所改变,故已知条件为:b=500000,b0=0,a=45000,n=20,利用MATLAB计算,经过简单的估测之后,给定初始值也为r0=0.06,得到结果为。

r=0.063949,即这家银行的贷款年利率为6.3949%,则月利率为0.53291%实验结果:以月利息为比较条件,第二家银行比较优惠。

结果分析:(1)本题第二问里,将第二家银行的年利率近似看作是月利率的12倍,会造成一定的误差,若将计算结果0.53291%代入方程,可以得出每月需交付3697元,这样一年需要交付44364元,比题目中的45000元略小一些,说明计算得到的月利率偏小,但不至于影响最终的判断。

问题6:给定4种物质对应的参数ai, bi, ci和交互作用矩阵Q如下:a1=18.607, a2=15.841, a3=20.443, a4=19.293;b1=2643.31, b2=2755.64, b3=4628.96, b4=4117.07;c1=239.73, c2=219.16, c3=252.64, c4=227.44;Q=[ 1.0 0.192 2.169 1.6110.316 1.0 0.477 0.5240.377 0.360 1.0 0.2960.524 0.282 2.065 1.0]在压强p=760mmHg下,为了形成均相共沸混合物,温度和组分分别是多少?请尽量找出所有的可能解。

解: 设该混合物由n个可能的组分组成,组分i所占的比例为xi(i=1, … , n),则∑_(i=1)^n▒〖x(i)〗=1, xi>=0 -------(1)xi((b(i))/(T+c(i))+ln(∑_(j=1)^n▒〖x(j)〗q(ij))+∑_(j=1)^n▒(x(j)q(ij))/(∑_(k=1)^n▒〖x(k)q(jk)〗) -1-aij+lnP)=0, i=1, … , n.-------(2)qij表示组分i与组分j的交互作用参数,qij构成交互作用矩阵Q程序:function f =azeofun(XT,n,P,a,b,c,Q)x(n)=1;for i=1:n-1x(i)=XT(i);x(n)=x(n)-x(i);endT=XT(n);p=log(P);for i=1:nd(i)=x*Q(i,1:n)';dd(i)=x(i)/d(i);endfor i=1:nf(i)=x(i)*(b(i)/(T+c(i))+log(x*Q(i,1:n)')+dd*Q(1:n,i)-a(i)-1+p);endn=4;P=760;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.0 0.192 2.169 1.6110.316 1.0 0.477 0.5240.377 0.360 1.0 0.2960.524 0.282 2.065 1.0];XT0=[0.25,0.25,0.25,50];[XT,Y]=fsolve(@azeofun,XT0,[],n,P,a,b,c,Q)结果:XT=[0.0000 0.5858 0.4142 71.9657]Y= 1.0e-006 *[-0.0009 -0.0422 0.4428 -0.4701]分析:在上面计算中,对初值XT0的取法是:4种物质各占1/4,温度为50。

C。

初值解XT0 x1 x2 x3 x4 T[0.25,0.25,0.25,50] 0.0000 0.5858 0.4142 0.0000 71.9657[0.7,0.9,0.5,100] 0.0000 1.1425 0.0182 -0.1607 87.2356[0,1,0,72] 0.0000 0.7803 0.0000 0.2197 76.9613[0,0,1,72] -0.0000 0.0000 1.0000 0.0000 82.5567[0,0,0,90] -0.0000 -0.0000 -0.0000 1.0000 97.7712[1,0,0,30] 1.0000 -0.0000 -0.0000 0.0000 -18.9700………………………………分析:(i) 第一、三行解分别代表了组分二、三与组分二、四形成的均相共沸物,其组成与温度均符合要求;(ii)第四、五、六行解中均只有一种组分,违背了均相共沸物是由两种或两种以上物质组成的液体混合物的定义,故这些解均不符合要求;(iii)第二行第四种组分为负数,不符合要求。

即符合要求的均相共沸物的组成与温度分别是(i)第一种组分占0,第二种组分占0.5858,第三种组分占0.4142,最后一种组分占0,温度为71.9657℃;(ii)第一种组分占0,第二种组分占0.7803,第三种组分占0,最后一种组分占0.2197,温度为76、问题8:假设商品在t时刻的市场价格为p(t),需求函数为D(p(t))=c-dp(t);(c,d>0),而生产方的期望价格为q(t),供应函数S(q(t)),当功效平衡是S(q(t))=D(p(t))。

若期望截个与市场价格不符,商品市场部均衡,生产方t+1时期的期望价格将会调整方式为q(t+1)-q(t)=r[p(t)-q(t)];(0<r<1),以P(t)=[c-D(p(t))]/d=[c-S(q(t))]/d代入,得到关于q(t)的递推方程,设S(x)=arctan(ux),u=4.8,d=0.25,r=0.3,以c为可变参数,讨论期望价格q(t)的变化规律,是否有混沌现象出现,并找出前几个分叉点,观察分叉点的极限趋势是否符合Feigenbaum常数揭示的规律。

模型建立:q的递推关系式如下:q(t+1)=q(t)+r[p(t)-q(t)]=q(t)+r*[c-arctan(uq(t))/d-q(t)]=(1-r)q(t)+r*c/d-r* arctan(uq(t))/d模型求解:建立chaos.m的源文件:function chaos(iter_fun,x0,r,n)kr=0;for rr=r(1):r(3):r(2)kr=kr+1;y(kr,1)=feval(iter_fun,x0,rr);for i=2:n(2)y(kr,i)=feval(iter_fun,y(kr,i-1),rr);endendplot([r(1):r(3):r(2)],y(:,n(1)+1:n(2)),'k.');建立iter01.m的源文件:function y=iter01(x,c)u=4.8,d=0.25,r=0.3;y=(1-r)*x+r*c/d-r*atan(u*x)/d;主程序:chaos(@iter01,0.5,[0.2,1.6,0.01],[100,200])得到的结果如下:改变chaos.m中的坐标,我们可得到相应分叉点为:1.086 0.953 0.907 0.897 (b2-b1)/(b3-b2)=2.8913(b2-b2)/(b4-b3)=4.6000由此得出,当n越大时比值越接近于Feigenbaum常数:4.6692,因此满足此规律。

模型检验:建立iter02.m的源文件:function y=iter02(c)u=4.8;d=0.25;r=0.3;q(1)=0.5;for n=1:1:50q(n+1)=(1-r)*q(n)-r*atan(u*q(n))/d+r*c/d;endN=1:1:51;plot(N,q);主程序如下:>> figure;iter02(1.1);>> figure;iter02(1);>> figure;iter02(0.93);>> figure;iter02(0.9);>> figure;iter02(0.7);得到的结果依次如下:C=1.1,模型收敛于一点当c=1:模型在两点之间震荡。

当c=0.93:模型在4点之间震荡。

当c=0.9:模型在8点之间震荡,呈现初始混沌状态。

当c=0.7:模型处于混沌状态。

从上述实验结果得出混沌现象的出现与分叉点十分符合,分叉点是极限趋势是符合Feigenbaum常数揭示的规律。

相关主题