今天做数值分析实验,实验内容是C++实现几个非线性求根的小程序(二分法、迭代法、迭代过程的加速)
代码如下
#include <iostream>
#include<cmath>
using namespace std;
float binSearch();
float diedai();
float speed();
int main(void)
{
int o = 666;
while (o != 0)
{
cout << "-------非线性方程求根-------" << endl;
cout << "1:二分法" << endl;
cout << "2:迭代法" << endl;
cout << "3.迭代过程的加速" << endl;
cout << "0:退出" << endl;
cout << "请选择功能:";
cin >> o;
switch (o)
{
case 1:
cout << "所求根:" << binSearch() << endl;
break;
case 2:
cout << "所求根:" << diedai() << endl;
break;
case 3:
cout << "所求根" << speed() << endl;
default:
break;
}
system("pause");
system("cls");
}
return 0;
}
float binSearch()
{
float x;
cout << "要查找的数:";
cin >> x;
int a[100],
int low, high, mid;
low = 0;
high = n - 1;
while (low <= high)
{
mid = (low + high) / 2;
if (x < a[mid])
high = mid - 1;
else if (x > a[mid])
low = mid + 1;
else
return mid;
}
return -1;
}
float diedai()
{
return -1;
}
float speed()
{
return -1;
}
“`