C语言求二元二次方程组的解 我要代码 谢谢大家了
(x1-x2)^2+(y1-y2)^2/(x1-x3)^2+(y1-y3)^2=m^2;(x1-x2)^2+(y1-y2)^2/(x1-x4)^2+(y1-y4)^2=n...
(x1-x2)^2+(y1-y2)^2/(x1-x3)^2+(y1-y3)^2=m^2;
(x1-x2)^2+(y1-y2)^2/(x1-x4)^2+(y1-y4)^2=n^2;
方程是这样的,谢谢大家的关注;其中x1,y1是要求的未知数,x2,x3,x4,y2,y3,y4,m,n,都是已知的。 展开
(x1-x2)^2+(y1-y2)^2/(x1-x4)^2+(y1-y4)^2=n^2;
方程是这样的,谢谢大家的关注;其中x1,y1是要求的未知数,x2,x3,x4,y2,y3,y4,m,n,都是已知的。 展开
4个回答
展开全部
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<math.h>
main()
{
int x1,x2,x3,y1,y2,y3,d1,d2,d3; /*赋任意值,已知数和未知数都是整数
*/
signed int x=-32767,y=-32767; /*未知数取值范围,可修改*/
int r1=0,r2=0,r3=0; /*方程是否成立变量*/
int suc=0; /*解题是否成功变量*/
for(;x<=32767;x++)
{
for(y=-32767;y<=32767;y++)
{
if(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))==d1)
r1=1;
if(sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2))==d2)
r2=1;
if(sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3))==d3)
r3=1;
if(r1&&r2&&r3)
{
suc=1;
break;
}
else
{
r1=0;
r2=0;
r3=0;
}
}
if(suc)
break;
}
if(suc)
printf("x=%d,y=%d",x,y); /*有解输出结果*/
esle
printf("no solution in the range"); /*在限定范围内无解*/
}
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。
#include<conio.h>
#include<dos.h>
#include<math.h>
main()
{
int x1,x2,x3,y1,y2,y3,d1,d2,d3; /*赋任意值,已知数和未知数都是整数
*/
signed int x=-32767,y=-32767; /*未知数取值范围,可修改*/
int r1=0,r2=0,r3=0; /*方程是否成立变量*/
int suc=0; /*解题是否成功变量*/
for(;x<=32767;x++)
{
for(y=-32767;y<=32767;y++)
{
if(sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))==d1)
r1=1;
if(sqrt((x-x2)*(x-x2)+(y-y2)*(y-y2))==d2)
r2=1;
if(sqrt((x-x3)*(x-x3)+(y-y3)*(y-y3))==d3)
r3=1;
if(r1&&r2&&r3)
{
suc=1;
break;
}
else
{
r1=0;
r2=0;
r3=0;
}
}
if(suc)
break;
}
if(suc)
printf("x=%d,y=%d",x,y); /*有解输出结果*/
esle
printf("no solution in the range"); /*在限定范围内无解*/
}
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。
展开全部
我们学数值分析,你有福了
用牛顿迭代法求非线性方程
#include <stdio.h>
#include <math.h>
int Didai(g,x,eps,N)
double (*g)();
double *x,eps;
int N;
{
int i=0;
double x0=*x;
while (1)
{
*x=g(x0);
if (fabs(*x-x0)<eps) return 1;
if (++i>=N) return 0;
x0=*x;
}
}
double f1(double x)
{ return sqrt(10/(4+x)); }
double f2(double x)
{ return sqrt(10-x*x*x)/2; }
double f3(double x)
{ return x-(x*x*x+4*x*x-10)/(3*x*x+8*x); }
main()
{
double x=1.5,y=1.5,z=1.5;
if(Didai(f1,&x,1e-5,1000))
printf("root1=%f\n",x);
if(Didai(f2,&y,1e-5,1000))
printf("root2=%f\n",y);
if(Didai(f3,&z,1e-5,1000))
printf("root3=%f\n",z);
}
用牛顿迭代法求非线性方程
#include <stdio.h>
#include <math.h>
int Didai(g,x,eps,N)
double (*g)();
double *x,eps;
int N;
{
int i=0;
double x0=*x;
while (1)
{
*x=g(x0);
if (fabs(*x-x0)<eps) return 1;
if (++i>=N) return 0;
x0=*x;
}
}
double f1(double x)
{ return sqrt(10/(4+x)); }
double f2(double x)
{ return sqrt(10-x*x*x)/2; }
double f3(double x)
{ return x-(x*x*x+4*x*x-10)/(3*x*x+8*x); }
main()
{
double x=1.5,y=1.5,z=1.5;
if(Didai(f1,&x,1e-5,1000))
printf("root1=%f\n",x);
if(Didai(f2,&y,1e-5,1000))
printf("root2=%f\n",y);
if(Didai(f3,&z,1e-5,1000))
printf("root3=%f\n",z);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<#C语言求二元二次方程组的解 我要代码 谢谢大家了
it is very difficult for you ? please hard to study
it is very difficult for you ? please hard to study
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你需要给出一个方程式吧??
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |