Корни произвольного уравнения по заданному приближению позволяет найти встроенная функ-
ция fzero, которая вызывается следующим образом:
>> x = fzero(‘myfunction’, x0)
где ‘myfunction’ – имя файл-функции, вычисляющей левую часть уравнения; x0 – начальное приближе-
ние к корню либо вектор, содержащий концы отрезка, на котором ищутся корни; x – найденное при-
ближенное значение корня. Данная функция находит решение с точностью до шестнадцатого знака по-
сле запятой.
П р и м е р: Известна концентрация недиссоциированной кислоты
]
0
HA – 0,1 моль
–1
; константа дис-
социации
a
K – 1,85 · 10
–5
; ионное произведение воды
w
K – 1 · 10
–14
. Требуется определить кислотность рас-
твора.
Зависимость pH от перечисленных функций представлена следующим уравнением:
[]
[]
[]
+
+
+
−+
−
=
H
H
H
HA
0
w
a
w
K
K
K
, где
+
H – концентрация ионов водорода. Значение pH – это отрицательный
десятичный логарифм концентрации ионов водорода: )log(pH
+
−= H .
Функция, содержащая выражение для расчета pH, сохранена под именем concentr, а входным аргу-
ментом ее является значение концентрации ионов водорода.
function f = concentr(x)
% определение pH растворов слабых кислот
kw = 1.85e-5;
ka = 1.0e-14;
ha = 0.1;
f = (x^2-kw)/ka+x-(kw/x)-ha;
В программе aim производится построение графика функции concentr для определения начального
приближения, а затем решение нелинейного уравнения и определение pH.
% программа aim определения pH раствора
% построение графика функции для определения
% начального приближения
fplot ('concentr', [0 0.02])
grid on
% вызов fzero от файл-функции concentr, и точки приближения
% с определением значения функции в точке полученного решения
[H, f] = fzero('concentr', 0.004)
% расчет pH
pH = -log10(H)
Результаты поиска начального приближения приведены на рис. 6.2.
Результаты реализации программы aim:
>> aim
H =
0.0043
f =
-3.0669e-007
pH =
2.3664