跪求高人用C语言帮我编一个题目:迭代法求x^5-x^4+4x^2-1=0的根算法 感激不尽 谢谢!

作者&投稿:狐曲 (若有异议请与网页底部的电邮联系)
用C语言编写程序,用牛顿迭代法求高次方程f(x)=5*x*x*x*x*x-8*x*x*x+10*x*x-7x+25=0的近似根?急用!~

牛顿迭代法的思想是这样的:
x和x0不断的迭代.
令f(x)=5*x^5-8x^3+10x^2-7*x+25
则f'(x)=25x^4-24x^2+20x-7
有:
x=x0-f(x)/f'(x)
收敛于:|x-x0|<e(有是一个很小的数,在这里取e为0.000001),具体代码如下:
#include "stdio.h"
#include "math.h"
/*牛顿迭代法求根*/
void main()
{
double x0,x;
double f,g;
x0=1; /*给一个初始值*/
do
{
x=x0;
f=5*pow(x,5)-8*pow(x,3)+10*x*x-7*x+25;
g=25*pow(x,4)-24*pow(x,3)+20*x-7;
x0=x-f/g;
}while(fabs(x-x0)>1e-6);
printf("%f
",x);
}


建立m文件:

function [result ,k] = newton(fun,x0,e)

% 调用形式:
% [x k] = newton(fun,x0,e)
% 功能:
% 用差商求导的牛顿法求解一元非线性方程的根
% 输入:
% -- fun 字符串,f(x)的表达式,以x作为自变量,以字符串形式输入
% -- x0 标量,求解的起始点
% -- e 标量,精度要求
% 输出:
% -- x 标量,所求得的解
% -- k 标量,求解过程的迭代次数
% 袁怡圃,2003/4/3

m = x0;
h=0.000001;
f=inline(fun,'x');

k=0;
f0=feval(f,m);
f2=feval(f,m+h);
f1=feval(f,m-h);
n=m-2*h*f0/(f2-f1);

while abs(1-m/n)>e
m=n;
f0=feval(f,m);
f2=feval(f,m+h);
f1=feval(f,m-h);
n=m-2*h*f0/(f2-f1);
k=k+1;
if k>999
break
end
end
if k==1000
disp('没找到方程的根!');
result = 'zero';
else
result = n;
end

在命令窗口输入:
fun = '2*x^3+x^2-3*x+4=0';
x0 = 1;
[result ,k] = newton(fun,x0,0.00001)

牛顿迭代法的思想是这样的:
x和x0不断的迭代.
令f(x)=x^5-x^4+4x^2-1
则f'(x)=5x^4-4x^3+8x
有:
x=x0-f(x)/f'(x)
收敛于:|x-x0|<e(有是一个很小的数,在这里取e为0.000001),具体代码如下:
#include "stdio.h"
#include "math.h"
/*牛顿迭代法求根*/
void main()
{
double x0,x;
double f,g;
x0=1; /*给一个初始值*/
do
{
x=x0;
f=pow(x,5)-pow(x,4)+4*x*x-1;
g=5*pow(x,4)-4*pow(x,3)+8*x;
x0=x-f/g;
}while(fabs(x-x0)>1e-6);
printf("%f\n",x);
}
程序运行结果:0.508132

这是计算方法里的题啊,自己用牛顿迭代法构造一个迭代公式(要收敛),翻译成C就行了

跪求高人用C语言帮我编一个题目:迭代法求x^5-x^4+4x^2-1=0的根算法...
答:x和x0不断的迭代.令f(x)=x^5-x^4+4x^2-1 则f'(x)=5x^4-4x^3+8x 有:x=x0-f(x)/f'(x)收敛于:|x-x0|<e(有是一个很小的数,在这里取e为0.000001),具体代码如下:include "stdio.h"include "math.h"/*牛顿迭代法求根*/ void main(){ double x0,x;double f,g;x0=1...

跪求各位大佬编写一个c语言程序题。
答:int main(){ int n;// 定义一个整型变量n float f;// 定义一个实型变量n char c;// 定义一个字符型变量n scanf("%d %f %c", &n, &f, &c);// 输入三个变量的值 printf("%d %f %c", n, f, c);// 输出三个变量的值 return 0;} ...

跪求编程大神~用c语言编个程序
答:题目描述输入二叉树的先序遍历序列和中序遍历序列,输出该二叉树的后序遍历序列。输入第一行输入二叉树的先序遍历序列;第二行输入二叉树的中序遍历序列。输出输出该二叉树的后序遍历序列。示例输入ABDCEFBDAECF示例输出DBEFCA include <iostream>#include <cstring>#define MAX 50+3using namespace std;...

c语言程序设计题 跪求高人的复杂版~ 慢不要紧 主要是要对~
答:puts("无该班级信息,要创建一个吗?是输入Y或y,不是则输入其他字符:"); scanf(" %c",&ch); if(ch=='Y' || ch=='y') { puts("输入该班学生学号,输入0结束:"); i=1; while(1) { printf("请输入第%d个学生学号:\n",i++); while(1) { fflush(stdin); gets(stuNumber); if(check_li...

c语言程序设计题 跪求高人的复杂版~ 慢步不要紧 主要是要对~
答:我的 c语言程序设计题 跪求高人的复杂版~ 慢步不要紧 主要是要对~ 题目:作业管理系统[题目描述]设计一个学生作业完成情况管理系统。假设某门课一学期要留10次作业,每次老师要进行批改,给出分数后还要进行登记。学期末要根据每次作业的成绩计算出最... 题目:作业管理系统[题目描述]设计一个学生作业完成情况管理系...

跪求大神用C语言编程
答:include<stdio.h>int main(){double distance;printf("请输入公里数:");scanf("%lf",&distance);//四舍五入 int temp = (int)(distance+0.5);double money = 4;if (temp<=3){money = 4;}else if (temp<20){money+= 1.4*(temp-3);if(temp>=20){money += temp-20;}}printf...

跪求C语言编程高手帮忙编个小程序,大一年级的
答:printf("字符串中共有:%d字符\n大写字母:%d个\n小写字母:%d个\n数字:%d个\n空格:%d个\n其他字符:%d\n",tot,a,b,c,d,e);for(i=0;i<tot-1;i++){ iPos = i;for(j=i+1;j<tot;j++)if(ch[j]<ch[iPos])iPos=j;iTemp = ch[i];ch[i] = ch[iPos];ch[iPos]=iTemp...

求高人指点这道C语言编程题
答:我的 求高人指点这道C语言编程题 编写一个学生成绩管理的程序。由键盘输入数据(最好要考虑输入数据输入的格式及输入数据的有效性),然后进行以下的功能实现。程序要求主函数是一个功能选择菜单,其它各功能都用各自... 编写一个学生成绩管理的程序。由键盘输入数据(最好要考虑输入数据输入的格式及输入数据的有效性),...

C语言编程题
答:/*七根火柴,您好!很高兴能帮你解答问题!*/ include<stdio.h> /*下面定义exa函数来实现递归求阶乘,所谓递归就是在函数定义中又包含了对函数本身的调用*/ long exa(long n){ if(n>0)return exa(n-1)*n;/*这部分就是在用递归了*/ else return 1;} /*你可以试着把一个小整数代进去对...

C语言编程 急!要交作业了!不会!!
答:我的 C语言编程 急!要交作业了!不会!! 1、杨辉三角形的每一项数据正好是组合(即n!/m!/(n-m)!)的值,其中n是行数(从0行开始);m是列数(从0列开始)。请使用上述算法得到杨辉三角形每一个位置的值并按下图打印。要求用... 1、 杨辉三角形的每一项数据正好是组合 (即n!/m!/(n-m)!)的值,其中n...