第二讲
非线性方程(组)求解与迭代法
隋志军
化工学院软件应用教科组
2006-10
本章知识要点
数值计算
单个非线性方程求解
非线性方程组求解
迭代法
MATLAB
求解非线性方程(组)的相关函数
本章的所要解决的典型问
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
在945.36kPa(9.33atm)、300.2K时,容器中充以2mol氮气,试求容器体积。
已知此状态下氮气的P-V-T关系符合范德华方程,其范德华常数为a=4.17atm•L/mol2,b=0.0371L/mol
数学模型:
非线性方程(组)在化学工程中的作用
多组分混合溶液的沸点、饱和蒸气压计算
流体在管道中阻力计算
多组分多平衡级分离操作模拟计算
平衡常数法求解化学平衡问题
定态操作的全混流反应器的操作
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
求解非线性方程的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
二分法
不动点迭代
威格斯坦法迭代
牛顿法
割线法
迭代法原理
不动点迭代:
迭代法意义示意图
迭代法的收敛性
迭代法意义示意图
Wegstein法意义示意图
牛顿法意义示意图
割线法意义示意图
多项式函数
Matlab多项式函数
Polyval 多项式的值
Polyder 多项式微分
Polyfit 多项式拟合
Conv,Deconv 多项式乘法和除法
Roots 多项式求根
多项式:
Matlab
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
达多项式方法:
简单多项式函数的使用
a=[1 11 55 125];
b=[1 1;1 1];
c=polyval(a,b) %求多项式a在b处的值
q=[2,3,5];
aq=conv(a,q) %多项式乘法
d=poly2sym(aq) %多项式向量表示为符号多项式
e=deconv(aq,a) %多项式除法
求解方程:
多项式求根函数roots
p=[2 -5 6 -1 9];
sol=roots(p)
结果:
sol =
1.6024 + 1.2709i
1.6024 - 1.2709i
-0.3524 + 0.9755i
-0.3524 - 0.9755i
P = 9.33;
T = 300.2;
n = 2;
a = 4.17;
b = 0.0371;
R = 0.08206
coef=[P, -(P*n*b+n*R*T), a*n^2 , -a*b*n^3];
V=roots(coef)
结果:
V =5.0028 0.2429 0.1092
非线性方程求解函数fzero
调用格式:
[x,fval,exitflag,output] = fzero(fun,x0,options, p1, p2, ...)
此函数的作用求函数fun在x0附件的零值点,x0是标量。
fval 函数在解x处的值
exitflag 程序结束情况,>0,程序收敛于解; <0,程序没有收敛;=0,计算达到 了最大次数
output 一个结构体,提供程序运行的信息; output.iterations,迭代次数;
output.functions,函数fun的计算次数;
output.algorithm,使用的算法
options 选项,可用optimset函数设定选项的新值
fun可以是函数句柄或匿名函数。
fzero函数的使用
1) sinx在3附近的零点
2) cosx在[1,2]范围内的零点
fzero(@sin,3)
fzero(@cos,[1,2])
fzero(@(x) x^3-2*sin(x),1)
或者:
function Cha2demo1
x=fzero(@fun,1)
function y=fun(x)
y=x^3-2*sin(x);
fzero(@(x) x^3-2*x-5,1);
roots([1 0 -2 -5])
fzero函数初值的选取
P = 9.33;
T = 300.2;
n = 2;
a = 4.17;
b = 0.0371;
R = 0.08206;
V=fzero(@(V) P*V^3-(P*n*b+n*R*T)*V^2+ a*n^2*V -a*b*n^3,0)
fzero函数初值的选取
以t为自变量,取值范围为-10
delta
u = (G/rho)/(pi*D1^2/4);
Regen = D1^n1*u^(2-n1)*rho/(8^(n1-1)*K1);
if Regen <= 2100
f = 16/Regen;
end
if Regen > 2100
f = FrictFactor(Regen,n1);
end
Le = k*D1/(4*f);
D1 = D2;
D2 = (2*f*(L+Le)/(rho*deltaP)*(4*G/pi)^2)^0.2;
end
fprintf('\t管道直径为D = %.4f %s\n',D2,'m')
fprintf('\t摩擦因子为f = %.4f %s',f,'m')
% ------------------------------------------------------------------
function f = FrictFactor(Regen,n1)
f0 = 16/Regen; %4.53
f = fzero(@fFunc,f0,[],Regen,n1)
% ------------------------------------------------------------------
function F = fFunc(f)
F = 1/sqrt(f) - 4.0*log(Regen*f^(1-n1/2))/n1^0.75 + 0.4/n1^1.2;%4.54
本讲小结
sol=roots(C)
[sol,feval,exitflag,output]=fzero(@fun,x0,options,p1,p2,...)
[sol,feval,exitflag,output,jacobian]=fsolve(@fun,x0,options,p1,p2,...)
关于作业的说明
作业占总成绩的40%
作业以Word文档方式提交至zhjsui@ecust.edu.cn,或交至实验16楼605室