北太天元目錄下的 examples/root_abc.m 是一個(gè)求 ax^2+bx+c = 0 的腳本,可以解這個(gè)問題。
可以參考:
【程序的分支結(jié)構(gòu)】 https://www.bilibili.com/video/BV1Ke4y1U7es/?share_source=copy_web&vd_source=2adc5aa7a702b808eb8b31dbd210f954
【lec2.1-馮氏大定理】 https://www.bilibili.com/video/BV1st4y1u7tv/?share_source=copy_web&vd_source=2adc5aa7a702b808eb8b31dbd210f954
也可以通過求矩陣的特征值的方法求多項(xiàng)式的根,可以參考:
【lecture3-3-roots-of-polynomials】 https://www.bilibili.com/video/BV1DW4y177fW/?share_source=copy_web&vd_source=2adc5aa7a702b808eb8b31dbd210f954
引用:北太天元目錄下的 examples/root_abc.m 是一個(gè)求 ax^2+bx+c = 0 的腳本,可以解這個(gè)問題。 可以參考: 【程序的分支結(jié)構(gòu)】 https://www.bilibili.com/video/BV1Ke4y1U7es/?share_source=copy_web&vd_source=2adc5aa7a702b808eb8b3...
好嘞??
% 定義方程
f = @(x) 2*x^2 + 3*x - 2;
% 指定二分法的初始區(qū)間
a = -5; % 左端點(diǎn)
b = 5; % 右端點(diǎn)
% 設(shè)置二分法的收斂條件
tolerance = 1e-6; % 收斂容限
maxIterations = 1000; % 最大迭代次數(shù)
% 初始化變量
x = []; % 用于保存根的近似值
% 進(jìn)行二分法迭代
for i = 1:maxIterations
% 計(jì)算區(qū)間中點(diǎn)
c = (a + b) / 2;
% 計(jì)算函數(shù)值
fc = f(c);
% 判斷是否滿足收斂條件
if abs(fc) < tolerance
break;
end
% 更新區(qū)間
if f(a) * fc < 0 % f(a)和f(c)符號(hào)不同
b = c;
else % f(b)和f(c)符號(hào)不同或其中至少一個(gè)為0
a = c;
end
% 保存根的近似值
x = [x; c];
end
% 顯示最終的根的近似值
disp(x)
這個(gè)是二分法。要不試試看?更新區(qū)間這個(gè)就是零點(diǎn)存在性定理啦,高數(shù)里面有。