请输入您要查询的百科知识:

 

词条 弦截法
释义

概述

弦截法是一种求方程根的基本方法,在计算机编程中常用。他的思路是这样的:任取两个数x1、x2,求得对应的函数值f(x1)、f(x2)。如果两函数值同号,则重新取数,直到这两个函数值异号为止。连接(x1,f(x1))与(x2,f(x2))这两点形成的直线与x轴相交于一点x,求得对应的f(x),判断其与f(x1)、f(x2)中的哪个值同号。如f(x)与f(x1)同号,则f(x)为新的f(x1。将新的f(x1)与f(x2)连接,如此循环。体现的是极限的思想。

C语言代码

//弦截法求x*x*x-5*x*x+16*x-80=0的根

求x^3-5x^2+16x-80的值:

#include<math.h>

#include<stdio.h>

float f(float x)

{ //计算f(x)的值

return x*(x*x-5*x+16)-80;

}

float point(float x1 ,float x2)

{

//计算与x轴交点的x值

return (x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));

}

void main()

{

//输入两个数x1,x2

float x1,x2,x;

do

{

printf("输入两个数x1,x2:");

scanf("%f%f",&x1,&x2);

}

while (f(x1)*f(x2) >= 0); // 当输入两个数大于0为真时,继续重新输入

//关键循环步骤:

do

{

x=point(x1,x2);//得到交点的值

if(f(x)*f(x1)>0)

x1=x; //新的x1

else

x2=x;

}

while (fabs(f(x)) > 0.0001); //0.0001为取值精度

printf("一个解为%f\",x);

}

matlab代码

1.定义函数

function y=f(t)

y=f(t); %函数f(t)的表达式

2.主程序

i=0; %迭代此处记数

t1=t1; %迭代初值t1

t2=t2; %迭代初值t2

while i<=100;

y=t2-f(t2)/(f(t2)-f(t1))*(t2-t1); %弦截法迭代格式

if abs(y-t2)>10^(-6); %收敛判据

t1=t2;

t2=y

else break

end

i=i+1;

end

fprintf('\%s%.6f\\t%s%d%','泡点温度t=',y,'迭代次数i=',i) %输出结果

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/3/1 10:39:14