I would argue that God changed their minds...and hearts. Nineveh was a city of heathens who had no regard for the God of Israel. Within 40 days, to the person, they humbled themselves before Him. What caused this? Human reason? Activity of God?
When faced with the word of God about their upcoming destruction, the people of Nineveh believed God. Repenting and crying out to God was their only hope. "Who can tell if God will turn and repent..."
Jonah 3
4 And Jonah began to enter into the city a day's journey, and he cried, and said, Yet forty days, and Nineveh shall be overthrown.
5 So the people of Nineveh believed God, and proclaimed a fast, and put on sackcloth, from the greatest of them even to the least of them.
6 For word came unto the king of Nineveh, and he arose from his throne, and he laid his robe from him, and covered him with sackcloth, and sat in ashes.
7 And he caused it to be proclaimed and published through Nineveh by the decree of the king and his nobles, saying, Let neither man nor beast, herd nor flock, taste any thing: let them not feed, nor drink water:
8 But let man and beast be covered with sackcloth, and cry mightily unto God: yea, let them turn every one from his evil way, and from the violence that is in their hands.
9 Who can tell if God will turn and repent, and turn away from his fierce anger, that we perish not?
10 And God saw their works, that they turned from their evil way; and God repented of the evil, that he had said that he would do unto them; and he did it not.
God didn't change their hearts. The people had a choice when faced with the word of God. God is not a liar. God had every intention of overthrowing Nineveh in forty days until they repented. When God saw their repentance, God changed his course of action and showed them mercy.