Bagaimana untuk melaksanakan fungsi eksponen dalam bahasa C

王林
Lepaskan: 2024-02-24 21:30:12
asal
837 orang telah melayarinya

Bagaimana untuk melaksanakan fungsi eksponen dalam bahasa C

Kaedah pelaksanaan fungsi eksponen dalam bahasa C memerlukan contoh kod khusus

Fungsi eksponen ialah fungsi biasa dalam matematik Ia ditakrifkan sebagai f(x) = e^x, dengan e ialah asas logaritma semula jadi. Dalam bahasa C, kita perlu melaksanakan fungsi eksponen sendiri Dua kaedah pelaksanaan akan diperkenalkan di bawah, dan contoh kod khusus akan diberikan.

Kaedah 1: Pengembangan siri Taylor
Fungsi eksponen boleh dianggarkan menggunakan pengembangan siri Taylor adalah seperti berikut:
e^x = 1 + x + x^2/2! ! + … + x^n/n! + …

Kita boleh menulis gelung berdasarkan formula pengembangan siri Taylor untuk mengira nilai anggaran fungsi eksponen. Berikut ialah contoh kod khusus:

#include <stdio.h>

double power(double x, int n) // 计算 x 的 n 次方
{
    double result = 1.0;
    for (int i = 0; i < n; i++)
    {
        result *= x;
    }
    return result;
}

double factorial(int n) // 计算 n 的阶乘
{
    double result = 1.0;
    for (int i = 1; i <= n; i++)
    {
        result *= i;
    }
    return result;
}

double exponential(double x, int n) // 使用泰勒级数展开计算指数函数的近似值
{
    double result = 0.0;
    for (int i = 0; i <= n; i++)
    {
        result += power(x, i) / factorial(i);
    }
    return result;
}

int main()
{
    double x = 1.0; // 指数函数的自变量
    int n = 10; // 近似的级数项数

    double result = exponential(x, n);
    printf("e^%f = %f
", x, result);

    return 0;
}
Salin selepas log masuk

Kaedah 2: Pengembangan siri kuasa
Cara lain untuk melaksanakan fungsi eksponen ialah menggunakan formula pengembangan siri kuasa Formula pengembangan siri kuasa adalah seperti berikut:
e^x = 1 + x/ 1! + x^2/2! + x^3/3! + … + x^n/n! formula pengembangan siri penghampiran fungsi. Berikut ialah contoh kod khusus:

#include <stdio.h>

double power(double x, int n) // 计算 x 的 n 次方
{
    double result = 1.0;
    for (int i = 0; i < n; i++)
    {
        result *= x;
    }
    return result;
}

double factorial(int n) // 计算 n 的阶乘
{
    double result = 1.0;
    for (int i = 1; i <= n; i++)
    {
        result *= i;
    }
    return result;
}

double exponential(double x, int n) // 使用幂级数展开计算指数函数的近似值
{
    double result = 0.0;
    for (int i = 0; i <= n; i++)
    {
        result += power(x, i) / factorial(i);
    }
    return result;
}

int main()
{
    double x = 1.0; // 指数函数的自变量
    int n = 10; // 近似的级数项数

    double result = exponential(x, n);
    printf("e^%f = %f
", x, result);

    return 0;
}
Salin selepas log masuk

Dalam contoh kod di atas, kami mentakrifkan dua fungsi tambahan kuasa dan faktorial, yang digunakan untuk mengira kuasa dan faktorial masing-masing. Kemudian, kami mentakrifkan fungsi eksponen, yang mengira penghampiran fungsi eksponen. Akhir sekali, dalam fungsi utama, kami menggunakan fungsi eksponen untuk mengira anggaran e^1 dan mencetak hasilnya.

Melalui dua kaedah pelaksanaan di atas, kita boleh melaksanakan fungsi eksponen sendiri dalam bahasa C. Kedua-dua kaedah menghampiri nilai fungsi eksponen melalui pengembangan siri, dan dalam bilangan lelaran tertentu, ketepatan tertentu boleh diperolehi. Kaedah dan bilangan lelaran yang sesuai boleh dipilih mengikut keperluan untuk mendapatkan anggaran fungsi eksponen yang memenuhi keperluan.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi eksponen dalam bahasa C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!