Да, да, не нашла этой функции Я писала программу для того, чтобы найти значения функции - программа простая - надо было задать формулу, по которой в цикле посчитались и вывелись бы нужные значения. Однако возникает ошибка: error while linking, почему-то, перел последним end. Подскажите, пожалуйста, как исправить? А программу надо было такую: "Расчет диффузионных профилей" - называется так,
N/N(нулевое)=erfc(x/корень(Dt))=1-erf(x/(2*корень(Dt)) только я в паскале не нашла функцию эрфактум..., поэтому переписала в ПРОСТОМ варианте: y=(1/(1+a1*x/(2*корень(Dt))+a2*(x/(корень(Dt)))^2+a3*(x/(корень(Dt)))^3+a4*(x/(корень(Dt)))^4)^4)-0,01 где D=10^(-10) - десять в минус десятой степени t=60 секунд a1=0,278393 a2=0,230389 a3=0,000972 a4=0,078108 Получилась программа: Var x,y,a1,a2,a3,a4,t,h:real; begin a1:=0.278393; a2:=0.230389; a3:=0.000972; a4:=0.078108; x:=0.29; t:=60; h:=10000/(2*sqrt(t)); while x<=1.26 do begin y:=-0.01+1/sqr(sqr(1+sqr(a1*x*h+a2*(x*h))+sqr(a3*x*h)*a3*x*h+ sqr(sqr(a4*x*h)))); writeln ('x= ' ,x:4:2, ' y= ',y:8:6); x:=x+0.03; end; readln; end.
Причем, надо еще график тоже в паскале построить, а потом все это в маткаде сделать, но эта ошибка все время появляется, подскажите, как ее исправить... Нам сказали, что х будет с двумя знаками после запятой, а у - с 6 знаками после запятой...
Мне не удается запустить программу во FREE PASCAL
Но если y всегда -0,01, может быть, подскажете, пожалуйста, как поступить в этом случае??? Может, тип переменных какой-нибудь другой надо...
кроме того, нам дали формулу: N/N(нулевое)=erfc(x/корень(Dt))=1-erf(x/(2*корень(Dt)) где эта самая функция erf(z) от какой-то переменной z определяется так: erf(z)=1-1/[(1+a1*z+a2*z^2+a3*z^3+a4*z^4)^4]+E(z) где E(z)=0,01 и промежуток х [0,29;1,26]
График - кривая, нам сказали, похожа на ветвь обычной гиперболы, убывающей в 1 четверти... Подскажите, прошу...
|