MATLAB牛頓法求解非線性方程組2

2021-09-28 01:56:12 字數 782 閱讀 6458

%% 牛頓法主程式

clear;clc

format;

x0=[0 0]; % 迭代初始值

eps = 0.00001; % 定位精度要求

for i = 1:10

f = double(subs(fun(x0),,));

df = double(subs(dfun(x0),,)); % 得到雅克比矩陣

x = x0 - f/df;

if(abs(x-x0) < eps)

break;

endx0 = x; % 更新迭代結果

enddisp('定位座標:');

xdisp('迭代次數:');

i%% 定義非線性方程組

function f=fun(x);

%定義非線性方程組如下

%變數x1 x2

%函式f1 f2

syms x1 x2

f1 = sqrt((x1-4)^2 + x2^2)-sqrt(17);

f2 = sqrt(x1^2 + (x2-4)^2)-5;

f=[f1 f2];

end%% 定義雅克比矩陣

function df=dfun(x);

f=fun(x);

df=[diff(f,'x1');diff(f,'x2')]; %雅克比矩陣

end

執行結果如下:

定位座標:

x =0.0000   -1.0000

迭代次數:

i =

matlab利用牛頓法求解非線性方程01

在如下鏈結中,本人看到了牛頓法求解非線性方程的乙個程式,給人耳目一新的感覺。但不知何故,本人未能執行該博主寫的程式,於是我對原程式做了一定修改,程式得以執行,如下 牛頓法程式 function gen newton f,x,tol f為函式,x0為初值,tol為指定允差,如果預設,預設為1e 6 i...

matlab多變數牛頓方法求解非線性方程組

這本是個作業,但因為各種原因及出錯,這個簡單的 寫了2個多小時,內心不爽。因此寫下部落格記錄。實現如下 clear clc syms u v f1 6 u 3 u v 3 v 3 4 f2 u 2 18 u v 2 16 v 3 1 f f1 f2 df0 diff f,u diff f,v df ...

牛頓迭代法求解非線性方程 C

一 牛頓迭代法演算法 設 已知 第1步計算函式 第2步計算雅可比矩陣 第3步求線性方程組的解 第4步計算下乙個點 重複上述過程。二 牛頓迭代法c 程式 牛頓迭代解非線性方程組 include include using namespace std double f1 double x double ...