matlab 二元函数非线性方程的牛顿一维迭代求解
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.001002151679687 再把v代入下个函数,反求 p ;
在输入pvt(v,t)的值为 pvt(0.001002151679687,300)
得到 2.999999999316294
到这就完成啦, 很简单对不对。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:85
阅读量:53
阅读量:90
阅读量:80
阅读量:31