計算a x 2 b x c 0用c語言和matlab算出來結果不一樣什麼地方錯了?謝謝

時間 2021-08-11 18:14:09

1樓:

樓主你的tem1=-b/twoa=-b/(2*a)tem2=sqrt(fabs (disc))/twoa=sqrt(b*b-4*a*c)

這兩個明顯還不是方程的根吖,根據公式(-b±sqrt(b*b-4*a*c))/2*a應該是term1+term2和term1-term2。

還有就是我感覺你上面判斷的

if(a==0)

if(b==0)

我猜測你是想讓a b都不為0吧?,那麼寫成if(a==0&&b==0)好點吧,但是根據你下面的printf("=%f\n",-c/b),可以看出明顯b不能為0,但是a卻沒有要求,而要讓a*x^2+b*x+c=0有解的話只要a,b不同時為0就行了,再根據你的-c/b,得知b不能為0,那麼判斷的時候我感覺只需要判斷if(b==0)就可以了,a可以取任意值。樓主可以試著修改一下,還有什麼問題我們再一起討論~~!

2樓:匿名使用者

結果怎麼個不一樣法了?

順便說哈

你的term1和term2本來就不是方程的解啊解應該是(-b+-sqrt(disc))/2a大概就是-term1+term2和-term1-term2

怎樣用matlab編寫求解方程a*x^2+b*x+c=0 的根的函式

3樓:雪狐晨光

若a=2,b=3,c=1,程式如下

p=[2 3 1];

x=roots(p)

matlab 求代數方程組 a*x^2+b*x+c=0 x+y=0 關於x,y的解,並分別繪製x和y關於b和c的影象(a視作常數)

4樓:宇逸

1. 求代數方程組的解:

>> [x,y]=solve('a*x^2+b*x+c=0','x+y=0','x,y')

x =1/2/a*(-b+(b^2-4*a*c)^(1/2))

1/2/a*(-b-(b^2-4*a*c)^(1/2))

y =-1/2/a*(-b+(b^2-4*a*c)^(1/2))

-1/2/a*(-b-(b^2-4*a*c)^(1/2))

>>2. 從上面的解可以看出,x,y都有兩組解且x,y互為相反數。

假設a=1,這裡有兩種方法繪製x,y關於b,c的影象:

(1)隱函式繪圖

x1=subs(x(1),'a',1);

x2=subs(x(2),'a',1);

y1=subs(y(1),'a',1);

y2=subs(y(2),'a',1);

figure

po=get(gcf,'position');

set(gcf,'position',[po(1)-0.5*po(3) po(2) 2*po(3) po(4)]);

subplot(121)

ezsurf(x1,[-10 10])

hold on

ezsurf(x2,[-10 10])

subplot(122)

ezsurf(y1,[-10 10])

hold on

ezsurf(y2,[-10 10])

(2)根據方程式直接繪圖

>> a=1;

>> [b,c]=meshgrid(-10:0.5:10);

>> delta=b.^2-4*a*c;

>> delta(delta<0)=nan;

>> x1=0.5/a*(-b+sqrt(delta));

>> x2=0.5/a*(-b-sqrt(delta));

>> y1=-x1;

>> y2=-x2;

>> figure

>> po=get(gcf,'position');

>> set(gcf,'position',[po(1)-0.5*po(3) po(2) 2*po(3) po(4)]);

>> subplot(121)

>> surf(b,c,x1)

>> hold on

>> surf(b,c,x2)

>> xlabel('b');ylabel('c');zlabel('x')

>> subplot(122)

>> surf(b,c,y1)

>> hold on

>> surf(b,c,y2)

>> xlabel('b');ylabel('c');zlabel('y')

matlab用對分法求a*x^2+b*x+c,其中a,b,c自行輸入

5樓:匿名使用者

我這兩天剛好遇到這個問題,solve求解得過程是把所給等式除去未知數其他的變數當成已知專數,直接屬這麼寫解不出來。

可以這麼試試:

(隨便舉個例子3*x^2+2*x-33=0)syms x

a= 3;

b=2;

c=-33;

equ=a*x^2+b*x+c;

x=solve(equ)

結果:x =

-11/3

3希望對你有幫助!

求解一元二次方程a*x*x+b*x+c=0 用c語言寫

6樓:匿名使用者

#include

#include

int main()

7樓:我一定會回來嘚

#include "stdio.h"

#include "math.h"

void main()

if (d>0)}

8樓:青原落楓

廢話不bai多說du

來了zhi,我dao來專了。屬

#include

#include

int structure(int a,int b,int c)main()

已知關於x的不等式ax 2 bx c0的解集為

由題知ax 2 bx c 0可化為 a x 2 x 1 2 0,由解集得拋物線開口向下即 a 0故有 x 2 x 1 2 0 比較題中兩式的左端和十字相乘法則 ax 2 bx c 0可化為 a x 2 x 1 2 0 又a 0 故有 x 2 x 1 2 0所以解集為 1 2 0.5 求ax方 bx ...

已知不等式ax2 bx c0的解集為xI 1 3x2,則不等式cx2 bx a0的解集為

解以上兩式得a 6b 6c,由x的不等式ax2 bx c 0的解集為 1 3,1 2 知a為負數,則b c 正數,則cx2 bx a是一個開口向上的二次方程將a 6b 6c帶入cx2 bx a 0求根,x平方 x 6 0,x 2或 3,則解集為 3,2 碧雨邢騫澤 已知不等式ax2 bx c 0的解...

已知關於x的不等式ax 2 bx c0的解集為x x

一二三四五 由題知ax 2 bx c 0可化為 a x 2 x 1 2 0,由解集得拋物線開口向下即 a 0故有 x 2 x 1 2 0 比較題中兩式的左端和十字相乘法則 ax 2 bx c 0可化為 a x 2 x 1 2 0 又a 0 故有 x 2 x 1 2 0所以解集為 1 2 0.5 求a...