Masalah Matlab dengan penulisan persamaan

saya mengalami masalah dengan menulis persamaan.

r = 25, k= 2, R = 50:25:600, DR = 0.5:0.5:4.0

h= r*[1-cos(asin((akar(2*R*DR+DR^2))+r*sin(acos(r-k)/r)/r))]-k

tetapi sebagai hasilnya saya mendapatkan ini: h = 1.9118e+001 +1.7545e+002i.

Saya baru mulai dengan Matlab. Terima kasih


person user699994    schedule 09.04.2011    source sumber
comment
ketika saya menggunakan kalkulator, hasilnya saya mendapat 4,56   -  person user699994    schedule 09.04.2011


Jawaban (3)


Apa yang saya dapatkan dari apa yang Anda tulis sebenarnya

??? Error using ==> mtimes
Inner matrix dimensions must agree.

yang benar karena Anda mencoba mengalikan dua vektor baris satu sama lain. Bisakah Anda menunjukkan kepada kami kode sebenarnya yang Anda gunakan?

Bagaimanapun, seandainya hal itu diatasi, bagi saya sepertinya Anda memberi sesuatu kepada asin yang jauh lebih besar dari 1. Itu akan memberi Anda hasil yang kompleks. Apakah benda yang Anda sampaikan ke asin mungkin dimaksudkan untuk dibagi dengan R^2 atau DR^2 atau semacamnya? Anda memiliki masalah serupa nanti dengan argumen ke acos.

Saya juga menduga bahwa beberapa operator * dan ^ dan / Anda sebenarnya adalah operator yang berdasarkan elemen .*, .^, ./.

person Gareth McCaughan    schedule 09.04.2011
comment
Yah, mungkin pertanyaan saya sedikit membingungkan. Hasilnya saya perlu mendapatkan tabel (atau matriks), jadi pada persamaan pertama saya menggunakan R= 50, DR = 0,5, r= 25, k=2 dan saya perlu mendapatkan h. Pada persamaan kedua saya menggunakan R=75, DR=1.0, r=25, k=2...untuk persamaan terakhir saya menggunakan R=600,DR=4.0,r=25,k=2. - person user699994; 09.04.2011
comment
Hal yang sama untuk acos(r-k), mungkin maksud Anda acos((r-k)/r) - person Emilio Silva; 09.04.2011

Jika Anda mencoba melakukan apa yang Anda katakan:

jadi pada persamaan pertama saya menggunakan R= 50, DR = 0,5, r= 25, k=2 dan saya perlu mendapatkan h. Pada persamaan kedua saya menggunakan R=75, DR=1.0, r=25, k=2...untuk persamaan terakhir saya menggunakan R=600,DR=4.0,r=25,k=2.

DR dan R harus memiliki panjang yang sama... jadi jika R berkisar antara 50 dan 600 dengan kelipatan 25, DR harus bertambah dari 0,5 menjadi 12,5 dengan kelipatan 0,5 , atau 0,5 hingga 4,0 dengan kelipatan 0,1522...

setelah Anda mengetahuinya, pastikan untuk menambahkan titik sebelum setiap operasi perkalian matriks (misalnya * atau ^)

person Rasman    schedule 09.04.2011

EDIT: rumus sedikit disesuaikan (tanda kurung) untuk mencerminkan keberhasilan dalam komentar.

Ketika Anda mengatakan Anda menginginkan sebuah tabel, saya kira itu adalah tabel R kali DR (karena Anda harus memiliki vektor dengan panjang yang berbeda). Untuk melakukannya Anda perlu menggunakan R sebagai vektor kolom (R' di bawah) dan mengalikannya dengan * (bukan .*). Jika R tidak muncul dalam suatu suku, kalikan dengan ones(size(R)) (atau gunakan repmat) untuk mendapatkan DR ke bentuk yang benar. Untuk mengkuadratkan DR berdasarkan elemen, Anda memerlukan DR.^2. Sepertinya ada tanda kurung yang salah letak untuk acos, tentunya anda membaginya dengan r sebelum mengambil acos. Harus ada pembagian dengan sesuatu seperti r di asin (bukan r^2 karena Anda telah mengambil sqrt). Terakhir, pembagian terakhir dengan r adalah mubazir seperti yang tertulis, karena Anda mengalikannya dengan r pada tingkat yang sama sebelumnya. Bagaimanapun, jika saya melakukan hal berikut:

h= r*(1-cos(asin((sqrt(2*R'*DR+ones(size(R))'*DR.^2)/r)+sin(acos((r-k)/r)))))-k

Saya mendapatkan tabel R kali DR. Hasil untuk R,DR kecil adalah nyata; R,DR yang lebih tinggi bersifat kompleks karena argumen asin pertama adalah >1. Entri pertama dalam tabel adalah 4,56, sesuai kebutuhan Anda.

person Ramashalanka    schedule 09.04.2011
comment
terima kasih, saya mendengarkan saran Anda, dan komputer sepotong demi sepotong, sehingga akhirnya saya mendapatkan formula yang tepat. Saya baru saja mengambil r = 25, k = 2, R = 50, DR = 0,5, dan memasukkan ke dalam rumus ini h= r*[1-cos(asin((sqrt(2*RDR+DR.^2 )/r)+(rsin(acos((r-k)/r))/r)))]-k, dan hasilnya mendapat 4,56. - person user699994; 10.04.2011