数值计算实例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数值计算

插值

假设需要得到x 坐标每改变0.1 时的y 坐标, 用三次插值方法对机翼断面下缘轮廓线上的部分数据加细, 并作出插值函数的图形.

程序: clear, close all

x=[0,3,5,7,9,11,12,13,14,15]; y=[0,1.2,1.7,2.0,2.1,2.0,1.8,1.2,1.0,1.6];

plot(x,y);

xi=0:0.1:15;

yi_cubic=interp1(x,y,xi,'cubic');

plot(x,y,'ro',xi,yi_cubic);

pp=csape(x,y,'second'); v=ppval(pp,xi);

v;

T=(ppval(pp,0.1)-ppval(pp,0))/0.1;

angle=atan(T)*180/pi;

s=v(130:151);

ss=min(s);

图形:

最小二乘拟合

已知空气温度与动力粘度关系如下,进行最小二乘拟合

0℃170.8×10^-4mPa.s

40℃190.4×10^-4mPa.s

74 ℃210.2×10^-4mPa.s

229 ℃263.8×10^-4mPa.s

334℃312.3×10^-4mPa.s

409℃341.3×10^-4mPa.s

481℃358.3×10^-4mPa.s

565℃375.0×10^-4mPa.s

638℃401.4×10^-4mPa.s

750 ℃426.3×10^-4mPa.s

810 ℃441.9×10^-4mPa.s

程序:

>> x=[0 40 74 229 334 409 481 565 638 750 810];

>> y=[170.8 190.4 210.2 263.8 312.3 341.3 358.3 375.0 401.4 426.3 441.9]; >> p=polyfit(x,y,2)

p =

-0.0002 0.4652 172.5460

>> xi=[0:2:810];

>> yi=polyval(p,xi);

>> plot(x,y,'ko-',xi,yi,'k--')

解线性方程组的直接法

某同学做了一个关于气体的热力性质的实验,研究气体在不同的温度和压力情况下熵的变化

S=Aln(T2/T1)–Bln(P2/P1)+C

数学建模:

将实验有关数据代入关系式,得

0.0255 = Aln(600/300)-Bln(1/0.1)+C

0.8496 = Aln(1440/720)-Bln(0.1/0.2)+C

-0.5076 = Aln(360/720)-Bln(0.1/0.2)+C

整理得,

0.69A-2.3B+C=0.0355

0.69A+0.69B+C=0.8596

0.69A-0.69B-C=0.4976

将此方程组看成x的一个列向量进行求解。

程序:

function[x,Aug]=Gaosixiaoqu (A ,b)

n=length(b);

x=zeros(n,1);

c=zeros(1,n+1);

Aug=[A b];

for k=1:n-1

if Aug(k,k)==0

'“矩阵奇异,无解”'

break

end

for i=k+1:n

m=Aug(i,k)/Aug(k,k);

Aug(i,k:n+1)=Aug(i,k:n+1)-m*Aug(k,k:n+1);

end

end

%回代

x(n)=Aug(n,n+1)/Aug(n,n);

for i=n-1:-1:1

x(i)=(Aug(i,n+1)-Aug(i,i+1:n)*x(i+1:n))/Aug(i,i);

End

在MA TLAB 的命令窗口中输入:

>> A=[0.69 -2.3 1;0.69 0.69 1;0.69 -0.69 -1];

>> b=[0.0355 0.8596 0.4976];

>> [x,Aug]=Gaosixiaoqu(A,b)

x =

0.9835

0.2756

-0.0092

公式应为:

S=0.9835ln(T2/T1)–0.2756ln(P2/P1)-0.0092

牛顿迭代法

问题:

简单蒸馏时,某时刻釜残液量与低沸点组成x 之间的关系式为

⎪⎪⎭

⎫ ⎝⎛--+-=

0011ln ln 11ln

x x x x F

F αα 对于苯-甲苯物系,相当挥发度α=2.5,开始时物系中含苯60%,甲苯40%。试求当蒸馏至残液量为原加料量的一半时残液中的苯含量。 将方程变为: 011ln ln 11ln

f(x)000

=⎪⎪⎭⎫ ⎝⎛--+--

=x x x x F

F αα 将参数代入方程得:06.011ln 5.26.0ln 15.215.0ln

f(x)0

=⎪⎭

⎝⎛--+--

=x x F F

化简得: 07402.0)l n (x -1ln 5.2f(x)=+-=x )(

程序:

function[x,k,y]=newton(f,df,x0,tol,N) %Newton 迭代

%f 和df 分别表示函数f(x)及其导函数

%x0表示初值,tol 表示误差限,N 表示最大迭代次数

%输出参数x 表示迭代结果,k 表示迭代次数,y 表示在x 处的函数值f (x ) fprintf('x(%2d)=%10.8f\n',0,x0) for k =1:N

x=x0-f(x0)/df(x0);

err=abs(x-x0); x0=x; y=f(x);

fprintf('x(%2d)=%10.8f\n',k,x) if(err

在命令窗口中

f=inline('2.5*log(1-x)-log(x)+0.7402');

相关文档
最新文档