廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 14587 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
allenmail 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x20
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
文章表情[C/C++][精華] 怎麼寫一個用高斯消去法求方程式解的程式
我想應該是用陣列去寫吧
或者是有其他方法
可以請大大交我一下 ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容



獻花 x0 回到頂端 [樓 主] From:台灣教育部 | Posted:2005-05-28 13:45 |
allenmail 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x20
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
[補充說明]已解決 終於做出來了
#include <stdio.h>
main(void) {
int t1=0,t2=0,t3=0,j;
double arg[3][4] = {{1,2,1,4},{2,1,-1,-1},{-1,1,2,3}};
double temp[3],temp2[3];
if(arg[0][0]==0){
    if(arg[1][0]!=0){
    for (j=0;j<4;j++) {
    temp2[j]=arg[1][j];
    arg[1][j]=arg[0][j];
    arg[0][j]=temp2[j];
    }
    }
    if(arg[2][0]!=0){
    for (j=0;j<4;j++) {
    temp2[j]=arg[2][j];
    arg[2][j]=arg[0][j];
    arg[0][j]=temp2[j];
    }
    }
    else{
        t1=1;
    }
}
if(t1==0){
temp[0]=arg[0][0];
for (j=0;j<4;j++) {
arg[0][j]=arg[0][j]/temp[0];
}
for (j=3;j>=0;j--) {
    arg[1][j]=arg[1][j]-arg[1][0]*arg[0][j];
    arg[2][j]=arg[2][j]-arg[2][0]*arg[0][j];
}
}
if(arg[1][1]==0){
    if(arg[2][1]!=0){
    for (j=0;j<4;j++) {
    temp2[j]=arg[2][j];
    arg[2][j]=arg[1][j];
    arg[1][j]=temp2[j];
    }
    }
    else{
        t2=1;
    }
}
if(t2==0){
temp[1]=arg[1][1];
for (j=0;j<4;j++) {
arg[1][j]=arg[1][j]/temp[1];
}
for (j=3;j>=0;j--) {
    arg[0][j]=arg[0][j]-arg[0][1]*arg[1][j];
    arg[2][j]=arg[2][j]-arg[2][1]*arg[1][j];
}
}
if(arg[2][2]==0){
        t3=1;
   
}
if(t3==0){
temp[2]=arg[2][2];
for (j=0;j<4;j++) {
arg[2][j]=arg[2][j]/temp[2];
}
for (j=3;j>=0;j--) {
    arg[0][j]=arg[0][j]-arg[0][2]*arg[2][j];
    arg[1][j]=arg[1][j]-arg[1][2]*arg[2][j];
}
}
printf("the solution is x,y,z = ");
if(t1==1 || t2==1 || t3==1){
printf("not single solution");
}
else{
    for (j=0;j<3;j++) {
    printf("%.3lf ,",arg[j][3]);
}
}
printf("\n");
return(0);
}

此文章被評分,最近評分記錄
財富:50 (by codeboy) | 理由: 不錯...希望您能繼續努力喔~^^


獻花 x0 回到頂端 [1 樓] From:台灣教育部 | Posted:2005-06-22 15:14 |
唐老鴨
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x230
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

用二維陣列或用串列結構去寫.....
用陣列的寫法會比較簡單....


沒東西可以抓
獻花 x1 回到頂端 [2 樓] From:美國 | Posted:2005-05-28 15:49 |
allenmail 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x20
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

可以請樓上大大給我詳細的程式碼嗎?
因為我不太會寫
麻煩你囉


獻花 x0 回到頂端 [3 樓] From:台灣教育部 | Posted:2005-05-29 15:07 |
唐老鴨
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x230
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用allenmail於2005-05-29 15:07發表的 :
可以請樓上大大給我詳細的程式碼嗎?
因為我不太會寫
麻煩你囉

因為你的題目還算有趣....
所以幫你寫了部分的程式....
主要的消去法已經幫你寫好了...
剩下就是判斷妳題目的解....
我是依照妳的題目來寫的....
所以這題的答案是無解....
後面的判斷寫法很簡單...
就留給你自己寫囉....

PS.//測試宣告和//進度測試的迴圈你可以殺掉...我只是測試用的...記的自己把< i >改成[ i ]....

複製程式
#include <iostream.h>
#include <iomanip.h>

void main()
{
       int i,j,k;
       float temp;
       float arg[3][3] = {{1,2,1},{2,1,-1},{-1,1,2}};
       float sol[3] = {4,-1,3};
       
       //測試宣告
                for (i=0;i<3;i++)
       {
          for (j=0;j<3;j++)
          {
                 cout<<setw(4)<<arg[i][j];
          }
          cout<<setw(4)<<sol[i]<<endl;
       }

       //主要演算法
       for (i=0;i<3;i++)
       {
          for (j=0;j<3;j++)
          {
             if (i!=j)
                {
                   temp = arg[i][i] / arg[j][i];
                                            
                      for (k=0;k<3;k++)
                      {
                             arg[j][k] *= temp;
                             arg[j][k] = arg[i][k] -arg[j][k];
                      }
                      sol[j] *= temp;
                   sol[j] = sol[i] - sol[j];
                
                }
          }
          
          //進度測試
          cout<<endl<<endl;
          for (int x=0;x<3;x++)
          {
                   for(int y=0;y<3;y++)
                 {
                        cout<<setw(6)<<arg[x][y];
                 }
              cout<<setw(6)<<sol[x]<<endl;
          }
       }
               //這邊加入妳判斷的部分
}



沒東西可以抓
獻花 x2 回到頂端 [4 樓] From:美國 | Posted:2005-05-29 17:48 |
allenmail 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x20
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

嗯嗯
謝謝你的熱情分享
把我最想要的消去法給寫了出來
送你一朵花~~
當作答謝
以後有機會再請教你囉!


獻花 x0 回到頂端 [5 樓] From:台灣教育部 | Posted:2005-05-30 03:54 |
allenmail 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x20
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

當然我也希望有其他大大能有不同的寫法
多多益善嘛
哈~


獻花 x0 回到頂端 [6 樓] From:台灣教育部 | Posted:2005-05-30 03:56 |
jlookes
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x1
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

大大你好 小弟最近因作業要求需要用到這樣的程式

但我試過

X+Y+Z=3
2X+2Y+2Z=6
3X+3Y+3Z=9

答案應該是 X=1 Y=1 Z=1
但答案顯示是 not single solution
想請教問題出在哪?


獻花 x0 回到頂端 [7 樓] From:臺灣 | Posted:2007-12-03 03:11 |
a258456
數位造型
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x0
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

這題是無解喔


獻花 x0 回到頂端 [8 樓] From:臺灣教育部 | Posted:2011-03-20 23:02 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.090789 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言