永发信息网

C++解一个一元三次方程

答案:1  悬赏:70  手机版
解决时间 2021-11-17 20:09
C++解一个一元三次方程
最佳答案
代码,思路,注释都在这儿了。望采纳。
#include 
#include 

double solve(double k) {
    //输入k的值。
    //设 f(x) = k*(x-1)³+x³+5/3*x²=0 (k>0)
    //则 f'(x) = 3k*(x-1)^2 + 3x^2 + 10/3*x
    //因为 f'(x)在(0,1)为正,所以f(x)在(0,1)为增函数。
    //因此考虑牛顿法。
    //牛顿法:迭代x(n+1) = x(n) - f(x)/f'(x)
    //初值可设置为0或者1。
    double delta = 0.0001; //精确度, 可调。
    double x = 0; //初始值
    double f = k*(x-1)*(x-1)*(x-1) + x*x*x+5/3*x*x; //原函数
    double f_diff = 3*k*(x-1)*(x-1) + 3*x*x + 10/3*x; //导数
    double nextx = x - f / f_diff; //迭代的下一步
    while ( abs(nextx-x) > delta) {
        x = nextx;
        f = k*(x-1)*(x-1)*(x-1) + x*x*x+5/3*x*x; //原函数
        f_diff = 3*k*(x-1)*(x-1) + 3*x*x + 10/3*x; //导数
        nextx = x - f / f_diff; //迭代的下一步
    }
    return nextx;
}

int main(){
    double k = 1;
    double x = solve(k);//求解
    double f = k*(x-1)*(x-1)*(x-1) + x*x*x+5/3*x*x;
    printf("x = %lf, f(x) = %lf", x, f);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有谁知道这款南俊瑞逸怎么样,可以买吗,
室内空气检测TV0C的正常值
可在PCB电路板上焊接的导线卡夹的规范名称是
say "good night" to yourself, and say it&#
在超市干了9天,不想干了,那这9天的工资会给
青春期少女,一般适合看那些书?
上知天祥终不屈也,与宰相议释之,有以天祥起兵
b编造事非造成他人伤害的犯法吗
牡丹江到大连2052次列车经常晚点吗?一般多长
多梦艾灸什么穴位
六年级辩论会
吃什么水果蔬菜降低谷丙转氨酶
工程中标后,业主合同违约,违约金怎么算
1.9➗0.045
最近几天老是小便2到3小时一次我是女生
推荐资讯
家乡的特产烧饼作文六百
长虹H21K69电原图+130V,开机测+130V正常,测
到天津晶彩大厦都有几路公交车
女人用最毒话骂自己的老公,还能一起走下去吗
西游记所说的西天取经是什么意思
描写说的成语有哪些成语
9,450是什么成语
突然觉得吴磊和曾舜晞有些角度还挺像的 三石
想通过劳务公司去澳大利亚打工。听说一天700
高手,图片猜成语,给个答案好吗?
伺服电机有一个参数是 Figure of Merit,单位
供电局高压计量读数为何与我厂低压电能表读数
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?