Oracle PL/SQL 使用牛顿法、二分法解方程
题目: 求解方程2x^3-4x^2+3x-6=0 在1.5附近的根
牛顿法:
/*牛顿法
求解方程2x^3-4x^2+3x-6=0 在1.5附近的根
*/
DECLARE
X NUMBER := 1.5;
X0 NUMBER;
F NUMBER;
FD NUMBER;
BEGIN
LOOP
--函数
F := 2 * POWER(X, 3) - 4 * POWER(X, 2) + 3 * X - 6;
--导函数
FD := 6 * POWER(X, 2) - 8 * X + 3;
X0 := X - F / FD;
X := X0;
EXIT WHEN ABS(F / FD) < 1E-10;
END LOOP;
DBMS_OUTPUT.PUT_LINE(X);
END;
二分法:
/*二分法
求解方程2x^3-4x^2+3x-6=0 在1.5附近的根
*/
DECLARE
X0 NUMBER := -100;
X1 NUMBER := 101;
X NUMBER := 1.5;
F NUMBER;
FD NUMBER;
BEGIN
LOOP
F := 2 * POWER(X, 3) - 4 * POWER(X, 2) + 3 * X - 6;
IF F < 0 THEN
X0 := X;
ELSE
X1 := X;
END IF;
X := (X0 + X1) / 2;
EXIT WHEN ABS(F - 0) < 1E-10;
END LOOP;
DBMS_OUTPUT.PUT_LINE(X);
END;

浙公网安备 33010602011771号