多语言展示
当前在线:888今日阅读:23今日分享:25

matlab 二元函数非线性方程的牛顿一维迭代求解

matlab  二元函数的非线性方程的牛顿迭代求解   利用diff函数求出偏导数,可以解出超级复杂的非线方程的二元函数。   如已知   z=f(x,y)函数   ,在只知道x,z或者只知道z,y的情况下   迭代出y或x。
工具/原料
1

matlab

2

电脑

方法/步骤
1

下面拿出一个我正在做的例子,看下图。水蒸气热力计算的公式的迭代(够复杂吧但是方法很简单) 图一是公式  (知道温度和压力求其他参数,这里只求比容v)图二是它的指数系数。

2

首先是已知函数v=vpt(p,t),如下图 假设只知道v,t  写出 它的迭代函数p=pvt(v,t);下图所有的赋值都要与p,t有关,才能进行下一步的diff求导.

3

再来是要用diff函数把这个复杂的函数的偏导数求出来;要用diff   只需要把 上一个函数里的公式复制出来,再在前面加上syms  p t; 就可以对上图的v=rpi*pi*(c*1000.0d0)*t/(p*1.0d6);                 % !比容;进行求导了,求导之后就是牛顿迭代了,剩下的具体的代码如下。

4

到此就可以验证看看得到的 迭代函数对不对了,如下图先输入vpt(p,t)的值为  vpt(3,300)得到v的值为 0.687   再把v代入下个函数,反求  p ;在输入pvt(v,t)的值为   pvt(0.687,300)得到 2.999999999316294 到这就完成啦, 很简单对不对。

推荐信息