⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 niudun.cpp

📁 机械优化设计作业(牛顿法) 说明:学完优化设计
💻 CPP
字号:
#include <stdio.h>
#include <math.h>

long double x1,x2;
long double d1,d2;
long double h1,h2;
long double a,e,score;
void JieFp();
void JieF();
void JieA();
void JieX2();


void main()
{
	printf("请输入x1,x2,精度 e\n");
	scanf("%f %f %f",&x1,&x2,&e);

	h1=x1;
	h2=x2;
	do
	{
		x1=h1;
		x2=h2;
		JieFp();
		JieA();
		JieF();
		JieX2();

		if((fabs(h1-x1) < e) && (fabs(h2-x2)<e)) break;        //如果符合精度,则退出
		else 
		{x1=h1;
		 x2=h2;
		}
	;}while(1);

	printf("函数值为%e,x1为%e,x2为%e\n",score,h1,h2);  
}
void JieFp()
{
//	d1=2*x1-x2-10;
//	d2=2*x2-x1-4;
//	d1=-d1;
//	d2=-d2;
	d1=x1-8;
	d2=x2-6;
	d1=-d1;
	d2=-d2;
}
void JieA()
{
	long double up,down;
	up=2*d1*x1+2*d2*x2-d2*x1-d1*x2-10*d1-4*d2;
	down=(2*d1*d1+2*d2*d2-2*d1*d2);
	if(down==0) a=0;
	else
	{
		a=up/down;
		a=-a;
	}
}
void JieX2()
{
	h1=x1+a*d1;
	h2=x2+a*d2;
}
void JieF()
{
	score=x1*x1+x2*x2-x1*x2-10*x1-4*x2+60;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -