第一章
求根公式法:
#include<stdio.h>
#include<math.h>
main()
{
int a,b,c;
double x1,x2,d=0.0;
printf("请输入a,b,c的值:\n");
scanf("%d,%d,%d",&a,&b,&c);
d=b*b-4*a*c;
33xxkkif(d>=0)
{
if(d>0)
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
printf("方程的两根为x1=%f,x2=%f\n",x1,x2);
}
else
{ x1=-b/(2*a);
x2=x1;
printf("方程的两根为x1=%f,x2=%f\n",x1,x2);
}
}
else
{
printf("方程无实根\n");
}
return 0;
}
二分法:
#include<stdio.h>
#include<math.h>
double f(double x){
double y;
y=x*x*x-2*x-5;
return y;
}
main(){
double a=2.0,b=3.0,x;
if(f(a)*f(b)<0.0){
do{
x=(a+b)/2.0;
if(f(a)*f(x)<0.0){
b=x;
continue;
}
if(f(x)*f(b)<0.0)
a=x;
}while(fabs(a-b)>0.01);
}
else printf("没有实根");
printf("实根为%f",x);
return 0;
}
第二章拉格朗日插值:
#include <iostream>
#include <iomanip>
#include <stdlib.h>
using namespace std;
#define N 100
void lagrange()
{
int n,k,m,q=1;
float x[N],y[N],xx,yyy1,yyy2,yy1,yy2,yy3;
cout<<"请输入X的个数:";
cin>>n;
for(k=0;k<=n-1;k++)
{
cout<<"请输入X"<<k<<"的值:";
cin>>x[k];
cout<<"请输入Y"<<k<<"的值:";
cin>>y[k];
}
system("cls");
cout<<"则Xi与Yi表格如下:"<<endl;
cout<<"Xi"<<"
";for(k=0;k<=n-1;k++)cout<<setiosflags(ios::left)<<setw(10)<<x[k]; cout<<endl;
cout<<"Yi"<<"
";for(k=0;k<=n-1;k++)cout<<setiosflags(ios::left)<<setw(10)<<y[k]; cout<<endl;
while(q)
{
cout<<"请输入所求x的值:";
cin>>xx;