当前位置:网站首页>牛顿迭代法(解非线性方程)

牛顿迭代法(解非线性方程)

2022-07-05 08:46:00 行止AC

文章目录


原理

对于已知的方程f(x),当f’(x)=n,化为f(x)-n=0;
在这里插入图片描述

题目

数的三次方
在这里插入图片描述

#include<bits/stdc++.h>
#define ll long long
#define PI 3.141592653589793
#define E 2.718281828459045
#define HalF (l + r)>>1
#define lsn rt<<1
#define rsn rt<<1|1
#define Lson lsn, l, mid
#define Rson rsn, mid+1, r
#define QL Lson, ql, qr
#define QR Rson, ql, qr
#define myself rt, l, r
#define mset(a,b) memset(a,b,sizeof(a))
#define mcpy(a,b) memset(a,b,sizeof(a))
#define FOR( i , a , b ) for ( int i = a ; i <= b ; ++ i )
#define FO( i , n ) for ( int i = 0 ; i < n ; ++ i )
#define lowbit(a) ((a)&-(a))
#define PII pair<ll ,ll >
#define ft first
#define sd second
#define endl "\n"
typedef unsigned long long ull;
const ll mod=10007;
const ll INF=0x3f3f3f3f3f3f3f3f;
const ll Max=1e5+10;
using namespace std;
ll t,n,m,l,k;
ll ans;
/*queue<ll> q; stack<ll> s; //升序队列 priority_queue <int,vector<int>,greater<int> > q; //降序队列 priority_queue <int,vector<int>,less<int> >q;*/
double solve(double w)
{
    
    double w1=w;
    for(ll i=1;i<=100;i++)
    {
    
        w1=w1-(w1*w1*w1-w)/(3*w1*w1);
    }
    return w1;
}
int main()
{
    
    ios::sync_with_stdio(false);
    double n;
    cin>>n;
    cout<<fixed<< setprecision(6)<<solve(n)<<endl;
    return 0;
}


原网站

版权声明
本文为[行止AC]所创,转载请带上原文链接,感谢
https://blog.csdn.net/xingzi201/article/details/125574599