日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

利用牛顿法接非线性方程组的Matlab程序实例

發布時間:2025/4/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用牛顿法接非线性方程组的Matlab程序实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先將線性方程組寫成f(x)=0的形式,編寫第一個Matlab函數

function f = fun() % 求解: % 3*x1-cos(x2*x3)-1/2 = 0 % x1^2-81*(x2+0.1)^2+sin(x3)+1.06 = 0 % exp(-x1*x2)+20*x3+(10*pi-3)/3 = 0 % 求解精度為0.00001syms x1 x2 x3 f1 = 3*x1-cos(x2*x3)-1/2; f2 = x1^2-81*(x2+0.1)^2+sin(x3)+1.06; f3 = exp(-x1*x2)+20*x3+(10*pi-3)/3; f = [f1 f2 f3];

然后是方程組的Jacobi矩陣,編寫第二個Matlab函數

function df = dfun()f = fun(); df = [diff(f,'x1'); diff(f, 'x2'); diff(f, 'x3')]; df = df';

然后求解方程組的程序

function x = newton(x0, eps, N) % x0是初值,可以任取,不需要滿足方程組 % 最后得到的解與初值選取有關 % eps為精度 % N最大迭代次數for i = 1:Nf = eval(subs(fun(), {'x1', 'x2', 'x3'}, {x0(1), x0(2), x0(3)}));df = eval(subs(dfun(), {'x1', 'x2', 'x3'}, {x0(1), x0(2), x0(3)}));x = x0 - f/df;if norm(x - x0) < epsfor j = 1:length(x)fprintf('%.2f\t', x(j));endbreak;endx0 = x; end

總結

以上是生活随笔為你收集整理的利用牛顿法接非线性方程组的Matlab程序实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。