非线性方程模型及求解实例
目录
- 一、气体方程模型
- 二、房贷还款问题
- 三、斜抛问题
- 总结
一、气体方程模型
例 1.
1摩尔理想气体的压强P,体积V,温度T满足关系PV=RT,其中常数R=0.08205(latm/Kmol)而对于实际气体这个关系需修正为
(P + aVc\frac{a}{ V^c}Vca) (V - b) = RT
a,b,c为所给气体决定的常数。现已知a=12.87, b=0.1142, c=2,求气体在P=2(atm),T=313(K)下的体积V。
分析
首先,根据题目中所给出的数值与公式方程可得出本题的基本数学模型,方程是一个非线性方程组,上篇博客写到,可以使用fzero函数解方程,当然,在解方程之前,可画出方程的大致图像,判断出根的大致范围
代码如下:
%气体的一些常数
a=12.87;b=0.1142;c=2;
R=0.08205;
%压强和温度
P=2;T=313;
%理想气体方程:P*V=R*T;
%实际气体方程:
%f(V) = (p+a / V ^ c) * (V - b) - R * T
V0 = R * T / P;
f=@(V) (P + a ./ V .^ c) .* (V - b) - R * T;
fplot(f, [0.1, 15]);
V = fzero(f, V0)
可得到图像:
从图像中可以看出,方程的解有三个,但是我们只求近似解 V0 = R * T / P附近的根,结果为:
V =12.4426
二、房贷还款问题
例2. (购房贷款的利率)
下面是一则房产广告:
不难算出,你向银行总共借了25.2万,
30年内共要还51.696万,
这个案例中贷款年利率是多少呢?
分析
设xkx_kxk为第k个月末的欠款数, a为月还款数, r为月利率。
xkx_kxk = (1+ r) xk−1x_{k-1}xk−1 - a
= (1+r)2 xk−2x_{k-2}xk−2 – (1+r) a – a
=……
= (1+r)k x0x_{0}x0 – a[1+(1+r)+……+(1+r)k-1]
= (1+r)k x0x_{0}x0 – a (1+r)k−1r\cfrac{(1+r)^k-1}{r}r(1+r)k−1
根据题意可知x360x_{360}x360 = 0,由此可以列出方程,画出图像求解即可
代码如下:
%房贷年利率问题
%设 xk 表示(从现在开始过了k个月后的)欠款(现在的时间为,k=0)
%设每个月还款a (单位:元),月利息为 r,则 x0 = 25.2
%x1 = x0(1 + r) - a (第一个月月初)
%x2 = x1(1 + r) - a (第二个月月初)
%……
%x360 = x359*(1 + r)- a(第360个月月初还 a)
%x360 = 0
x0=25.2;
a=0.1436;
f=@(r) x0*(1+r).^360 - a*( (1+r).^360 - 1 ) ./ r ;
r0=0.001;
r=fzero(f,r0);
year_interest = r*12
当然了,我们发现,已知递推关系式,完全可以写出递归函数来计算x360x_{360}x360 的数学关系式
求递归函数代码:
function y = loan(x0, a, r, k)
%功能:已知初始欠款数x0,每个月还款数a,月利息r,求k个月以后的欠款y
i=0;
y=x0;
for i=1:ky=y*(1+r)-a;
end
end
%function y = loan(x0, a, r, k)
%功能:已知初始欠款数x0,每个月还款数a,月利息r
%求k个月以后的欠款y
x0=25.2;
a=0.1436;
%解方程f(r) = loan(x0, a, r, 360) = 0
f=@(r)loan(x0, a, r, 360);
r0=0.001;
r=fzero(f,r0);
year_interest = r*12
这种方法同样可以求出方程的解,但是要注意的是,当数据量巨大时,递归计算会占用很大的空间与时间,这种情况下,则不如推出的关系式方便。同时线性迭代时要注意迭代关系式是否收敛
本题结果为:
year_interest =0.0553
三、斜抛问题
已知一颗炮弹发射做斜抛运动,初速度为200米每秒,击中水平距离360米时,垂直距离160m的目标,问当忽略空气阻力时发射角多大
这是一道简单的高中物理问题,下面我们建立数学模型来解决它
分析
我们对炮弹的轨迹正交分解,设发射角为alpha,用x(t),y(t)表示 t 时刻炮弹的位置,初始速度为v0,由于炮弹发射出去只受到重力,我们可以列出水平与竖直两个方向的方程:
v0v_0v0*cos(alpha) *t = 360
v0v_0v0*sin(alpha) *t - 12\frac 1221 g t2 = 160
然后,我们就可以利用非线性方程组求解了
代码如下:
%炮弹发射为斜抛运动,已知初速度为200米每秒,
%问击中水平距离360米时,垂直距离160m的目标,问当忽略空气阻力时发射角多大
%设发射角为alpha,用x(t),y(t)表示 t时刻炮弹的位置,初始速度为v0,由于炮弹发射出去只受到重力
%X=[alpha, T]
g=9.8;
fun = @(X) [200*cos(X(1)) * X(2)- 360200*sin(X(1)) * X(2) - 1 / 2*g*X(2)^2 - 160];
X0=[pi/6, 5]; %估计初值
X=fsolve(fun,X0)
alpha = X(1) / pi *180 %弧度制转换角度值
当然了,我们也可以动态的观察炮弹的运动轨迹
%炮弹运动轨迹
g=9.8;
f=@(a) 180*sin(2*a)-g/2*1.8^2 - 160*cos(a)^2;
a=fzero(f, pi/6);
figure
axis([0,360,0,160])
hold on
for t=0:0.001:2.012x=200*cos(a)*t;y=200*sin(a)*t - 1/2*g*t^2;plot(x,y,'r.')pause(0.005)
end
结果为:
X =0.4633 2.0121
alpha =26.5444
总结
关于数学建模的大致过程基本可归纳为(个人理解),
梳理关系式——写出数学方程或方程组——画出相关函数曲线分析问题——解方程得到问题的解——回带检验误差
非线性方程模型及求解实例相关推荐
- 共轭梯度下降法matlab,用matlab实现最速下降法,牛顿法和共轭梯度法求解实例
用matlab实现最速下降法,牛顿法和共轭梯度法求解实例 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 实验的题目和要求 1.所属 ...
- 目标规划模型:求解思路、序贯式算法
目录 1.线性规划的局限性 2.实际决策中,衡量方案优劣考虑多个目标 3.目标规划(Goal Programming) 4.求解思路 (1)加权系数法 (2)优先等级法 ...
- 古诺双寡头模型MATLAB求解(博弈论)
古诺双寡头模型MATLAB求解(博弈论) 基本概念 古诺竞争模型(也称古诺模型)是早期的寡头垄断模型.它是法国经济学家古诺于1838年提出的. 古诺模型的假定是:市场上有A.B两个厂商生产和销售相同的 ...
- vof模型matlab程序,VOF模型的使用实例.ppt
VOF模型的使用实例.ppt Non-Iterative Time-Advancement Scheme :NITA ,不需要很多外部迭代,每个时间步只完成一个外部迭代就可以,显著地加快了瞬态模拟. ...
- 用共轭梯度法求极小值matlab,用MATLAB实现最速下降法_牛顿法和共轭梯度法求解实例——张小强.doc...
机电产品优化设计 课程设计报告 姓 名 :张 小 强 学 号 :201222080633 学 院 :机械电子工程学院 实验的题目和要求 一.课程名称:最优化设计方法 二.实验日期:2013年6月27日 ...
- 风险管理matlab,风险管理KMV模型Matlab计算—-实例分析 - Ariszheng
风险管理KMV模型Matlab计算--实例分析 编写自己编写的 KMVOptSearch 添加两个KMV模型文档 2009-6-5 2009-8-14 程序内容将作为 金融数量分析的一节进行仔细讲解 ...
- 深度学习中的Normalization模型(附实例公式)
来源:运筹OR帷幄 本文约14000字,建议阅读20分钟. 本文以非常宏大和透彻的视角分析了深度学习中的多种Normalization模型,从一个新的数学视角分析了BN算法为什么有效. [ 导读 ]不 ...
- 【转】动态模型及其求解介绍–番外篇
上一篇文章(中篇)里 面,我用的示意图是因子图,而里面也出现了Psi函数,本来应该当时就解释清楚的,但实在没有精力写那么多东西,所以就想放到下篇讲的.后来发现,讲条件 随机场要结合有向无向图和inde ...
- GAMS系列分享12—GAMS基础知识——模型和求解
介绍模型及求解的相关问题 目录 1,模型的分类 2,模型声明和定义语法 3,solve语句 4 有多个solve语句的程序 4.1一个简单的形式:文件中建立3个模型,并用3个solve语句进行求解. ...
- 数学建模:整数规划示例模型 (Python 求解)
目录 例 1 : 选课策略模型 1. 为了选修课程门数最少, 应学习哪些课程? 建立 0-1 规划模型 Python 求解 2. 选修课程最少时, 为了学分尽量多, 应学习哪些课程? 例 2 : 装箱 ...
最新文章
- ADO.NET 中的表达式
- sysctl.conf工作原理
- QTP:General Error while saving the test 的解决方法
- 古典绘画水墨文化艺术插图手绘合集,再也不愁没有设计灵感!
- coreldraw中制作蚊香实例_关于CorelDRAW印前排版规范你知道么?
- cad缩放_CAD两种缩放技巧,你喜欢那个?
- 计算机技术在学前教育应用与搜索,信息技术在学前教育教学活动中的应用原稿(资料4)...
- MAC常用软件127
- 华为刷原生android,教你如何体验(刷)原生安卓8.0
- joc杂志影响因子2019_2020 年公布的 SCI 期刊影响因子排名有哪些亮点和槽点?
- 妥妥的世界第一:为什么MT4软件的地位无法撼动?
- BUUCTF MISC 二维码扫描
- html如何实现空格?
- Springboot+阿里云kafka踩坑实录
- 淘宝官方订单 API 接口,获取购买到的商品订单列表
- 云服务器和一般服务器之间有什么区别?
- android 连接商米POSV1内置打印机
- Cephalocon APAC 2018在北京成功举办
- 一个主题是王嘉尔的静态网页(html+css 附源代码)
- 中国电信数字中南智慧网自动登录油猴脚本