一元三次方程求解

这篇具有很好参考价值的文章主要介绍了一元三次方程求解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一元三次方程求解,C++专栏,算法,c++

题目描述

有形如: a x 3 + b x 2 + c x + d = 0 ax^3+bx^2+c^x+d=0 ax3+bx2+cx+d=0一元三次方程。给出该方程中各项的系数 ( a a a b b b c c c d d d 均为实数 ),并约定该方程存在三个不同实根 (根的范围在 − 100 -100 100 100 100 100之间 ),且根与根之差的绝对值 ≤ 1 ≤1 1。要求由小到大依次在同一行上输出这三个实根。

提示

记方程 f ( x ) = 0 f(x)=0 f(x)=0,若存在两个数 x 1 x_1 x1 x 2 x_2 x2,且 x 1 < x 2 x_1 < x_2 x1<x2 f ( x 1 ) × f ( x 2 ) < 0 f(x_1)×f(x_2)<0 f(x1)×f(x2)0,则在 ( x 1 , x 2 ) (x_1,x_2) (x1,x2)之间一定有一个根。

输入输出格式

输入格式

输入 a , b , c , d a,b,c,d abcd

输出格式

三个实根(根与根之间留有空格)

输入输出样例

输入样例

1 -5 -4 20

输出样例

-2.00 2.00 5.00


算法分析

这是一道有趣的解方程题。为了便于求解,设方程 f ( x ) = a x 3 + b x 2 + c x + d = 0 f(x)=ax^3+bx^2+cx+d=0 f(x)=ax3+bx2+cx+d=0,设根的值域( − 100 -100 100 100 100 100之间)中有 x x x, 其左右两边相距 0.0005 0.0005 0.0005的地方有 x 1 x_1 x1 x 2 x_2 x2两个数,即 x 1 = x − 0.0005 x_1=x-0.0005 x1=x0.0005 x 2 = x + 0.0005 x_2=x+0.0005 x2=x+0.0005 x 1 x_1 x1 x 2 x_2 x2间的距离( 0.001 0.001 0.001)满足精度要求(精确到小数点后 2 2 2位)。


A C 代码

暴力出奇迹~~文章来源地址https://www.toymoban.com/news/detail-631125.html

#include <bits/stdc++.h>
using namespace std;
double a,b,c,d;
int main()
{
	cin >>a >>b >>c >>d;
	for(double i=-100;i<=100;i+=0.001)
	{
		double j=i+0.001;
		double l=a*i*i*i+b*i*i+c*i+d;
		double r=a*j*j*j+b*j*j+c*j+d;
		if(l*r<=0)
		{
			printf("%.2lf ",(i+j)/2);
		}
	}
	return 0;
}

到了这里,关于一元三次方程求解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python求解二元一次方程:简单、快速、准确

    Python求解二元一次方程:简单、快速、准确! 你是否曾经在数学课上为解二元一次方程而苦恼?那些复杂的公式和冗长的计算过程是否让你头疼不已?现在,有了Python,一切变得简单多了!让我们一起探索如何使用Python快速、准确地求解二元一次方程。 一、什么是二元一次

    2024年03月23日
    浏览(33)
  • MATLAB:梯度下降法求解一元和多元函数极小值和极大值

    梯度下降法,顾名思义即通过梯度下降的方法。对于一个函数而言,梯度是一个向量,方向是表示函数值增长最快的方向,而大小则表示该方向的导数。下面展示了用梯度下降法求解一元函数的MATLAB代码: syms x; y = @(x)((x-1).^2); % 定义一元函数 dy = diff(y,x); % 一元函数导数 x =

    2024年02月05日
    浏览(43)
  • 基于C++/Java实现一个数的 N 次方根算法完整源码实现

    给定两个数 N 和 A,求 A 的 N 次方根。在数学中,数 A 的 N 次方根是一个实数,当我们将 A 的整数次幂 N 求出时,它给出 A。这些根用于数论和其他领域数学的高级分支。  例子:   由于这个问题涉及一个实值函数 A^(1/N),我们可以使用牛顿法来解 决这个问题,该方法从初始

    2024年02月07日
    浏览(37)
  • C++:RANSAC采样一致性算法拟合一元二次曲线

    这里会用到线性代数里的一些知识,每次都是用起来看,用完了又忘,这里把一些可能用到的贴出来,用于快速理解算法里用到的公式等。 直线一般式 对于一元二次多项式,可以转换为线性方程组求解,我们一般写成矩阵形式 Ax = y。 Ax = y非一致方程和一致方程的求解 一致

    2024年02月16日
    浏览(37)
  • 【算法】湖心岛上的数学梦--用c#实现一元多次方程的展开式

    每天清晨,当第一缕阳光洒在湖面上,一个身影便会出现在湖心小岛上。她坐在一块大石头上,周围被茂盛的植物环绕,安静地沉浸在数学的世界中。 这个姑娘叫小悦,她的故事在这个美丽的湖心小岛上展开。每天早晨,她都会提前来到湖边,仔细观察水下的植物,然后抽出

    2024年02月09日
    浏览(40)
  • 【C++】STL 算法 ⑤ ( 二元函数对象 | std::transform 算法简介 | 为 std::transform 算法传入一元函数对象进行转换操作 )

    \\\" 二元函数对象 \\\" 指的是 一个实例类 中 , 重载了 \\\" 函数调用操作符 () \\\" 函数 operator() , 并且该函数 接受 2 个参数 ; 如果 \\\" 重载 函数调用操作符 () 函数 \\\" 只接收一个参数 , 那么这个函数对象就是 一元函数对象 ; 下面的结构体类 函数对象 , 就是一个二元函数对象 , 其作用是将

    2024年01月18日
    浏览(60)
  • 算法专栏——双指针

             题目链接:移动 0_牛客题霸_牛客网 (nowcoder.com)         像这样子的将一整块数组划分很多部分可以称为数组划分,常用的解法可以是双指针。 说是双指针,但操作的对象是数组,因此下标就是指针。          双指针的精华就是通过俩个指针将数组划分成三个

    2024年02月10日
    浏览(29)
  • 【算法系列专栏介绍】

    你只管努力,其他交给时间,时间会证明一切。 文章标记颜色说明: 黄色 :重要标题 红色 :用来标记结论 绿色 :用来标记一级论点 蓝色 :用来标记二级论点 决定开一个算法专栏,希望能帮助大家很好的了解算法。主要深入解析每个算法。 我们一起努力,成为更好的自

    2024年02月09日
    浏览(33)
  • 三次样条插值算法

       在[a,b]上分为n段,共n+1个点。插入3次多项式,并使其二阶导数连续的方法称为三次样条插值算法。 思路: 1.二阶导数为线性函数。 2.插值点的函数值已知、一阶导数、二阶导数连续。 3.加上边界条件即可求解。 边界条件 1.夹持条件:已知起点和终点的速度。 2.自然边界

    2024年02月11日
    浏览(43)
  • 【运动规划算法项目实战】专栏介绍

    本博客专栏将介绍一系列机器人运动规划算法项目实战,以及如何在Gazebo仿真环境下进行实验验证。我们将提供可运行的代码和详细的算法解析,以帮助读者更好地理解和应用这些算法。 通过本专栏的学习,读者将深入了解机器人运动规划算法的原理和实现,以及如何在仿真

    2024年02月04日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包