下载此文档

c语言求解非线性方程、线性方程组代码.docx


文档分类:IT计算机 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
本文档提供了牛顿法、列主元素消去法、 LU 分解法三类求解方程的代码,对应非线性
方程及线性方程组。利用 C 语言编写,采用 txt 文件输入、输出方式。
/* 牛顿法求解非线性方程 */
#include<>
#include<>
#include<>
float f(float x) /* 定义函数 f(x) */
{ return 2*x*x+2*x+1-exp(2*x); }
float f1(float x) /* 定义函数 f(x) 的导数 f1(x) */
{ return 4*x+2-2*exp(2*x); }
main()
{float x0,x1,eps; /* 定义初值和迭代精度 */
FILE *fp1,*fp2;
if((fp1=fopen("","r"))==NULL)
{printf("Can't open this file!\n");
exit(0);
}
fscanf(fp1,"%f %f",&x1,&eps);
do
{
x0=x1;
if(fabs(f(x0))<=eps) x1=x0;
else
x1=x0-f(x0)/f1(x0); /* 牛顿迭代 */
}
while(fabs(f(x1))>eps); /* 循环条件 */
fp2=fopen("","w");
fprintf(fp2,"%e",x1);
fclose(fp1);
fclose(fp2);
}
/* 列主元素消去法求解线性方程组 */
#include<>
#include<>
#include<>
#define N 3
void main()
{ int i,j,k,mi; /* 定义变量类型 */
float max,temp;
float a[N][N],b[N],x[N],r[N][N+1];
FILE *fp1; /* 输入系数矩阵及列向量 b*/
if((fp1=fopen("","r"))==NULL)
{
printf("Can't open this file!\n");
exit(0);
}
for(i=0;i<N;i++)
for(j=0;j<N+1;j++)
fscanf(fp1,"%f",&r[i][j]);
fclose(fp1);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
a[i][j]=r[i][j];
for(i=0;i<N;i++)
b[i]=r[i][N];
for(j=0;j<N-1;j++) /* 找出列主元素并交换 */
{
for(i=j+1,mi=j,max=fabs(a[j][j]);i<N;i++)
if(fabs(a[i][j])>max)
{
mi=i;
max=fabs(a[i][j]);
}
if(j<mi)
{
temp=b[j];
b[j]=b[mi];
b[mi]=temp;
for(k=j;k<N;k++)
{
temp=a[j][k];
a[j][k]=a[mi][k];
a[mi

c语言求解非线性方程、线性方程组代码 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人aisheng191
  • 文件大小19 KB
  • 时间2018-11-05
最近更新