Осуществление функции Root из Mathcad в Delphi

Тема в разделе "Delphi - Базы данных", создана пользователем NITRON, 17 авг 2007.

  1. NITRON

    NITRON Гость

    Кто-нить знает как можно осуществить функцию Root из MathCad в Дельфи или что-то похожее?
    У меня есть текст Маскадовоской программы но мне нужно всё это перевести на Дельфи. Когда начал писать столкнулся с такой проблемой есть уравнение которое как я понял по Хелпу решается методом секущей Мюллера. Уравнение с двумя аргументами. Я нашел несколько исходников вроде тех которые надо но только на языке СИ 3.0 по ДОС, начал их переводить и получилось так что там есть цикл For k=0 .. to .. и получилось что k во время выполнения цикла в расчётах не участвует. Я опять зашел в тупик. нашел еще несколько опять же н СИ и вообще не чего не понял если что на всякий случай пример скачанного мной кода.

    Код (Text):
    //************************************************** *

    #include <conio.h>
    #include <iostream.h>
    #include <math.h>

    double f(double x)
    {
    return exp(x)+2*x;
    }



    double findRootMuller(double x0, double h, double eps, long max_step, double (&f)(double) )
    {
    double x1 = x0+h, x2 = x0+2*h, xn;
    double f_x0 = f(x0), f_x1 = f(x1), f_x2 = f(x2), f_xn;

    for(long k=0; k<max_step; k++)
    {
    double q = (x0-x1)/(x1-x2);
    double a = q*f_x0-q*(1+q)*f_x1+q*q*f_x2;
    double b = (2*q+1)*f_x0-(1+q)*(1+q)*f_x1+q*q*f_x2;
    double c = (1+q)*f_x0;
    double d = sqrt(b*b-4*a*c);
    double z = (fabs(b+d)>fabs(b-d))?(b+d)b-d);

    xn = x0-(x0-x1)*2*c/z;
    f_xn = f(xn);

    if(fabs(f_xn)<eps)
    {
    break;
    }

    x2 = x1; f_x2 = f_x1;
    x1 = x0; f_x1 = f_x0;
    x0 = xn; f_x0 = f_xn;
    }
    return xn;
    }


    void main()
    {
    clrscr();

    cout.precision(6);
    cout.setf(ios::fixed|ios::showpoint);

    double x = findRootMuller(-2,1,.0000001,10000,f);

    cout<<"x = "<<x<<endl;
    cout<<"f(x) = "<<f(x)<<endl;

    getch();
    }
    За ранее спасибо, за помощь! Однако я точно не уверен что это то что мне нужно если у кого есть мысль плиз.... поделитесь....
     
Загрузка...
Похожие Темы - Осуществление функции Root
  1. Генералл
    Ответов:
    2
    Просмотров:
    54
  2. rn3rjd
    Ответов:
    0
    Просмотров:
    442
  3. Sanchezz86
    Ответов:
    1
    Просмотров:
    584
  4. Sentim
    Ответов:
    1
    Просмотров:
    626
  5. FaRReLL
    Ответов:
    1
    Просмотров:
    1.440

Поделиться этой страницей